und da ab Spalte N1 eingefügt werden. Es müssen an dieser Stelle keine Altdaten gelöscht werden, da die neuen die alten hier überschreiben.
P.s -> Wenn man das Öffenen der Quell-Datei noch so optieren könnte das er beim Dateiauswahl-Dialog in dem Ordner startet wo die Ziel-Datei liegt, wäre das ein MEGA BONUS :)
Ich Danke euch schon mal im Voraus
Sub kopieren()
Dim lQuelle As Variant
lQuelle = Application.GetOpenFilename("Microsoft Excel-Dateien (*.xls*), *.xls*", , "Wählen Sie die Quell-Datei aus") 'per Dateiauswahl-Dialog wirst du aufgefordert, deine Quell-Datei zu öffnen
If lQuelle = False Then Exit Sub 'wenn du im Dialog auf Abbrechen klickst, wird dieses Makro hier beendet
With Tabelle1
'wenn in Zieldatei in Tabelle1 ab Zeile 19 (alte) Datenzeilen enthalten sind...
If .Cells(.Rows.Count, 2).End(xlUp).Row >= 19 Then
'...werden die Inhalte der (alten) Datenzeilen erst mal gelöscht
.Range("B19:GN" & .Cells(.Rows.Count, 2).End(xlUp).Row).ClearContents
End If
Workbooks.Open Filename:=lQuelle 'dieser Befehl öffnet die von dir im Dialog zuvor ausgewählte Quelldatei
Range("A14:F" & Cells(Rows.Count, 2).End(xlUp).Row).Copy .Range("B19") 'alle Datenzeilen aus Quelldatei in den Spalten A:F ab Zeile 14 bis zur zuletzt genutzten Zeile in den Spalten A:F werden kopiert und in Zieldatei in den Spalten B:G ab Zeile 19 eingefügt
ActiveWorkbook.Close False 'die Quelldatei wird - ohne sie zu speichern! - wieder geschlossen
End With
'nun siehst du alle in Quelldatei kopierten Zeilen, die in Zieldatei eingefügt wurden - die Zieldatei wird nicht geschlossen
End Sub