teste mal mit diesem Makro. Noch muss die Datei "update.xlsx" heißen, der Code in "Basis.xls" -> Basis.xlsm" eingefügt werden.
Code:
Sub T_1() Dim BS As Worksheet: Set BS = ActiveSheet Dim Up As Workbook
Set Up = Workbooks.Open(ThisWorkbook.Path & "\update.xlsx") 'Set Up = Workbooks("update.xlsx") Set Rng = BS.Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row) With Up.Sheets(1) For i = 2 To .Cells(Rows.Count, 2).End(xlUp).Row r = Application.Match(.Cells(i, 2), Rng, 0) If IsError(r) Then Debug.Print i, r .Range(.Cells(i, 1), .Cells(i, "L")).Copy BS.Cells(Rows.Count, 1).End(xlUp).Offset(1) BS.Cells(Rows.Count, 1).End(xlUp).Resize(, 12).Interior.Color = vbYellow End If Next i End With Up.Close 0 End Sub
mfg
Hallo, hab den Code eingefügt und das Makro laufen lassen. Die Datensätze wurden jedoch komplett, also alle Zeilen in die Basis kopiert und gelb eingefärbt. Leider eben auch die doppelten.
Hab was vergessen. Ich hatte mir die Update-Tabelle als zweites Blatt nach "Basis" kopiert. Du müsstest in der Formel dann noch mit [....] auf die separate update-Datei verweisen.
Moin, so richtig verstanden habe ich dein Anliegen nicht ... Und auch ich bin der Meinung, dass hier eigentlich eine Datenbank angesagt ist. Aber ich habe mal einen Versuch gestartet. Warum da immer irgendwo eine leere Zeile drin ist, kann ich im Moment nicht sagen; mir fehlt im Moment aber auch die Zeit, das nachzuprüfen.
Einfach mal sehen, ob du das in dieser Richtung gemeint hast.
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
(01.09.2018, 14:52)GMG-CC schrieb: Moin, so richtig verstanden habe ich dein Anliegen nicht ... Und auch ich bin der Meinung, dass hier eigentlich eine Datenbank angesagt ist. Aber ich habe mal einen Versuch gestartet. Warum da immer irgendwo eine leere Zeile drin ist, kann ich im Moment nicht sagen; mir fehlt im Moment aber auch die Zeit, das nachzuprüfen.
Einfach mal sehen, ob du das in dieser Richtung gemeint hast.
Hallo Günter, danke vorerst, dass überhaupt ein Hilfeversuch gestartet wird.
Im ersten Step müssen von der Datei Update die bereits vorhanden Einträge aus der Basis gefunden werden. Dazu ist einzig die Spalte B zuständig . Ist eine Nummer in der Update Spalte B bereits in der Basis vorhanden, dann ignorieren, ansonsten ie komplette zeile aus Update in die Basis unten dazuhängen.
Dies wäre die absolut wichtigste Lösung für mich. Der Rest ist Draufgabe.
DIe Makrolösung wäre super, da am einfachsten. Lösung von Panderson hab ich eben getestet und ist relativ aufwendig und irgendwie zeigts mir das ganze auch noch nicht richtig an.
(01.09.2018, 15:00)carlo1 schrieb: Im ersten Step müssen von der Datei Update die bereits vorhanden Einträge aus der Basis gefunden werden. Dazu ist einzig die Spalte B zuständig . Ist eine Nummer in der Update Spalte B bereits in der Basis vorhanden, dann ignorieren, ansonsten ie komplette zeile aus Update in die Basis unten dazuhängen.
Hallo Dies und die Tatsache, dass aus mehreren Dateien importiert werden soll (wenn ich richtig verstanden habe) riecht sehr nach dem Einsatz von ADO. Aber im Moment habe ich weder Lust noch Zeit. Vielleicht morgen.
Moin, so, ich habe folgendes gemacht (mit meinen Worten): BASIS bleibt so, wie sie ist. Jetzt alle Datensätze aus UPDATE, deren einmalige Nummer (Spalte_B) noch nicht in BASIS enthalten ist, anhängen. Das Ergebnis (ohne die beiden unsichtbaren importierten Files) siehst du im Anhang. Die Zahl der zu vergleichenden Daten ist ja ganz übersichtlich ... ICH würde für Testzwecke die kalendarischen Daten der neu hinzugefügten Datensätze in Spalte_G auf das Jahr 2100 ändern, dann sind die leichter für Kontrollzwecke zu finden ...
Da du ja 2016 hast, ist das alles mit Bordmitteln ohne VBA zu machen.
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:1 Nutzer sagt Danke an GMG-CC für diesen Beitrag 28 • carlo1