Hallo zusammen,
ich stehe vor folgendem Problem.
Ich habe einen funktionierenden Code, welcher ID's aus 2 verschiedenen Excel Tabellen/Dateien öffnet, sie miteinander vergleicht und die in Datei 2 (.xlsm Datei) in Datei 1 (.xlsx Datei) einfügt bzw. überschreibt.
Nun meine Frage, wie stelle ich es an, dass er nicht nur die alten vergleicht und in die Datei 1 kopiert, sondern auch neue, die in Datei 2 vorhanden sind und noch nich tin Datei 1? in alphabetischer reihenfolge?
Hier mein Code:
Code: |
'.xlsx Datei ist geöffnet
Dim rng As Range, rngFind As Range, wbA As Workbook
'xlsm Datei ist offen und wird mit der Variablen wbA abgespeichert
Set wbA = ActiveWorkbook
Application.Dialogs(xlDialogOpen).Show ("*.xlsm")
'Dateiöffnen Dialog wird gestartet
With ActiveWorkbook.Sheets(1)
For Each rng In .Range(.Cells(1, 2), .Cells(.Rows.Count, 2).End(xlUp))
'für jede Zelle im Bereich B2 bis letzte gefüllte Zelle in Spalte Q mache folgendes
Set rngFind = wbA.Sheets(1).Columns(2).Find(what:=rng, lookat:=xlWhole)
'suche in .xlsm nach der Zelle aus Spalte B, die gerade in der Variablen rng gespeichert ist
If Not rngFind Is Nothing Then _
rng.Offset(, -1).Resize(, 1).Copy rngFind.Offset(, -1)
'wenn die Suche erfolgreich war, kopiere die Zellen aus Spalte A der gleichen Zeile
Next rng
End With
ActiveWorkbook.Close True
'schließe die per Dateiöffnen geöffnete Datei (.xlsm) wieder mit speichern
wbA.Close True
'schließe Start.xlsx wieder mit speichern |
Vielen Dank schon mal im Voraus!
LG Claudia
|