Excel Power Query, einzelne Tabellenblätter in neuer Arbeitsmappe zusammenführen
Hallo zusammen,
befasse mich aktuell mit den Möglichkeiten von Power Query.
In einem Ordner werden täglich neue Excel Arbeitsmappen gespeichert. Diese rufe ich ab und speichere sie in einer Zieldatei.
Soweit so gut, jetzt zu meinem Problem.
Die Quelldateien haben mehrere Arbeitsblätter, diese möchte ich in der Zieldatei in einem Arbeitblatt zusammenfassen.
Wie funktioniert das?
Außerdem führt es zu Problemen, wenn andere Excel Arbeitsmappen in dem Quellordner gespeichert werden. Gibt ed eine möglcihkeit, dass nur auf Mappen mit einem definierten Namen + täglich aktualisierten Datum zugegriffen wird?
Danke.
befasse mich aktuell mit den Möglichkeiten von Power Query.
In einem Ordner werden täglich neue Excel Arbeitsmappen gespeichert. Diese rufe ich ab und speichere sie in einer Zieldatei.
Soweit so gut, jetzt zu meinem Problem.
Die Quelldateien haben mehrere Arbeitsblätter, diese möchte ich in der Zieldatei in einem Arbeitblatt zusammenfassen.
Wie funktioniert das?
Außerdem führt es zu Problemen, wenn andere Excel Arbeitsmappen in dem Quellordner gespeichert werden. Gibt ed eine möglcihkeit, dass nur auf Mappen mit einem definierten Namen + täglich aktualisierten Datum zugegriffen wird?
Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 62898429015
Url: https://administrator.de/contentid/62898429015
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
4 Kommentare
Neuester Kommentar
ußerdem führt es zu Problemen, wenn andere Excel Arbeitsmappen in dem Quellordner gespeichert werden. Gibt ed eine möglcihkeit, dass nur auf Mappen mit einem definierten Namen + täglich aktualisierten Datum zugegriffen wird?
Das wirst du dann wohl mit VBA arbeiten müssen. Kann ich dir anbieten wenn du das alles etwas genauer spezifizierst.ca. 20 Zeilen VBA werden da vermutlich reichen.
Habe dir einmal ein Beispiel zusammengebaut, das anhand eines Dateifilters und des heutigen Datums die Inhalte aller enthaltenen Sheets in die Mappe des Makros kopiert:
Sub ArbeitsmappenZusammenfassen()
Dim QUELLE As String, FILEFILTER As String, wbRead As Workbook, ws As Worksheet, rowCurrent As Long, fileDate As Variant, filepath As String, file As String
'Quelle
QUELLE = "D:\data"
' Dateifilter
FILEFILTER = "lagerdaten_*.xlsx"
' Daten auf das erste Sheet der aktuellen Mappe kopieren
With ThisWorkbook.Sheets(1)
' nächste freie Zeile ermitteln
rowCurrent = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
' Dateien auflisten
file = Dir(QUELLE & "\" & FILEFILTER)
' Alle Dateien mit Schleife durchlaufen
While file <> ""
' Dateipfad aus Pfad und Dateiename zusammensetzen
filepath = QUELLE & "\" & file
' Dateidatum holen
fileDate = FileDateTime(filepath)
' Wenn das Änderungsdatum dem heutigen Tag entspricht
If fileDate > Date And fileDate < DateAdd("d", 1, Date) Then
' öffne Datei
Set wbRead = CreateObject(filepath)
' für jedes Sheet in der Datei
For Each ws In wbRead.Sheets
' kopiere den Inhalt in die aktuelle Datei
ws.UsedRange.Copy Destination:=.Cells(rowCurrent, "A")
' nächste freie Zeile definieren
rowCurrent = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Next
' Datei schließen
wbRead.Close False
End If
' nächste Datei
file = Dir
Wend
End With
End Sub
Gruß sid