HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)

Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
Demcko
26.05.2026 14:28:44
nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo,
wie muss ich unten stehenden Code (hier aus dem Forum) erweitern, damit Spalte 1 und 2 gemeinsam ausgewertet werden.
In Spalte 1 steht das Datum, in 2 die zugehörige Uhrzeit des Tages.
Nun soll auch die Uhrzeit des Tages für neue Daten erkannt werden.



Sub Datenabgleich_Schluessel()
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim wbZiel As Workbook, wksZiel As Worksheet
Dim varSchluessel, lSpalteSchluessel As Long, Zelle As Range
Dim ZeileQuelle As Long, ZeileZiel As Long

' Tabelle mit ggf. neuen Daten
Set wbQuelle = Workbooks("MappeDaten.xls") ' Name anpassen!
Set wksQuelle = wbQuelle.Worksheets("Tabelle2") ' Name anpassen
' Tabelle in der Inhalte eingetragen werden sollen
Set wbZiel = Workbooks("MappeZiel.xls") ' Name anpassen!
Set wksZiel = wbZiel.Worksheets("Tabelle1") ' Name anpassen
' Nr. der Schlüsselspalte
lSpalteSchluessel = 1 ' ggf. anpassen

' Letzte Datenzeile in Zieltabelle
With wksZiel
ZeileZiel = .Cells(.Rows.Count, lSpalteSchluessel).End(xlUp).Row
End With

Application.ScreenUpdating = False
With wksQuelle
For ZeileQuelle = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
' Such-Werte aus Zeile in Zieltabelle einlesen
varSchluessel = .Cells(ZeileQuelle, lSpalteSchluessel)
' Name in Spalte Schlüsselsäule im Zieltabelle suchen
Set Zelle = wksZiel.Columns(lSpalteSchluessel).Find(what:=varSchluessel, _
LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then ' neuer Datensatz
ZeileZiel = ZeileZiel + 1
.Rows(ZeileQuelle).Copy
wksZiel.Cells(ZeileZiel, 1).PasteSpecial Paste:=xlPasteValues
End If
Next
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Gruß
Demcko
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
daniel
26.05.2026 14:52:15
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hi
ich würde in beiden Tabellen am Anfang eine Spalten hinzufügen und dort Datum und Uhrzeit zusammenfügen.
das kannst du einfach addieren und dann kannst du mit dieser Spalte den Vergleich durchführen.

ich würde allerdings die Werte in Text umwandeln, dh die Formel einfügen: =Text(B2+C2;"JJJJ-MM-TT hh:mm:ss")
und mit den Texten arbeiten, da bei Zeiten mit gerne mal die rechnertypische Ungenauigkeit ein Problem werden kann (1+1 = 2,000000000001)

Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
Demcko
26.05.2026 15:40:53
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo Daniel,
nochmals Dank für deine Lösung.
Das Problem ist, dass die Quelldatei, die ich nahezu täglich neu erstelle, aus einem Programm kommt, das Datum und Uhrzeit getrennt in zwei Spalten generiert. Das wäre nur dann sinnvoll, wenn ich das zusammenlegen von Datum und Uhrzeit in eine Spalte automatisieren könnte. Leider fehlt mir dazu die Fertigkeit.
Deshalb wäre es für mich zweckmäßig, wenn es noch eine Lösung gäbe, die zweite Spalte (Uhrzeit) mit zu berücksichtigen.
Hat jemand dafür eine Erweiterung für diesen Code?

Gruß
Demcko
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
daniel
26.05.2026 15:53:46
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hi
naja, so schwierig ist das das nicht.
Spalte einfügen und die entsprechende Formel eintragen.
Der Recorder ist dein Freund.

aber du hast noch eine eine andere Option.
du willst ja nur prüfen, ob der Wert schon in der anderen Datei drin ist oder nicht. Das geht alternativ auch mit ZählenWenns(Datumsspalte;Datum;Uhrzeitspalte;Uhrzeit)=0

in VBA dann statt dem .Find + IF nur mit diesem IF

If Worksheetfunction.CountIFs(wksZiel.columns(1), .Cells(ZeileQuelle, 1), wksZiel.columns(2), .Cells(ZeileQuelle, 2)) = 0 then 'neuer Datensatz


Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
Demcko
26.05.2026 16:37:35
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo Daniel,
diese Zwischenschritte möchte ich mir doch gerne sparen.
Und wie dem Code zu entnehmen ist, wird gesucht, kopiert und in der Zieldatei eingefügt.
Ist es denn wirklich so ungewöhnlich zwei Spalten nach neuen Daten abzufragen?
Und wiederum danke für deine Lösungsansätze.
Möglicherweise werde ich dann diese Zwischenschritte machen (müssen). (;-))

Gruß
Demcko
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
daniel
26.05.2026 17:19:16
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
meine zweiter Lösungsansatz kommt ohne Zwischenschritt aus.

du prüfst nicht mit .Find ob der eine Wert in der anderen Liste drin ist, sondern mit ZählenWenns (Worksheetfunction.countif)
beim ZählenWenns kann man auch zwei oder oder mehr Spalten in die Berechnung mit aufnehmen.

sonst ist alles gleich.
das braucht sogar eine Programmzeile weniger als dein bisheriger code.

Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
UweD
26.05.2026 16:33:23
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo

Meine Annahme

Quelle:
Datum steht in A
Zeit in B
Arbeitsblatt mit dem Namen 'Tabelle2'
 ABCDEFG
1DatZtT1T2T3T4T5
201.01.202614:20A1  3
301.01.202612:20b2  33
402.01.202614:20c3  333
503.01.202615:20d4  3333


Ziel:
Datum+Zeit stehen in A
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCD
1U1   
2    
3    
4    
5    
601.01.2026 14:20   
701.01.2026 12:20   
803.01.2026 15:20   


Sub Datenabgleich_Schluessel()

Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim wbZiel As Workbook, wksZiel As Worksheet
Dim varSchluessel, lSpalteSchluessel As Long, Zelle As Range
Dim ZeileQuelle As Long, ZeileZiel As Long
Dim LC As Integer

' Tabelle mit ggf. neuen Daten
Set wbQuelle = Workbooks("MappeDaten.xlsx") ' Name anpassen!
Set wksQuelle = wbQuelle.Worksheets("Tabelle2") ' Name anpassen
' Tabelle in der Inhalte eingetragen werden sollen
Set wbZiel = Workbooks("MappeZiel.xlsx") ' Name anpassen!
Set wksZiel = wbZiel.Worksheets("Tabelle1") ' Name anpassen
' Nr. der Schlüsselspalte
lSpalteSchluessel = 1 ' ggf. anpassen

' Letzte Spalte Quelle ermitteln
LC = wksQuelle.Cells.SpecialCells(xlCellTypeLastCell).Column 'Letzte Spalte des gesamten Blattes
LC = LC - lSpalteSchluessel

' Letzte Datenzeile in Zieltabelle
With wksZiel
ZeileZiel = .Cells(.Rows.Count, lSpalteSchluessel).End(xlUp).Row
End With

Application.ScreenUpdating = False
With wksQuelle
For ZeileQuelle = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
' Such-Werte aus Zeile in Zieltabelle einlesen
varSchluessel = CDate(.Cells(ZeileQuelle, lSpalteSchluessel) + .Cells(ZeileQuelle, lSpalteSchluessel + 1))
' Name in Spalte Schlüsselsäule im Zieltabelle suchen
Set Zelle = wksZiel.Columns(lSpalteSchluessel).Find(what:=varSchluessel, _
LookIn:=xlFormulas2, LookAt:=xlPart)
If Zelle Is Nothing Then ' neuer Datensatz
ZeileZiel = ZeileZiel + 1

'Spalte Datum und Zeit adiert einfügen
wksZiel.Cells(ZeileZiel, 1).Value = varSchluessel

'Restliche Daten ab Spalte 3 in Spalte2 und folgende einfügen
wksZiel.Cells(ZeileZiel, 2).Resize(1, LC).Value = _
.Cells(ZeileQuelle, lSpalteSchluessel + 2).Resize(1, LC).Value
End If
Next
End With
Application.ScreenUpdating = True
End Sub




LG UweD
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
Demcko
26.05.2026 16:56:37
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo Uwe,
in der Quelldatei stehen in
Spalte A Datum
Spalte B Uhrzeit.
In der Zieldatei ebenso.

Beispiel:
In der Quelldatei ist der aktuellste Wert: 26.5.26 | 10:00
In der Zieldatei: 26.5.26 | 09:55

Nun soll in der Zieldatei der aktuellere Wert 26.5.26 | 10:00 angefügt werden.

Gruß
Demcko

Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
UweD
27.05.2026 08:26:04
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo nochmal


Dann so???


Sub Datenabgleich_Schluessel()
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim wbZiel As Workbook, wksZiel As Worksheet
Dim lSpalteSchluessel As Long
Dim ZeileQuelle As Long, ZeileZiel As Long

' Tabelle mit ggf. neuen Daten
Set wbQuelle = Workbooks("MappeDaten.xlsx") ' Name anpassen!
Set wksQuelle = wbQuelle.Worksheets("Tabelle2") ' Name anpassen
' Tabelle in der Inhalte eingetragen werden sollen
Set wbZiel = Workbooks("MappeZiel.xlsx") ' Name anpassen!
Set wksZiel = wbZiel.Worksheets("Tabelle1") ' Name anpassen
' Nr. der Schlüsselspalte
lSpalteSchluessel = 1 ' ggf. anpassen


' Letzte Datenzeile in Zieltabelle
With wksZiel
ZeileZiel = .Cells(.Rows.Count, lSpalteSchluessel).End(xlUp).Row
End With

Application.ScreenUpdating = False
With wksQuelle
For ZeileQuelle = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
' Name in Spalte Schlüsselsäule im Zieltabelle suchen
If Application.CountIfs(wksZiel.Columns(lSpalteSchluessel), .Cells(ZeileQuelle, lSpalteSchluessel), _
wksZiel.Columns(lSpalteSchluessel + 1), .Cells(ZeileQuelle, lSpalteSchluessel + 1)) = 0 Then

ZeileZiel = ZeileZiel + 1
' Daten einfügen
.Rows(ZeileQuelle).Copy wksZiel.Rows(ZeileZiel)
' In Werte umwandeln
wksZiel.Rows(ZeileZiel).Value = wksZiel.Rows(ZeileZiel).Value
End If
Next
End With
Application.ScreenUpdating = True
End Sub


LG UweD
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
Demcko
27.05.2026 09:48:24
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo Uwe,

so funktioniert es einwandfrei!

Herzlichen Dank und Grüße

Demcko
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
daniel
27.05.2026 10:02:32
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
das ist doch genau das, was ich dir vorgeschlagen habe.
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
Demcko
27.05.2026 10:45:53
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo Daniel,

bei Deinem Vorschlag werden doch die Spalten Datum und Uhrzeit in eine zusätzliche Spalte zusammengefasst, um auch die Uhrzeit des Tages für neue Daten zu berücksichtigen.

Gruß

Demcko
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
daniel
27.05.2026 11:17:34
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Ich hatte dir mir meinem zweiten Beitrag doch eine zweite Lösungsmöglichkeit geschickt.

falls du das anders verstanden hast, bitte sage mir, wie du den Satz: "aber du hast noch eine eine andere Option." verstanden und interpretiert hast.

und dann würde mich interessiern, wie ich es zukünftig besser formulieren kann, damit solche Missverständnisse nicht mehr auftreten.
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
Demcko
27.05.2026 12:25:08
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Hallo Daniel,

ich danke Dir für dein Engagement und Bereitschaft dein Wissen zu teilen.
Es ist nicht meine Absicht dir in irgendeiner Form zu nahe zu treten.
Deine beiden letzten Beiträge ohne Anrede und Gruß zeigen, dass Du getriggert bist - Schwamm drüber.
Ich denke der Thread ist geschlossen und sollten den Dialog beenden.

Gruß
Demcko
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
daniel
27.05.2026 12:34:22
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
naja, wenn man sich unterhält, dann grüßt man sich während der Unterhaltung ja auch nicht jedesmal.
also mal locker bleiben.
aber du hast recht, die fühle mich schon getriggert, wenn ich helfen soll und dann auf Menschen stoße, die nicht lesen können oder wollen, oder die einfach auf eine Lösung warten, die sie ohne eigene Mitdenken per Copy-Paste übernehmen können.
So stelle ich mir die Zusammenarbeit in einem Forum nicht vor.
Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
snb
27.05.2026 12:02:56
AW: nur neue Daten kopieren. Spalte 1+2 (Datum/Uhrzeit)
Oder in VBA:

Sub M_snb()

sn = Workbooks("MappeDaten.xlsx").Sheets("Tabelle2").Cells(1).CurrentRegion
sp = Workbooks("MappeZiel.xlsx").Sheets("Tabelle1").Cells(1).CurrentRegion

With CreateObject("scripting.dictionary")
For j = 1 To UBound(sp)
.Item(sp(j, 1)) = Application.Index(sp, j)
Next

For j = 1 To UBound(sn)
If Not .exists(sn(j, 1) & sn(j, 2)) Then .Item(sn(j, 1) & sn(j, 2)) = Application.Index(sn, j)
Next

Workbooks("MappeZiel.xlsx").Sheets("Tabelle2").Cells(1).Resize(.Count, UBound(sp, 2)) = application.Index(.items, 0, 0)
End With
End Sub