Hallo Experten,
ich habe ein Liste mit Exceldateien
file1.xls
file2.xls
file4.xls
file8.xls
Leider weiß ich nicht welche Dateien existieren. (Ich weiß es schon, aber das Makro nicht
). Es ist gewollt, dass gewisse files nicht existieren.
Ich würde gerne die Fiels als Schleife einlesen:
For i = 1 to 9
strFileNr= Cstr(i)
Workbooks.Open Filename:=ThisWorkbook.Path & "\file" & strFileNr & ".xls"
Do something useless
ActiveWindow.Close
next i
leider gibt es eine Fehlermeldung, wenn file# nicht existiert.
Kann man das irgendwie umgehen?
Wenn das file nicht existiert muss nichts gemacht werden.
Danke
Winter
P.S.
so als zusatzfrage (ist nicht der Fall), aber rein als akademische Frage. wenn Die Fileendung 001 002 … 023 … 123 wäre, gäbe es eine elgantere Lösung als
for i = 1 to 123
strNum = "000" & Csrt(i)
strNum = right(strnum,3)
Do useless stuff
next i
Hi Winter,
file1.xls
file2.xls
file4.xls
file8.xls
Leider weiß ich nicht welche Dateien existieren. (Ich weiß es
schon, aber das Makro nicht
). Es ist gewollt, dass
gewisse files nicht existieren.
leider gibt es eine Fehlermeldung, wenn file# nicht existiert.
Kann man das irgendwie umgehen?
Wenn das file nicht existiert muss nichts gemacht werden.
Option Explicit
'
Sub tt()
Dim i, PD
For i = 1 To 9
PD = ThisWorkbook.Path & "\file" & CStr(i) & ".xls"
If Len(Dir(PD)) \> 0 Then Workbooks.Open Filename:=PD
'Do something useless
ActiveWindow.Close
Next i
End Sub
P.S.
so als zusatzfrage (ist nicht der Fall), aber rein als
akademische Frage. wenn Die Fileendung 001 002 … 023 … 123
wäre, gäbe es eine elgantere Lösung als
for i = 1 to 123
strNum = right("000" & Cstr(i),3)
'Do useless stuff
next i
Gruß
Reinhard
Hi Winter,
Option Explicit
’
Sub tt()
Dim i, PD
For i = 1 To 9
PD = ThisWorkbook.Path & „\file“ & CStr(i) & „.xls“
If Len(Dir(PD)) > 0 Then Workbooks.Open Filename:=PD
'Do something useless
ActiveWindow.Close
Next i
End Sub
Danke für Deine Hilfe.
und immer mit dem erhoben Zeigefinger zum besseren programmieren (Option Explicit) 
P.S.
so als zusatzfrage (ist nicht der Fall)
for i = 1 to 123
strNum = right(„000“ & Cstr(i),3)
'Do useless stuff
next i
Wusste doch, dass ich zu kompliziert denke.
Danke
OT Option Explicit
und immer mit dem erhoben Zeigefinger zum besseren
programmieren (Option Explicit) 
Hallo Winterknight,
ich habe mich monatelang dagegen gewehrt als mir nette Leute dieses mistige Option Explicit schmackhaft machen wollten.
Jetzt will ich es nicht mehr wissen.
Das wirst du auch durchmachen, irgendwann
)
Gruß
Reinhard
Servus Reinhard,
ich finde es nett. („mit erhobenen zeigefinger“)
wirklich
in Programmmiersprachen wird es auch verwendet.
und wie Du siehst bin ich lernfähig 
und da es letzteZeile und lettzeZeile unterscheidet spart man sich einige Fehler.
Gruß Winter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]