Liebes VBA-Forum,
ich hatte vor kurzem eine Frage, die ganz gut gelöst wurde (siehe 2 Tabellen miteinander vergleichen - Unterschiedliche Zellen markieren!).
Der Lösungsansatz aus diesem Forum war folgender:
Private Sub CommandButton2_Click()
Dim AltRng As Range
Dim c As Range
Set AltSh = ActiveWorkbook.Sheets( "Alt" )
Set ActSh = ActiveWorkbook.Sheets( "Aktuell" )
Set AltRng = AltSh.Range( "A1" ).CurrentRegion
Rem ich möchte aber nur, dass die jeweiligen Zellen markiert werden
For Each c In AltRng
With ActSh.Range(c.Address)
If .Value <> c.Value Then .Interior.ColorIndex = 6
End With
Next c
ActSh. Select
Range( "A1" ). Select
End Sub
----------------
Nun habe ich aber das Problem, dass eine Tabelle die Aktualisierung der Anderen ist und Unterschiede auch durch eine neu hinzugefügte Zeile entstehen kann. Dann sind nämlich alle Zeilen unter der neuen Zeile verschieden zu der Urspungstabelle. In meiner urspünglichen Version des Codes war das nicht so, da hatte ich allerdings das Prob, dass die komplette Zeile farblich markiert wird!!! Bin blutiger Anfänger, daher kann es sein, dass meine Codes nicht soviel Sinn ergeben...
So sah mein Code aus:
Private Sub CommandButton2_Click()
Dim rng As Range
Dim lRow As Long, lRowT As Long
Dim iCol As Integer
Dim bln As Boolean
Set rng = Worksheets("Alt").Range("A1").CurrentRegion
Sheets("Aktuell").Activate
For lRow = 1 To Range("A1").CurrentRegion.Rows.Count
bln = True
For lRowT = 1 To rng.Rows.Count
For iCol = 1 To 400
If Cells(lRow, iCol) <> rng(lRowT, iCol) Then
bln = False
Exit For
End If
Next iCol
If bln = True Then
Exit For
ElseIf lRowT < rng.Rows.Count Then
bln = True
End If
Next lRowT
If bln = False Then
Range(Cells(lRow, 1), Cells(lRow, 400)).Interior.ColorIndex = 6
End If
Next lRow
-------
Hat jemand eine Ahnung, warum ausgerechnet in meinem Code das Programm versteht, dass die Zeilen nach der neu hinzugefügten Zeile identisch mit der Urspungstabelle sind? Wie kann ich das bei dem neuen Code angewendet werden?
|