Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten aus jedem Tabellenblatt auslesen

Daten aus jedem Tabellenblatt auslesen
03.02.2016 11:17:14
Vicky
Hallo zusammen,
ich habe ein Makro, mit dem ich in einem bestimmten Ordner Daten aus verschiedenen Tabellenblätter auslesen und in eine Liste schreiben möchte. Die Tabellenblätter sind alle gleich aufgebaut, so dass das Makro im Prinzip in jeder Excel-Datei in dem Ordner in jedem Blatt die jeweils gleichen Zellen Auslesen soll. In der Zieltabelle soll dann 1 Blatt = 1 Zeile entsprechen.
Bisher schaut mein Makro so aus - abgewandelt von einem, was ich bisher habe, welches aus einer Excel-Datei immer ein Tabellenblatt mit einem bestimmten Namen ausliest.
Jetzt bekomme ich immer den Fehler "400" und die Daten werden nicht ausgelesen.
Meine VBA-Kenntnisse sind leider nicht so berauschend, dass ich festellen kann, woran das liegt.

Sub DateienLesen()
Dim oMe As Object, i As Integer, sWbName As String, rFound As Range, vWert As Variant, iZeile   _
_
As Integer
Dim oFS As Object, oDatei As Object, sBereich As String
Dim lngZeile As Long
Dim wsTabelle As Worksheet
Set oMe = ThisWorkbook
Const sDateiPfad As String = "S:\Pfad\" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash  _
_
am Ende
lngZeile = 2
Set oFS = CreateObject("Scripting.FileSystemObject")
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
sWbName = oDatei.Name
Workbooks.Open (sDateiPfad & sWbName)
For Each wsTabelle In Workbooks(sWbName).Worksheets(wsTabelle)
oMe.Sheets("Ausland").Cells(lngZeile, 1) = wsTabelle
oMe.Sheets("Ausland").Cells(lngZeile, 2) = Workbooks(sWbName).Sheets(wsTabelle).Range("  _
_
F6").Value
oMe.Sheets("Ausland").Cells(lngZeile, 3) = Workbooks(sWbName).Sheets(wsTabelle).Range("  _
_
D6").Value
oMe.Sheets("Ausland").Cells(lngZeile, 4) = Workbooks(sWbName).Sheets(wsTabelle).Range("  _
_
D7").Value
oMe.Sheets("Ausland").Cells(lngZeile, 5) = Workbooks(sWbName).Sheets(wsTabelle).Range("  _
_
D13").Value
oMe.Sheets("Ausland").Cells(lngZeile, 6) = Workbooks(sWbName).Sheets(wsTabelle).Range("  _
_
E13").Value
oMe.Sheets("Ausland").Cells(lngZeile, 7) = Workbooks(sWbName).Sheets(wsTabelle).Range("  _
_
D11").Value
oMe.Sheets("Ausland").Cells(lngZeile, 8) = Workbooks(sWbName).Sheets(wsTabelle).Range("  _
_
E11").Value
oMe.Sheets("Ausland").Cells(lngZeile, 9) = Workbooks(sWbName).Sheets(wsTabelle).Range("  _
_
D10").Value
oMe.Sheets("Ausland").Cells(lngZeile, 10) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E10").Value
oMe.Sheets("Ausland").Cells(lngZeile, 11) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
D12").Value
oMe.Sheets("Ausland").Cells(lngZeile, 12) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E12").Value
oMe.Sheets("Ausland").Cells(lngZeile, 13) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
L8").Value
oMe.Sheets("Ausland").Cells(lngZeile, 14) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
L10").Value
oMe.Sheets("Ausland").Cells(lngZeile, 15) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
L11").Value
oMe.Sheets("Ausland").Cells(lngZeile, 16) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
L12").Value
oMe.Sheets("Ausland").Cells(lngZeile, 17) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E19").Value
oMe.Sheets("Ausland").Cells(lngZeile, 18) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E20").Value
oMe.Sheets("Ausland").Cells(lngZeile, 19) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E21").Value
oMe.Sheets("Ausland").Cells(lngZeile, 20) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E29").Value
oMe.Sheets("Ausland").Cells(lngZeile, 21) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M19").Value
oMe.Sheets("Ausland").Cells(lngZeile, 22) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M20").Value
oMe.Sheets("Ausland").Cells(lngZeile, 23) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M21").Value
oMe.Sheets("Ausland").Cells(lngZeile, 24) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M29").Value
oMe.Sheets("Ausland").Cells(lngZeile, 25) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E40").Value
oMe.Sheets("Ausland").Cells(lngZeile, 26) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E41").Value
oMe.Sheets("Ausland").Cells(lngZeile, 27) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
F50").Value
oMe.Sheets("Ausland").Cells(lngZeile, 28) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M40").Value
oMe.Sheets("Ausland").Cells(lngZeile, 29) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M41").Value
oMe.Sheets("Ausland").Cells(lngZeile, 30) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M42").Value
oMe.Sheets("Ausland").Cells(lngZeile, 31) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M50").Value
oMe.Sheets("Ausland").Cells(lngZeile, 32) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E59").Value
oMe.Sheets("Ausland").Cells(lngZeile, 33) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E60").Value
oMe.Sheets("Ausland").Cells(lngZeile, 34) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E61").Value
oMe.Sheets("Ausland").Cells(lngZeile, 35) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
F69").Value
oMe.Sheets("Ausland").Cells(lngZeile, 36) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M59").Value
oMe.Sheets("Ausland").Cells(lngZeile, 37) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M60").Value
oMe.Sheets("Ausland").Cells(lngZeile, 38) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M61").Value
oMe.Sheets("Ausland").Cells(lngZeile, 39) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
M69").Value
oMe.Sheets("Ausland").Cells(lngZeile, 40) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
E80").Value
oMe.Sheets("Ausland").Cells(lngZeile, 41) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
G80").Value
oMe.Sheets("Ausland").Cells(lngZeile, 42) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
K80").Value
oMe.Sheets("Ausland").Cells(lngZeile, 43) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
R28").Value
oMe.Sheets("Ausland").Cells(lngZeile, 44) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
R29").Value
oMe.Sheets("Ausland").Cells(lngZeile, 45) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
C29").Value
oMe.Sheets("Ausland").Cells(lngZeile, 46) = Workbooks(sWbName).Sheets(wsTabelle).Range(" _
_
J29").Value
Next
lngZeile = lngZeile + 1
Next
Workbooks(sWbName).Saved = True
Workbooks(sWbName).Close
End Sub

Ich danke euch!
Vicky

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus jedem Tabellenblatt auslesen
03.02.2016 11:27:04
Rudi
Hallo,
das muss so aussehen:
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
sWbName = oDatei.Name
Workbooks.Open (sDateiPfad & sWbName)
For Each wsTabelle In Workbooks(sWbName).Worksheets
oMe.Sheets("Ausland").Cells(lngZeile, 1) = wsTabelle.Name
oMe.Sheets("Ausland").Cells(lngZeile, 2) = wsTabelle.Range("F6").Value
oMe.Sheets("Ausland").Cells(lngZeile, 3) = wsTabelle.Range("D6").Value
oMe.Sheets("Ausland").Cells(lngZeile, 4) = wsTabelle.Range("D7").Value

Gruß
Rudi

Anzeige
Ergänzung
03.02.2016 11:48:56
Rudi
Hallo,
die beiden Next sitzen auch falsch.
Komplettcode:
Sub DateienLesen()
Dim oMe As Object
Dim oFS As Object, oDatei As Object, sBereich As String
Dim lngZeile As Long
Dim wsTabelle As Worksheet
Dim wkb As Workbook
Set oMe = ThisWorkbook
Const sDateiPfad As String = "S:\Pfad\" 'Pfad für zu durchsuchende Excel-Dateien; mit  _
Backslash am Ende
Application.ScreenUpdating = False
lngZeile = 1
Set oFS = CreateObject("Scripting.FileSystemObject")
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
Set wkb = Workbooks.Open(oDatei)
For Each wsTabelle In wkb.Worksheets
lngZeile = lngZeile + 1
With oMe.Sheets("Ausland").Rows(lngZeile)
.Cells(1) = wsTabelle.Name
.Cells(2) = wsTabelle.Range("F6")
.Cells(3) = wsTabelle.Range("D6")
.Cells(4) = wsTabelle.Range("D7")
.Cells(5) = wsTabelle.Range("D13")
.Cells(6) = wsTabelle.Range("E13")
.Cells(7) = wsTabelle.Range("D11")
.Cells(8) = wsTabelle.Range("E11")
.Cells(9) = wsTabelle.Range("D10")
.Cells(10) = wsTabelle.Range("E10")
.Cells(11) = wsTabelle.Range("D12")
.Cells(12) = wsTabelle.Range("E12")
.Cells(13) = wsTabelle.Range("L8")
.Cells(14) = wsTabelle.Range("L10")
.Cells(15) = wsTabelle.Range("L11")
.Cells(16) = wsTabelle.Range("L12 ")
.Cells(17) = wsTabelle.Range("E19")
.Cells(18) = wsTabelle.Range("E20")
.Cells(19) = wsTabelle.Range("E21")
.Cells(20) = wsTabelle.Range("E29")
.Cells(21) = wsTabelle.Range("M19")
.Cells(22) = wsTabelle.Range("M20")
.Cells(23) = wsTabelle.Range("M21")
.Cells(24) = wsTabelle.Range("M29")
.Cells(25) = wsTabelle.Range("E40")
.Cells(26) = wsTabelle.Range("E41")
.Cells(27) = wsTabelle.Range("F50")
.Cells(28) = wsTabelle.Range("M40")
.Cells(29) = wsTabelle.Range("M41")
.Cells(30) = wsTabelle.Range("M42")
.Cells(31) = wsTabelle.Range("M50")
.Cells(32) = wsTabelle.Range("E59")
.Cells(33) = wsTabelle.Range("E60")
.Cells(34) = wsTabelle.Range("E61")
.Cells(35) = wsTabelle.Range("F69")
.Cells(36) = wsTabelle.Range("M59")
.Cells(37) = wsTabelle.Range("M60")
.Cells(38) = wsTabelle.Range("M61")
.Cells(39) = wsTabelle.Range("M69")
.Cells(40) = wsTabelle.Range("E80")
.Cells(41) = wsTabelle.Range("G80")
.Cells(42) = wsTabelle.Range("K80")
.Cells(43) = wsTabelle.Range("R28")
.Cells(44) = wsTabelle.Range("R29")
.Cells(45) = wsTabelle.Range("C29")
.Cells(46) = wsTabelle.Range("J29")
End With
Next wsTabelle
wkb.Close False
Next oDatei
End Sub
Gruß
Rudi

Anzeige
AW: Ergänzung
03.02.2016 12:51:30
Vicky
Funktioniert perfekt, DANKE!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige