Excel-VBA: Geänderte Zellen erfassen

Hallo Xperten,

ich möchte mit einem VBA-Makro erfassen, wenn der Inhalt einer Zelle geändert wird. Das kann ich ja über «Private Sub Worksheet_Change(ByVal Target As Range)» erreichen. «Target» gibt ja dabei die geänderte Zelle als Range zurück. Prima!

Wenn nun jemand per Markierung mehrere Zellen ändert (z. B. durch Kopieren-Einfügen), gibt «Target» ja den ganzen Range (die Markierung) zurück. Auch damit kann ich umgehen - mein Makro kann ja den Range auswerten. Auch gut!

Dritter Fall: Jemand markiert eine Reihe von Zellen, ändert aber nur den Inhalt der aktiven Zelle. Wie krieg’ ich nun das raus? Das Makro soll ja nur erfassen, welche Zelle wirklich geändert wurde.

Hat jemand 'ne Idee für mich?

Gruß
(Woly)

Dritter Fall: Jemand markiert eine Reihe von Zellen, ändert
aber nur den Inhalt der aktiven Zelle. Wie krieg’ ich nun das
raus? Das Makro soll ja nur erfassen, welche Zelle
wirklich geändert wurde.

Hi Woly,
verstehe ich nicht.
Wenn ich einen Bereich markiere, dann einen Wert eingebe und Enter drücke so kann ich doch mit dem Change-Ereignis diese einzelne Zelle abfangen!?
Gruß
Reinhard

Moin!

Wenn ich einen Bereich markiere, dann einen Wert eingebe und
Enter drücke so kann ich doch mit dem Change-Ereignis diese
einzelne Zelle abfangen!?

Ist schon klar, aber ich hätte ja auch [Strg]+[Enter] drücken können und hätte somit eben nicht nur eine einzelne Zelle verändert, sondern alle markierten Zellen.

Ich krieg’ dann natürlich ein Change-Ereignis, aber wie soll ich feststelle, ob nur die eine oder eben mehrere Zellen geändert wurden…

Gruß
(Woly)

Wenn ich einen Bereich markiere, dann einen Wert eingebe und
Enter drücke so kann ich doch mit dem Change-Ereignis diese
einzelne Zelle abfangen!?

Ist schon klar, aber ich hätte ja auch [Strg]+[Enter] drücken
können und hätte somit eben nicht nur eine einzelne
Zelle verändert, sondern alle markierten Zellen.

Ich krieg’ dann natürlich ein Change-Ereignis, aber wie soll
ich feststelle, ob nur die eine oder eben mehrere Zellen
geändert wurden…

Hi Woly,
ich bin zäh im Nichtverstehen :smile:))
Mit

Private Sub Worksheet\_Change(ByVal Target As Range)
MsgBox Target.Address
End Sub

wird mir bei „Enter“ eine Zellenadresse angezeigt, bei „Strg + Enter“ die Adresse des ganzen Zellenbereichs.
Gruß
Reinhard