Wie kann ich zwei verschiedene Excel-Dateien zu einer neuen synchronisieren und diese automatisch aktualisieren?

...komplette Frage anzeigen

2 Antworten

Hast Du eine Datums-/Zeitspalte in Deinen Dateien A und B? Dann kannst du den jüngeren Eintrag automatisch auswählen. (Das Datum lässt sich sehr schnell eintragen mit Strg + . (Punkt), die Uhrzeit dranhängen mit Leer und  Strg + : (Doppelpunkt), das wäre für jeden zumutbar, der was verändern will. Also einfach: Ctrl . leer Ctrl : (Letzteres also als Ctrl&Shift + .)

Definiere als Datumszellen erst mal zwei Zellen in der Ergebnisdatei als zB E1 und F1. Die Formel wäre dann:

=wenn(E1>E2;A1;B1)

anschließend schneidest du die Zellen einzeln aus (nicht kopieren!) und fügst sie in Demozellen am Kopf Deiner Spalten in den anderen Dateien ein. Die Adressierung passt sich dann automatisch an..

Probiers einfach mal aus!

Stehen die Infos nicht an gleicher Position, wirds komplizierter.


Hey, da gibt es schon verschiedene Möglichkeiten. Erstmal ist es aber wichtig das du uns erzählst wie groß deine Dateien sind die du zusammenführen willst. Also wieviele Tabellenblätter sind in einer Datei. Gruß schmiddi

schmiddi1967 24.08.2015, 07:24

OK, ich gehe jetzt mal von folgenden Daten aus:

Du hast zwei Datein und in jeder Datei befindet sich ein Tabellenblatt wo die Daten drin sind. Beide Datein haben jeweils in Zeile 1 ihre Überschrift und beide Datein haben die Endung xlsx und liegen im gleichem Odner.

Dann erstellst du dir eine neue Datei und und speicherst diese als xlsm Datei, jetzt gehst du mit ALT+F11 in den VBA Modus und gibst  in Diese Arbeitsmappe folgenden Code ein:

Private Sub Workbook_Open()
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A2").Select
Const FOLDER_PATH = "C:\Pfad_zu_deinen_Datein\" '!!!!Pfad anpassen!!!!!
Dim strFilename As String
Dim objTargetWorksheet As Worksheet
Dim objSourceWorkbook As Workbook
Application.ScreenUpdating = False
Set objTargetWorksheet = ActiveSheet
strFilename = Dir$(FOLDER_PATH & "*.xlsx")
Do Until strFilename = vbNullString
Set objSourceWorkbook = Workbooks.Open(Filename:=FOLDER_PATH & strFilename)
With objSourceWorkbook.ActiveSheet
.Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 6)).Copy
End With
With objTargetWorksheet
.Paste Destination:=.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
Application.CutCopyMode = False
Call objSourceWorkbook.Close(SaveChanges:=False)
strFilename = Dir$()
Set objSourceWorkbook = Nothing
Loop
Set objTargetWorksheet = Nothing
Application.ScreenUpdating = True
End Sub

Den Pfad zu deinen Datein und eventuell auch wie weit (hier Spalte F)

Row, 6

musst du anpassen.


Zur Erklärung:

Beim öffnen der neuen Datei wird automatisch im angegebenen Pfad nach den xlsx Datein gesucht und eine nach dem anderen in die neue Datei in Tabelle1 eingetragen. Also beim öffnen immer aktuell.

Wichtig: Sollten noch weitere xlsx Datein in diesem Ordner sein werden sie automatisch mit eingelesen.

Hilft dir das weiter?

0

Was möchtest Du wissen?