ich habe folgendes Problem. Ich habe in einem Ordener knapp 600 Dateien, die alle gleich aufgebaut sind, und aus denen ich jeweils ein Summenprodukt pro Datei generieren muss und dies dem Dateinamen zugeordnet wird. (in der neuen Datei; A2=Dateiname; B2=summenprodukt der Datei)
Für eine reine Summe habe ich im Forum etwas gefunden und zwar folgende Lösung
https://www.herber.de/forum/archiv/864to868/867500_Excel_Dateien_aus_Ordner_auslesen.html
mit meinen Anpassungen sieht der Code dann wie folgt aus.
Option Explicit
Sub Daten_Lesen()
Dim strPath As String, strFile As String, strTabName As String
Dim lngR As Long
strPath = "C:\Users\christina\Desktop\test\" 'Verzeichnis anpassen! (mit \ beenden)
strTabName = "Übertrag" 'Name der Tabellenblätter anpassen! (namen des reiters nicht vba _
Bezeichnung)
strFile = Dir(strPath & "*.xlsx")
lngR = 1
With ThisWorkbook.Sheets("Tabelle1") 'Name der Ausgabetabelle anpassen!
.Range("A2:B" & Rows.Count).ClearContents
Do Until strFile = ""
lngR = lngR + 1
.Cells(lngR, 1) = strFile
.Cells(lngR, 2).Formula = "=SUM('" & strPath & "[" & strFile & "]" & _
strTabName & "'!$c$3:$c$73)"
.Cells(lngR, 2) = .Cells(lngR, 2).Value
strFile = Dir
Loop
End With
Tabelle1.UsedRange.Replace ".xlsx", "", xlPart
End Sub
Das funktioniert auch super für die reine Summe nur leider nicht für ein Summenprodukt. ich hatte nun folgende anpassung ausprobiert, das hat nur leider nicht funktioniert. Ich bin ziemlich neu was VBA angeht und leider überfragt.
Do Until strFile = ""
lngR = lngR + 1
.Cells(lngR, 1) = strFile
.Cells(lngR, 2).Formula = "=SUMPRODUCT('" & strPath & "[" & strFile & "]" & _
strTabName & "'!$c$3:$c$73;$b$3:$b$73)"
.Cells(lngR, 2) = .Cells(lngR, 2).Value
strFile = Dir
Als reine Excel Formel würde es wie folgt aussehen =summenprodukt(b3:b73;c3:c73)
Vielleicht kann mir ja jemand helfen.
LG Christina