Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Einlesen von Daten aus anderen Excel-Dateien

Einlesen von Daten aus anderen Excel-Dateien
09.01.2020 14:14:42
Daten
Hallo zusammen,
folgende Fragestellung: Ich habe ca. 50 separate Excel-Dateien, die jeweils ein Arbeitsblatt enthalten. In jeder der Dateien ist das Arbeitsblatt mit einem spezifischen Namen bezeichnet, der nicht dem Dateinamen entspricht.
Jede dieser 50 Dateien enthält Einträge in Zahlen- und Textform in immer den gleichen Zellen (z.B. W11, B15, AA25 etc.). Ich möchte die Einträge aller 50 Dateien in einer einzigen Excel-Tabelle mit 50 Zeilen und x Spalten zusammenfassen. Dafür schwebt mir vor, die Inhalte aus jeder der Dateien so einzulesen, dass die Einträge aus den Zellen W11, B15, AA25 etc. aus einer Quell-Datei jeweils in Spalten einer Zeile erscheinen, also für Datei 1 aus W11 nach A1, aus B15 nach B1, aus AA25 nach C1, die Einträge aus Datei 2 dann aus W11 nach A2, B15 nach B2, AA25 nach C2 usw.
Hat jemand Ideen für ein Makro, mit dem ich das umsetzen könnte? Machbar wäre z.B., dass ich die jeweilige Zeile in meiner Zieldatei manuell anwähle und jede Quell-Datei manuell einzeln aufrufe.
Ich wäre sehr dankbar für Anregungen und natürlich Vorschläge für einen VBA-Code.
Viele Grüße
Dominic

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einlesen von Daten aus anderen Excel-Dateien
10.01.2020 13:22:01
Daten
Hallo Dominic,
einfach den Code in ein Modul deiner Zieldatei eintragen und alle 50 Quelldateien öffnen.
Die Tabelle, in die die Werte eingetragen werden sollen aktivieren.
Code um die Quellzellen erweitern und dann Makro starten.
Sub Test()
Dim wbkTemp As Workbook, wbkZiel As Workbook, wksZiel As Worksheet, wksQuelle As Worksheet
Dim lngRow As Long
set wbkZiel = ThisWorkbook
set wksZiel = wbkZiel.ActiveSheet
lngRow = wksZiel.UsedRange.Rows.Count
For Each wbkTemp In Workbooks
If Not wbkTemp.name = wbkZiel.name Then
For Each wksQuelle In wbkTemp.Worksheets
With wksZiel
.Range("A" & lngRow).Value = wksQuelle.Range("W11").Value
.Range("B" & lngRow).Value = wksQuelle.Range("B15").Value
lngRow = lngRow + 1
End With
Next wksQuelle
End If
Next wbkTemp
End Sub
Gruß
Jürgen
Anzeige
AW: Einlesen von Daten aus anderen Excel-Dateien
10.01.2020 14:15:27
Daten
Hallo Jürgen,
vielen Dank! Ich hab Deine Anleitung befolgt und den Code um die Quellzellen ergänzt (s.u.).
Beim Starten des Makros passiert aber rein gar nichts. Keine Fehlermeldung, aber auch kein Einlesen von Daten in die aktivierte Tabelle (leere Mappe, leeres Arbeitsblatt).
Hast Du eine Idee, woran das liegen kann?
Grüße
Dominic
Sub EinlesenFrageboegen()
Dim wbkTemp As Workbook, wbkZiel As Workbook, wksZiel As Worksheet, wksQuelle As Worksheet
Dim lngRow As Long
Set wbkZiel = ThisWorkbook
Set wksZiel = wbkZiel.ActiveSheet
lngRow = wksZiel.UsedRange.Rows.Count
For Each wbkTemp In Workbooks
If Not wbkTemp.Name = wbkZiel.Name Then
For Each wksQuelle In wbkTemp.Worksheets
With wksZiel
.Range("A" & lngRow).Value = wksQuelle.Range("AG16").Value
.Range("B" & lngRow).Value = wksQuelle.Range("A19").Value
.Range("C" & lngRow).Value = wksQuelle.Range("A22").Value
.Range("D" & lngRow).Value = wksQuelle.Range("U28").Value
.Range("E" & lngRow).Value = wksQuelle.Range("U30").Value
.Range("F" & lngRow).Value = wksQuelle.Range("U32").Value
.Range("G" & lngRow).Value = wksQuelle.Range("U34").Value
.Range("H" & lngRow).Value = wksQuelle.Range("U36").Value
.Range("I" & lngRow).Value = wksQuelle.Range("U38").Value
.Range("J" & lngRow).Value = wksQuelle.Range("U40").Value
.Range("K" & lngRow).Value = wksQuelle.Range("U42").Value
.Range("L" & lngRow).Value = wksQuelle.Range("U44").Value
.Range("M" & lngRow).Value = wksQuelle.Range("AA44").Value
.Range("N" & lngRow).Value = wksQuelle.Range("A49").Value
.Range("O" & lngRow).Value = wksQuelle.Range("A54").Value
.Range("P" & lngRow).Value = wksQuelle.Range("A59").Value
.Range("Q" & lngRow).Value = wksQuelle.Range("A62").Value
.Range("R" & lngRow).Value = wksQuelle.Range("A65").Value
.Range("S" & lngRow).Value = wksQuelle.Range("AA69").Value
.Range("T" & lngRow).Value = wksQuelle.Range("AD69").Value
.Range("U" & lngRow).Value = wksQuelle.Range("R73").Value
.Range("V" & lngRow).Value = wksQuelle.Range("A76").Value
.Range("W" & lngRow).Value = wksQuelle.Range("AA79").Value
lngRow = lngRow + 1
End With
Next wksQuelle
End If
Next wbkTemp
End Sub

Anzeige
AW: Einlesen von Daten aus anderen Excel-Dateien
10.01.2020 14:20:11
Daten
Hallo Jürgen,
ich nehms zurück, es tut!!! Mein Fehler war, dass ich den Code in ein Modul der Personal.xlsb eingefügt hatte. Nach Einfügen in ein Modul der leeren Arbeitsmappe hats geklappt. Mangels VBA-Kenntnissen verstehe ich zwar den Zusammenhang nicht, bin jetzt aber über die funktionierende Lösung sehr froh! Also nochmal danke!!!
Grüße
Dominic
AW: Einlesen von Daten aus anderen Excel-Dateien
15.01.2020 15:25:36
Daten
Noch eine Frage: Wie kann ich Excel sagen, dass es die Inhalte aus einer Datei z.B. in Zeile 12 und nicht einfach fortlaufend von oben nach unten einfügen soll. Hintergrund: Ich muss die Daten in mehreren Schritten einlesen, da mir nicht alle Dateien auf einmal vorliegen. Dabei überschreibt Excel aber schon zuvor eingelesene Inhalte mit neu eingelesenen. Am besten wäre, ich könnte eine Zelle/Zeile aktivieren, ab der nach unten folgend neue Daten eingelesen werden sollen. Ist das im Code umsetzbar?
Gruß
Dominic
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige