ich hatte mir vor zwei Wochen einige Anregungen zu folgendem Thema gesucht:
Ich habe eine Zieldatei, in der ich im Blatt Werte in Spalte B den auszulesenden Tabellennamen und in Spalte C die auszulesende Zelle definiere. Ziel ist es einige hundert Dateien, die im Ordner (ist in der Zieldatei/Ordner Werte B3 gesetzt) ausgelesen werden und dann in den Ordner der Zieldatei "gelesen" ab der Zeile 3 eingefügt werden. Vielen Dank erst mal an Robert und JoWe für Ihre Hinweise und Empfehlungen...
Darauf habe ich mir folgendes Makro gebastelt:
Sub test()
Dim Datei As String, Pfad As String
Dim objDatei As Workbook
Dim QUTB, QUCell, myValue, myWB As String
Dim QZ, ZZ, ZS As Integer
' Application.ScreenUpdating = False
ChDir Sheets("Werte").Range("b3")
Pfad = Sheets("Werte").Range("b3")
Datei = Dir$(Pfad & "\*.xls")
myWB = ThisWorkbook.Name
QZ = 8 'erste Zeile der Quelldaten für Ordner Werte bestimmen
ZZ = 3 'erste Zielzeile bestimmen
ZS = 1 'erste Zielspalte bestimmen
Do While Datei ""
Set objDatei = Workbooks.Open(Datei, , True)
QUTB = Workbooks(myWB).Sheets("Werte").Cells(QZ, 2).Value
QUCell = Workbooks(myWB).Sheets("Werte").Cells(QZ, 3).Value
Do While QUTB ""
myValue = objDatei.Sheets(QUTB).Range(QUCell).Value
Workbooks(myWB).Sheets("gelesen").Cells(ZZ, ZS) = myValue
QZ = QZ + 1 'Zähler Quelldaten auf nächster Zeile setzen
ZS = ZS + 1 'Zähler Zielspalte auf nächste Spalte setzen
Loop
objDatei.Close False
Datei = Dir$()
ZZ = ZZ + 1 'Zähler der Zielzeile auf nächste Zeile setzen
Loop
' Application.ScreenUpdating = True
End Sub
Jetzt wird mir in der Zeile:
Workbooks(myWB).Sheets("gelesen").Cells(ZZ, ZS) = myValue
ein LZF 1004 - Anwendungs- oder objektdefinierter Fehler ausgeworfen.
Ich habe leider nicht soviel VBA Erfahrung, dass ich das Problem jetzt alleine lösen kann. Könnt Ihr sehen, was da klemmt?
Ich danke Euch schon einmal für Eure Mühe.
Danke
Ron