ich habe mir, mit Hilfe hier aus dem Forum, folgenden Code gebaut:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rg As Range
For Each rg In Target
If rg.Value = Worksheets("Tabelle1").Cells(rg.Row, 1).Value Then
rg.Value = Right(rg.Value, 4)
End If
Next rg
End Sub
Zu Erklärung: Gibt man in eine Zelle der Spalte A einen Wert ein, soll dieser auf die letzten vier Zeichen gestutzt werden. Das klappt auch ganz gut. Nun aber mal eine Frage zu dem Verständnis meines Codes:
Wenn ich etwas in der Spalte A eingebe überprüft der Code eigentich nur die Zelle die ich bearbeitet habe, oder alle Zellen in der Spalte A? Habe mal zum Spass die folgende Codezeile mit eingefügt:
Worksheets("Tabelle1").Range("C1").value = Worksheets("Tabelle1").Range("C1").value + 1
Darauf hin habe ich dann mal etwas eingegeben, und egal wo ich etwas angegeben hatte, wurde nicht um eins in Zelle C1 hochgezählt, sondern um 22881. Habe ich mehrere Zellen makiert und "Inhalt löschen" gewählt, egal ob die Zellen in Spalte A liegen oder nicht, fing das Makro an in C1 hochzuzählen - und zwar makierte Zähle um 22881.
Kann mir jemand zu meinem Verständnis erklären, was da genau abläuft? Wäre echt schön....will ja verstehen! :-)
Gruß
Gordon