Ich möchte die Zelleninhalte verschiedener Exceldateien in einer Hauptexcel zusammenfassen.
Jede menge in einem "file" ist einer pos zugeordnet.
Im Besagter Hauptexcel möchte ich oben alle "file" im Ordner nebeinander aufgelistet haben und darunter die Werte passend zu den Positionen die in der Hauptexcel in der Spalte ganz links aufgereiht sind.
Der Code funktioniert jedoch nur, wenn die "file" geöffnet sind sonst gibt VBA die fehlermeldung: Index außerhalb des gültigen Bereichs aus.
Kann mit jemand einen Eleganten und Schnellen Lösungsvorschlag geben ohne alle Files öffnen zu müssen?
Code:
Sub DatenEinlesen()
Dim Dateiname As String, i As Integer
Dim pos As String, menge As Integer
Dim a As Integer
Dim such As Integer
Dim zeile As Integer
Range("AN2:XFD1413") = ""
Dateiname = Dir$("C:\Users\Name\Desktop\Neuer Ordner\*file*")
Do While Dateiname ""
Range("AN9").Offset(0, i) = Dateiname
For a = 36 To 55
pos = Workbooks(Dateiname).Worksheets("Sheet1").Cells(a, 2)
menge = Workbooks(Dateiname).Worksheets("Sheet1").Cells(a, 23)
Workbooks("Hauptexcel.xlsm").Activate
If Not pos = "" Then
For such = 10 To 1413
If Cells(such, 3).Value = pos Then
zeile = Cells(such, 3).Row
Range("AN9").Offset(zeile - 9, i) = menge
End If
Next such
End If
Next a
i = i + 2
Dateiname = Dir$()
Loop
End Sub