Abfrage für gleiche Anweisungen (DIR) verkürzen

Bild

Betrifft: Abfrage für gleiche Anweisungen (DIR) verkürzen
von: Julian
Geschrieben am: 03.12.2015 09:11:03

Guten Morgen zusammen,
ich hoffe, dass ich den Betreff gut genug gewählt habe. Hier mein Anliegen:
Ich möchte aus unterschiedlichen Dateien in eine Bestimmte Zelle der Hauptarbeitsblattes Summen importieren. Da sich die unterschiedlichen Dateien (Monate) im Laufe des Jahres erst anhäufen, meckert Excel immer und findet die fehlenden Dateien nicht. Wie kann ich dies am besten lösen? Heute sieht meine Lösung ganz unkonventionell wie folgt aus:
If Dir("PFAD\[2015_01.xlsx]") = "" Then
Else
Range("E45").FormulaR1C1 = "=SUM('PFAD\[2015_01.xlsx]Tabelle1'!C11)"
End If

Und dies habe ich jetzt für alle Monate kopiert. Ziemlich doof. Wie kann ich es besser lösen?
Danke + Gruß

Bild

Betrifft: Abfrage für gleiche Anweisungen (DIR) verkürzen
von: Rudi Maintaire
Geschrieben am: 03.12.2015 09:32:29
Hallo,
per Schleife

for i= 1 to 12
If Dir("PFAD\[2015_" &Format(i,"00") &".xlsx]") <> "" Then
 Range("E45").FormulaR1C1 = "=SUM('PFAD\[2015_01.xlsx]Tabelle1'!C11)"
End If
next i
ggf. Range("E45") anhand von i ändern.
Gruß
Rudi

Bild

Betrifft: AW: Abfrage für gleiche Anweisungen (DIR) verkürzen
von: Julian
Geschrieben am: 03.12.2015 10:24:06
Hallo, damit komme ich leider nicht ganz zurecht. Ich habe die Datei mal von allen Zahlen bereinigt und hochgeladen.
https://www.herber.de/bbs/user/101985.xlsm
Als Beispiel habe ich schonmal die ersten vier Monate angelegt. So wie es jetzt ist, rechnet er gar nicht. Wenn ich die Abfrage für jeden Block einzeln schreibe, ohne die Schleife, dann rechnet er erst ab April. (Der März ist derzeit nicht vorhanden, da die Datei defekt ist.)

Bild

Betrifft: Abfrage für gleiche Anweisungen (DIR) verkürzen
von: Rudi Maintaire
Geschrieben am: 03.12.2015 12:42:55
Hallo,

Sub Test001()
Dim i As Integer, j As Integer, Pfad As String, Datei As String
    With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    End With
    On Error Resume Next
    Pfad = "Z:\Management-Cockpit\DB 2015\"
'   (START) Abfrage der Monate 1-12 als Datei.
    For i = 1 To 12
    Datei = Dir(Pfad & "2015_" & Format(i, "00") & ".xlsx")
    If Datei <> "" Then
        For j = 5 To 12
          Cells(i * 2 + 39, j).FormulaR1C1 = "=SUM('" & Pfad & "\[" _
          & Datei & "]Tabelle1'!C" & j * 2 + 1 & ")"
        Next j
      End If
    Next i
    With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    End With
    
End Sub
Gruß
Rudi

Bild

Betrifft: AW: Abfrage für gleiche Anweisungen (DIR) verkürzen
von: Julian
Geschrieben am: 03.12.2015 12:48:54
Herzlichen Dank für deine Bemühung Rudi. Das klappt wunderbar.

Cells(i * 2 + 39, j).FormulaR1C1 = "=SUM('" & Pfad & "\[" _
Hier habe ich jedoch das \ noch entfernt, da es bereits im Pfad gespeichert ist.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Abfrage für gleiche Anweisungen (DIR) verkürzen"