Excel 2003 Automatisches Übertragen von Daten versch. Exceldateien auf eine Exceldatei
Ich versuche mich schon ewig daran mein Problem zu lösen. Ich habe hier ein Beitrag gefunden, der fast mein Problem trifft, aber ich schaff es nicht den Code so umzuändern, dass er auf mein Problem passt.
Link: https://www.administrator.de/forum/excel-makro-daten-aus-mehreren-tabell ...
Hallo,
ich hoffe ich kann mein Problem verständlich erkären.
Ich habe verschiedene Excel Sheets (in einem Ordner) mit denen Kalkulationen durchgeführt werden. Jedes dieser Sheets hat eine Übersichtsseite (Deckblatt), auf der die errechneten Kennzahlen/Summen aber auch Text steht ( E38 bis G57 und ich habe keine Rechte das Dokument zu ändern).
Jetzt sollen die Datenblöcke nebereinander angeordnet werden, damit es schön übersichtlich ist.
Wie schon gesagt, eigentlich ist der oben genannte Link schon die Lösung, aber ich schaff es einfach nicht ihn auf mein Problem zu übertragen.
Ich hoffe ihr könnt mir weiter helfen.
Vielen Dank im Voraus.
lg paterpen
Link: https://www.administrator.de/forum/excel-makro-daten-aus-mehreren-tabell ...
Hallo,
ich hoffe ich kann mein Problem verständlich erkären.
Ich habe verschiedene Excel Sheets (in einem Ordner) mit denen Kalkulationen durchgeführt werden. Jedes dieser Sheets hat eine Übersichtsseite (Deckblatt), auf der die errechneten Kennzahlen/Summen aber auch Text steht ( E38 bis G57 und ich habe keine Rechte das Dokument zu ändern).
Jetzt sollen die Datenblöcke nebereinander angeordnet werden, damit es schön übersichtlich ist.
Wie schon gesagt, eigentlich ist der oben genannte Link schon die Lösung, aber ich schaff es einfach nicht ihn auf mein Problem zu übertragen.
Ich hoffe ihr könnt mir weiter helfen.
Vielen Dank im Voraus.
lg paterpen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193129
Url: https://administrator.de/forum/excel-2003-automatisches-uebertragen-von-daten-versch-exceldateien-auf-eine-exceldatei-193129.html
Ausgedruckt am: 04.04.2025 um 02:04 Uhr
8 Kommentare
Neuester Kommentar
Hallo paterpen und willkommen im Forum!
Vielleicht geht es ja so besser:
Alternativ zur Angabe des Blattnamens (Variable QT) kannst Du (wie im verlinkten Beitrag) in Zeile 20 auch einfach 1 (für erstes Blatt der Mappe) verwenden ...
Grüße
bastla
Vielleicht geht es ja so besser:
Sub Zusammenfassen()
sQuellpfad = "D:\Test"
QT = "Deckblatt" 'Tabellenname in der Quelldatei
Q = "E38:G57" 'Quellbereich
ZAbSpalte = 1 'ab dieser Spalte Daten in Sammeldatei schreiben
ZZeile = 3 'ab dieser Zeile Daten in Sammeldatei schreiben
Set wbGes = ActiveWorkbook
Set fso = CreateObject("Scripting.FileSystemObject")
QSpalten = Range(Q).Columns.Count 'Spaltenanzahl des Quellbereichs ermitteln
QZeilen = Range(Q).Rows.Count 'Zeilenanzahl des Quellbereichst ermitteln
ZSpalte = ZAbSpalte 'Spaltennummer vorbelegen
For Each oFile In fso.GetFolder(sQuellpfad).Files
If LCase(fso.GetExtensionName(oFile.Name)) = "xlsx" Then
Application.Workbooks.Open oFile.Path
wbGes.Worksheets(1).Cells(ZZeile, ZSpalte).Value = fso.GetBaseName(ActiveWorkbook.Name) 'Dateinamen der Quelldatei eintragen
wbGes.Worksheets(1).Cells(ZZeile + 1, ZSpalte).Resize(QZeilen, QSpalten).Value = ActiveWorkbook.Worksheets(QT).Range(Q).Value 'Werte aus Quelldatei übernehmen
ActiveWorkbook.Close False
ZSpalte = ZSpalte + QSpalten 'Spaltennummer der Zieldatei für nächsten Block erhöhen
End If
Next
wbGes.Worksheets(1).Activate
wbGes.Save
MsgBox "Fertig."
End Sub
Grüße
bastla
Hallo paterpen!
Jeweils E38:G57 zu kopieren, sollte etwa so gehen:
Grüße
bastla
Jeweils E38:G57 zu kopieren, sollte etwa so gehen:
Sub Zusammenfassen()
sQuellpfad = "D:\Test"
QT = "Deckblatt" 'Tabellenname in der Quelldatei
Q = "E38:G57" 'Quellbereich
ZAbSpalte = 1 'ab dieser Spalte Daten in Sammeldatei schreiben
ZZeile = 3 'ab dieser Zeile Daten in Sammeldatei schreiben
Set wbGes = ActiveWorkbook
Set fso = CreateObject("Scripting.FileSystemObject")
QSpalten = Range(Q).Columns.Count 'Spaltenanzahl des Quellbereichs ermitteln
QZeilen = Range(Q).Rows.Count 'Zeilenanzahl des Quellbereichst ermitteln
ZSpalte = ZAbSpalte 'Spaltennummer vorbelegen
For Each oFile In fso.GetFolder(sQuellpfad).Files
If LCase(fso.GetExtensionName(oFile.Name)) = "xlsx" Then
Application.Workbooks.Open oFile.Path
wbGes.Worksheets(1).Cells(ZZeile, ZSpalte).Value = fso.GetBaseName(ActiveWorkbook.Name) 'Dateinamen der Quelldatei eintragen
ActiveWorkbook.Worksheets(QT).Range(Q).Copy wbGes.Worksheets(1).Cells(ZZeile + 1, ZSpalte)'Zellen aus Quelldatei kopieren
ActiveWorkbook.Close False
ZSpalte = ZSpalte + QSpalten 'Spaltennummer der Zieldatei für nächsten Block erhöhen
End If
Next
wbGes.Worksheets(1).Activate
wbGes.Save
MsgBox "Fertig."
End Sub
bastla
Hallo paterpen!
Schon mal versucht, den entsprechenden Code über das Aufzeichnen eines Makros zu finden (abgesehen davon, dass mit dem Stichwort "Hyperlink" auch die Online-Hilfe Brauchbares liefern sollte)?
Grundsätzlich könnte das dann etwa so aussehen:
Grüße
bastla
Schon mal versucht, den entsprechenden Code über das Aufzeichnen eines Makros zu finden (abgesehen davon, dass mit dem Stichwort "Hyperlink" auch die Online-Hilfe Brauchbares liefern sollte)?
Grundsätzlich könnte das dann etwa so aussehen:
wbGes.Worksheets(1).Hyperlinks.Add wbGes.Worksheets(1).Cells(ZZeile, ZSpalte), oFile.Path, , ,fso.GetBaseName(ActiveWorkbook.Name)
bastla