Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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

Bestimmte Zellen aus mehreren Dateien auslesen

Bestimmte Zellen aus mehreren Dateien auslesen
11.03.2019 13:31:02
JP
Hallo zusammen,
ich benötige Hilfe beim Erstellen eines Makros welches mir aus Excel Dateien die sich in einem Ordner befinden bestimmte Zellen ausliest und in einen neuen Blatt überträgt.
Ich habe bei meiner Recherge folgenen Artikel gefunden, was meinem Anliegen schon sehr nahe kommt:
https://www.herber.de/forum/archiv/1128to1132/1129032_Bestimmte_Zeilen_aus_mehreren_Dateien_auslesen.html
Die Excel Dateien sind alle gleich aufgebaut. Folgene Zellen sollen aus der Datei ausgelesen werden:
D1
B8
B12
C18-C29
Userbild
Ich wäre Euch sehr dankbar, wenn ihr mir dabei behilflich sein könntet.
Gruß
JP

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zellen aus mehreren Dateien auslesen
11.03.2019 16:26:58
Rob
Hi JP,
die Excel-Dateien lassen sich mit der Klasse FileSystemObjects durchschleifen. Anschließend kannst Du die Zellen in ein neues Arbeitsblatt/Worksheet mit der Transfer-Methode oder Copy Paste zusammenfassen. Wie ist das neue Arbeitsblatt eigentlich aufgebaut?
Grüße,
Rob
AW: teilweise getestet
11.03.2019 16:59:04
Fennek
Hallo,
speichere den Code im "Ziel-Workbook" im Ordner der Quelldateien:

Sub JP()
Dim WB As Workbook
Dim RNG As Range
Pt = ThisWorkbook.Path
f = Dir(Pt & "\*.xlsx")
Do While Len(f)
r = r + 1
Set WB = GetObject(Pt & f)
Set RNG = WB.Sheets(1).Range("D1, B8, C18:C29")
Cells(r, 1) = RNG.Areas(1)
Cells(r, 2) = RNG.Areas(2)
Cells(r, 3).Resize(, 12) = Application.Transpose(RNG.Areas(3).Value)
wb.close 0
f = Dir
Loop
End Sub
mfg
Anzeige
AW: teilweise getestet
12.03.2019 10:36:59
JP
Vielen Dank für die schnelle Antwort.
Leider funktioniert der Code nicht bei mir.
Die Dateien sind im .xld Format so habe ich "f = Dir(Pt & "\*.xl*")" geändert.
Nun bekomme ich allerdings folgene Fehlermeldung:
Userbild
Das neue Datenblatt sollte wie folgt aussehen:
Userbild
AW: "XLD"? over & out
12.03.2019 10:54:25
Fennek
Hallo,
vom "XLD"-Format habe ich noch nie gehört:
http://dotwhat.net/file/extension/xld/82
Aber wer solche relevanten Infos nicht im ersten Post nennt, landet auf meiner Ignore-Liste.
mfg
Anzeige
AW: "XLD"? over & out
12.03.2019 11:03:57
JP
Hallo fennek,
ich möchte dir trotzallerdem für deine Hilfe danken.
Das diese Information von größerer Bedeutung ist, war mir nicht bewusst, da es ja ein altes excel-datenformat zu sein scheint, sprich Abwärtskompatibilität.
Ich habe die Datei auch vom .xld zu einer .xlsx umgewandelt, selber Fehler.
Gruß
JP
AW: "Pf": welcher Inhalt?
12.03.2019 11:31:09
Fennek
AW: "Pf": welcher Inhalt?
12.03.2019 11:48:10
JP
Anbei der komplette Inhalt der Datei:
(Gelb gemarkert sind die auszulesenen Zellen)
Userbild
AW: "Pf": welcher Inhalt? (die II.)
12.03.2019 11:52:26
Fennek
Die Frage war, welchen Inhalt die Variable Pf in der Zeile "f = dir(Pf & "\xl?") hat.
Es sollte der Pfad ohne "\" mit den xld/xlsx Dateien sein.
Wenn der Debugger anspringt, klicke NICHT auf beenden, sondern auf "debugging" und stelle den Mauszeiger über "Pf".
Anzeige
AW: "Pf": welcher Inhalt? (die II.)
12.03.2019 12:09:43
JP
In dem Code war Pt statt Pf angegeben. Durch die Änderung zu

Pf = ThisWorkbook.Path
f = Dir(Pf & "\*.xl*")
Do While Len(f)
habe ich nun den Pfad zum Verzeichnis.
Nächster Schritt im debugger gibt den vorher genannten Fehler.
Hier nochmal der komplette Code:
Sub JP()
Dim WB As Workbook
Dim RNG As Range
Pf = ThisWorkbook.Path
f = Dir(Pf & "\*.xl*")
Do While Len(f)
r = r + 1
Set WB = GetObject(Pf & f)
    Set RNG = WB.Sheets(1).Range("D1, B8, C18:C29")
Cells(r, 1) = RNG.Areas(1)
Cells(r, 2) = RNG.Areas(2)
Cells(r, 3).Resize(, 12) = Application.Transpose(RNG.Areas(3).Value)
WB.Close 0
f = Dir
Loop
End Sub

Anzeige
AW: GetObject
12.03.2019 12:15:34
Fennek
"GetObject" wird genutzt um das Quell-Workbook unsichtbar zu öffnen. Zum debuggen ersetze es durch "set WB = workbooks.Open(Pf & f)"
AW: GetObject
12.03.2019 12:33:36
PeterK
Hallo
GetObject(Pf & f) benutzt einen falschen "Dateinamen", sollte wohl heißen: GetObject(Pf & "\" & f)

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige