Excel: Makro soll mehrer Dateien auslesen und in einer neuen Datei zusammenfassen
Hallo zusammen,
ich suche ein Makro, mit dem ich aus mehreren Exceltabellen, die alle in einem Verzeichnis liegen, die Daten auslesen und in einer neuen Datei neu strukturiert abspeichern kann.
Ich habe schon viele Makros dazu im Netz gefunden und probiert, aber keins passt auf meine Anforderungen. Ich stecke in der VBA Programmierung leider nicht so tief drin, dass ich die bestehenden Lösungen umschreiben könnte, daher hier meine Bitte um Hilfe.
Die einzulesenden Dateien sind von der Struktur alls so aufgebaut:
Name | Müller
Vorname | Bernd
Personalnummer | 123585
Standort | Hamburg
Das Zeichen | ist dabei nur als Kennzeichen hier für eine neue Spalte. Die Parameterbezeichnung und die Werte stehen also in getrennten Spalten nebeneinander.
In der neuen Datei sollen die Daten so abgelegt werden:
Name | Vorname | Personalnummer | Standort
darunter dann jeweils die Werte aus den einzelnen Tabellen
Kann mir dazu jemand ein Makro empfehlen? Wenn man mir sagt wie, dann schreibe ich es auch gern um, dass die richtigen Spalten angesprochen werden.
Vielen Dank.
LG
Michelle
ich suche ein Makro, mit dem ich aus mehreren Exceltabellen, die alle in einem Verzeichnis liegen, die Daten auslesen und in einer neuen Datei neu strukturiert abspeichern kann.
Ich habe schon viele Makros dazu im Netz gefunden und probiert, aber keins passt auf meine Anforderungen. Ich stecke in der VBA Programmierung leider nicht so tief drin, dass ich die bestehenden Lösungen umschreiben könnte, daher hier meine Bitte um Hilfe.
Die einzulesenden Dateien sind von der Struktur alls so aufgebaut:
Name | Müller
Vorname | Bernd
Personalnummer | 123585
Standort | Hamburg
Das Zeichen | ist dabei nur als Kennzeichen hier für eine neue Spalte. Die Parameterbezeichnung und die Werte stehen also in getrennten Spalten nebeneinander.
In der neuen Datei sollen die Daten so abgelegt werden:
Name | Vorname | Personalnummer | Standort
darunter dann jeweils die Werte aus den einzelnen Tabellen
Kann mir dazu jemand ein Makro empfehlen? Wenn man mir sagt wie, dann schreibe ich es auch gern um, dass die richtigen Spalten angesprochen werden.
Vielen Dank.
LG
Michelle
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 342908
Url: https://administrator.de/contentid/342908
Ausgedruckt am: 24.11.2024 um 22:11 Uhr
12 Kommentare
Neuester Kommentar
Einfach mal den Link unter deinem Thread angesehen minimal angepasst indem man in die Doku schaut, dann wäre das eigentlich schnell erledigt gewesen...
Gruß
Sub MergeWorksheets()
Const FOLDER = "D:\daten"
Dim sh As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ThisWorkbook.Sheets(1)
file = Dir(FOLDER & "\*.xlsx")
While file <> ""
set sh = GetObject(FOLDER & "\" & file).Sheets(1)
sh.Range("B1:B4").Copy
.Cells(Rows.Count,"A").End(xlUp).Offset(1,0).pasteSpecial Paste:=xlPasteValuesAndNumberFormats, Transpose:=True
sh.Parent.Close False
file = Dir()
Wend
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Unter "Ähnliche Inhalte" der erste Beitrag.
VBA Excel Dateien zusammenfassen
Wenns das dann war bitte noch als gelöst markieren.
VBA Excel Dateien zusammenfassen
Wenns das dann war bitte noch als gelöst markieren.
Was muss ich schreiben, damit er die Werte nicht mehr untereinandere schreibt (so wie es ausgelesen wird) sondern in einer Zeile?
So wie ich ihn oben extra dafür angepasst habe, läuft hier einwandfrei.Du musst halt deine Fehlermeldung posten ...
Da fehlt der Punkt , kopiers einfach nochmal.
Weil dein Pfad am Ende einen Backslash hat, der wird ja schon in Zeile 7 gesetzt!
Const FOLDER = "C:\Users\Desktop\Excel_VBA\"
Jetzt fehlt der Username im Pfad ...ts, ts,ts..Sub MergeWorksheets()
Const FOLDER = "C:\Users\<DEINUSERNAME>\Desktop\Excel_VBA"
Dim sh As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ThisWorkbook.Sheets(1)
file = Dir(FOLDER & "\*.xlsx")
While file <> ""
set sh = GetObject(FOLDER & "\" & file).Sheets(1)
sh.Range("B1:B4").Copy
.Cells(Rows.Count,"A").End(xlUp).Offset(1,0).pasteSpecial Paste:=xlPasteValuesAndNumberFormats, Transpose:=True
sh.Parent.Close False
file = Dir()
Wend
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Sorry all your faults, go buy a book and learn, instead of writing sad smileys.
Ciao.