ich habe ein Dokument mit mehreren unterschiedlich langen Tabellen. Ich will nun, dass wenn sich in einer beliebigen dieser Tabellen der Wert eines Feldes in Spalte D oder E durch Usereingabe ändert, in allen anderen Tabellen Spalte D und E der entsprechenden Zeile angepasst wird. Welche Zeile anzupassen ist, kann man an Spalte B erkennen.
Also: suche bei einer Änderung eines Feldes in Spalte D oder E nach der entsprechenden Zeile in den anderen Tabellenblättern und setze dort den Wert in C oder D auf den geänderten Wert.
Ich habe mir eine kleine VBA-Funktion geschrieben, diese funktioniert nur leider nicht:
Private Sub Worksheet_Change(ByVal Target As Range)
For a = 1 To Target.UsedRange.Rows.Count
'Wenn sich was in D und E aendert dann suche in den anderen Tabellen nach dem Vorkommen in B-a
If Target.Range("D" & a) Or Target.Range("E" & a) Then
'Wenn B a gefüllt ist ...
If Not IsEmpty(Target.Range("B" & a)) Then
' ... dann durchsuche in allen Arbeitsblätter...
For i = 1 To ThisWorkbook.Worksheets.Count
' ...alle Zeilen
For b = 1 To ThisWorkbook.Worksheets(i).UsedRange.Rows.Count
' Wenn ein Eintrag gefunden wird bei dem der Identifier mit dem Identifier des geä _
nderten Wertes übereinstimmt...
If Target.Range("B" & a).Value = ThisWorkbook.Worksheets(i).Range("B" & b).Value Then
'... dann passe den Wert der gefundenen ZEile entsprechend der Änderung an.
ThisWorkbook.Worksheets(i).Range("D" & b).Value = Target.Range("D" & a).Value
ThisWorkbook.Worksheets(i).Range("E" & b).Value = Target.Range("E" & a).Value
End If
Next b
Next i
End If
End If
Next a
End Sub