Änderungen unter Berücksicht. D:E übernehmen
Wolfang
der untenstehende Code bewirkt wohl, dass aus einer Excel-Mappe (ist geschlossen) auf dem Desktop Daten gegenüber der aktuellen Mappe verglichen werden und Änderungen/Unterschiede in den Spalten I:K in die aktuelle Mappe überspielt werden. Wie kann der Code evtl. geändert werden, dass die Spalten D:E Berücksichtigung finden und eine Abhängigkeit hierzu besteht. Momentan kann passieren, dass zwei ähnliche Datensätze (Name, Vorname z.B. gleich) bestehen und die Änderungen in I:K somit falsch zugeordnet werden bzw. immer dann nur der erste Datensatz berücksichtigt wird. Spalte D enthält eine Kundennummer und Spalte E ein Datum. Die Kundennummer könnte dabei durchaus doppelt vorkommen, aber nicht mehr in der Kombination mit dem jeweiligen Datum. Danke schon jetzt für die Rückmeldungen.
Herzliche Grüße
Wolfgang
Private Sub Pruefen(wksZiel As Worksheet, ByVal Zeile1 As Long)
'im Zielblatt Schluessel suchen und Daten vergleichen/aktualiseren
Set rngGefunden = Durchsuchen(varSuche:=varSuchen, wksSuche:=wksZiel, _
lngZeile1:=Zeile1, lngSpalte:=SpalteSchluessel)
With wksZiel
bolGeaendert = False
If rngGefunden Is Nothing Then
'Schlüssel in Blatt Gesamt ist im Zielblatt nicht vorhanden
'NeuenDatensatz anlegen
' wksGesamt.Rows(lngZeile).Copy
'Nächste frei Zeile in Schluesselspalte
' lngZeileZiel = .Cells(.Rows.Count, SpalteSchluessel).End(xlUp).Row + 1
'Formate kopieren
' .Cells(lngZeileZiel, 1).PasteSpecial Paste:=xlFormats
'Werte kopieren
'.Cells(lngZeileZiel, 1).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
bolGeaendert = True
Else
lngZeileZiel = rngGefunden.Row
'Spalten auf Änderungen prüfen
For lngSpalte = 1 To 11
Select Case lngSpalte
Case 9, 10, 11 'Spalten I , J und K
If wksGesamt.Cells(lngZeile, lngSpalte).Value _
.Cells(lngZeileZiel, lngSpalte).Value Then
.Cells(lngZeileZiel, lngSpalte).Value = _
wksGesamt.Cells(lngZeile, lngSpalte).Value
bolGeaendert = True
End If
Case Else
'do nothing
End Select
Next
End If
'If bolGeaendert = True Then
'Änderungsdatum in Spalte L eintragen
'.Cells(lngZeileZiel, 12).Value = Now
' End If
End With
End Sub
Anzeige