Habe folgendes Problem:
Ich vergleiche mit meinem VBA-Code Tabelle1 mit Tabelle2. Wie ihr sicherlich nachvollziehen könnt, werden alle außer den in Tabelle2 vorkommenden Datensätze gelöscht. Was mir jetzt aber noch fehlt ist, dass Datensätze, bei welchen die Spalten A-C in Tabelle1 und Tabelle2 identisch sind und sich nur der Inhalt der Tabelle2 im Bereich der Spalten D-G abweicht in Tabelle1 aktualisiert werden.
Leider bekomm ich das mit meinen jetzigen VBA-Kenntnissen nicht alleine hin.
Vielleicht kann mir ja jemand dabei helfen.
Schon jetzt vielen Dank
Hier mein bisheriger Code:
'Vergleich Tabelle1 mit Tabelle2 - alle gleichen Inhalte der Spalte A-C werden gelöscht
Dim LoI As Long
Dim LoJ As Long
Dim LoLetzte1 As Long
Dim LoLetzte2 As Long
LoLetzte1 = 65536
With Worksheets("Tabelle1")
If .Range("A65536") = "" Then LoLetzte1 = .Range("A65536").End(xlUp).Row
End With
LoLetzte2 = 65536
With Worksheets("Tabelle2")
If .Range("B65536") = "" Then LoLetzte2 = .Range("B65536").End(xlUp).Row
End With
For LoI = 1 To LoLetzte1
For LoJ = 1 To LoLetzte2
' Leerzellen nicht kennzeichnen
If Worksheets("Tabelle1").Cells(LoI, 1) "" Then
If Worksheets("Tabelle1").Cells(LoI, 1) = Worksheets("Tabelle2").Cells(LoJ, 1) And _
Worksheets("Tabelle1").Cells(LoI, 2) = Worksheets("Tabelle2").Cells(LoJ, 2) And _
Worksheets("Tabelle1").Cells(LoI, 3) = Worksheets("Tabelle2").Cells(LoJ, 3) Then
Worksheets("Tabelle1").Cells(LoJ, 1).EntireRow.Clear
End If
End If
Next LoJ
Next LoI
' Löschen der Leerzeilen
Cells.Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="="
Rows("2:1000").Select
Selection.Delete Shift:=xlUp
Cells.Select
Selection.AutoFilter
Hier ist so ein Code, der doppelte Einträge aktualisiert, aber die Umstellung auf meine Bedürfnisse schaffe ich leider nicht.
For i = 1 To AnzahlAufträge
'Ist der Datensatz schon vorhanden?
Cells(1, 1).Select
Selection.CurrentRegion.Select
BereichZeilen = Selection.Rows.Count
For Each zelle In ActiveSheet.Cells.Range("A:A")
If CStr(zelle.Value) = "" Then Exit For
If CStr(zelle.Value) = CStr(daten(i, 1)) Then
'vorhandenen Eintrag aktualisieren
Cells(zelle.Row, zelle.Column).Select
Application.StatusBar = "Aktualisierung von " & daten(i, 1) & " ..."
Call DatenAusgeben(daten, i)
aktualisieren = True
Exit For
End If
Next
Gruß
Bernd