Ich habe leider noch keine Lösung auf meine ursprüngliche Frage erhalten und nun ist der Beitrag archiviert (Archivnummer 1537747).
Martin (AlterDresdner) konnte mir bereits helfen und hat mir folgenden Code geschrieben.
Option Explicit
Function Veränderungen()
Dim oAlt As Object, oNeu As Object, oDiff As Object
Dim zaltE As Long, zneuE As Long, zdiff As Long, zalt As Long, zneu As Long
Dim geaend As Integer
Set oAlt = ThisWorkbook.Sheets("TTP_Vorwoche")
Set oNeu = ThisWorkbook.Sheets("TTP_Neu")
Set oDiff = ThisWorkbook.Sheets("TTP_Veränderungen")
zaltE = oAlt.Cells(Rows.Count, 7).End(xlUp).Row
zneuE = oNeu.Cells(Rows.Count, 7).End(xlUp).Row
With oDiff
.Range("A2:I" & oDiff.Cells(Rows.Count, 7).End(xlUp).Row).ClearContents
'alte Inhalte löschen
zdiff = 2
zalt = 2
For zneu = 2 To zneuE 'alle neuen Zeilen
geaend = 0
If oAlt.Cells(zneu, 7) oNeu.Cells(zneu, 7) Then Exit For 'Client geändert
If oAlt.Cells(zneu, 2) oNeu.Cells(zneu, 2) Then geaend = 2 'Änderungsspalten _
abarbeiten
If oAlt.Cells(zneu, 3) oNeu.Cells(zneu, 3) Then geaend = 3
If oAlt.Cells(zneu, 8) oNeu.Cells(zneu, 8) Then geaend = 8
If geaend > 0 Then 'es ist etwas geändert
oNeu.Cells(zneu, 1).EntireRow.Copy
.Cells(zdiff, 1).PasteSpecial xlPasteValues
.Cells(zdiff, 9) = oAlt.Cells(zneu, geaend)
zdiff = zdiff + 1
End If
Next zneu
If zneu
Allerdings funktioniert das Makro noch nicht wie gewünscht. Aktuell werden alle Zeilen kopiert.Ich benötige jedoch nur die Zeilen, in welcher es eine Veränderung gab. Ausgangspunkt sollte wie immer der Kundenname in der Spalte G sein. Ist dieser in beiden Files vorhanden, sollte nach Veränderungen in den Spalten B, C, und H gesucht werden. Sind Veränderungen vorhanden sollten diese im Tabellenblatt "TTP_Veränderungen" angezeigt werden.
Das Makro sollte folgendes machen:
- 1. Jeder Client in alt, Suche danach in neu, Differenzen ausgeben
- 2. Suche nach Clienten in alt, die in neu nicht mehr vorhanden sind
- 3. Suche nach Clienten in neu, die es in alt noch nicht gibt
Die Clienten kommen jeweils nur 1x vor.
Besten Dank für eure Hilfe.
Beste Grüsse
Thomas