Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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!

382 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige