Hallo,
ich habe ein Problem mit der on error goto Anweisung in VBA. Ich brauche ein Programm, dass ueber eine Schleife z.B. die Arbeitsmappen 1.xls - 10.xls oeffnet und jeweils bestimmte Anweisungen ausfuehrt. Falls allerdings eine dieser Arbeitsmappen nicht existiert, sollen andere Anweisungen ausgefuehrt werden. Ich habe versucht, das mit einer on error goto label Anweisung zu machen, leider funktioniert das aber immer nur einmal in einer Schleife, ab dem zweiten Durchlauf erhalte ich wieder eine Fehlermeldung, falls eine Arbeitsmappe nicht existiert…
Vielen Dank fuer die Hilfe,
axxel
Hallo,
schreib mal in die Fehlerroutine:
Err.Number = 0
On Error GoTo 0
Den On Error Goto … natürlich in die Schleife. 
Aaaaber, gibt’s da nichts Besseres als ausgerechnet On Error? Kannst Du nicht vorher prüfen und den Fehler vermeiden? Bei ‚Goto‘ bekomme ich immer Gänsehaut.
Gruß, Rainer
Hallo Rainer,
schreib mal in die Fehlerroutine:
Err.Number = 0
On Error GoTo 0
hat leider immernoch nicht funktioniert.
Aaaaber, gibt’s da nichts Besseres als ausgerechnet On Error?
Kannst Du nicht vorher prüfen und den Fehler vermeiden? Bei
Das waere natuerlich noch viel besser, leider weiss ich keine Moeglichkeit, das zu pruefen, wie geht sowas?
Gruss,
Axxel
Hallo,
schreib mal in die Fehlerroutine:
Err.Number = 0
On Error GoTo 0
hat leider immernoch nicht funktioniert.
hmmm. Dann müssen wir uns das mal genauer ansehen.
Aaaaber, gibt’s da nichts Besseres als ausgerechnet On Error?
Kannst Du nicht vorher prüfen und den Fehler vermeiden? Bei
Das waere natuerlich noch viel besser, leider weiss ich keine
Moeglichkeit, das zu pruefen, wie geht sowas?
Poste doch mal den relevanten Code. Reinhard weiß sicher, wie das ohne ‚On Error‘ geht.
Gruß, Rainer
Hallo,
Poste doch mal den relevanten Code. Reinhard weiß sicher, wie
das ohne ‚On Error‘ geht.
For YearRef = 4 To 6
For MonthRef = 1 To 12
fileref = "C:\Documents and Settings\rix\Desktop\sek\200" & YearRef & "\" & MonthRef & ".xls"
On Error GoTo DataMiss
Workbooks.Open FileName:=fileref
'jetzt folgen weitere Anweisungen...
continue:
next MonthRef
next YearRef
exit sub
DataMiss:
FileExist = False
Err.Number = 0
On Error GoTo 0
'jetzt folgen entsprechende Anweisungen
GoTo Continue
end sub
Wenn Monthref groesser als 2 wird und die Datei nicht existiert, gibt es eine Fehlermeldung an der Stelle workbooks.open …
Gruesse und tausend Dank,
axxel
Hallo,
For YearRef = 4 To 6
For MonthRef = 1 To 12
fileref = "C:\Documents and Settings\rix\Desktop\sek\200" &
YearRef & "\" & MonthRef & ".xls"
On Error GoTo DataMiss
Workbooks.Open FileName:=fileref
ahhhh, ein Pfad und ein ‚Open‘, dann kann ich ohne VBA-Kenntnisse helfen. 
In die Deklaration des Projekts:
Private Declare Function PathFileExists Lib "shlwapi.dll" \_
Alias "PathFileExistsA" (ByVal pszPath As String) As Long
und dann kannst Du mit:
If PathFileExists(fileref) Then
Workbooks.Open FileName:=fileref
Else
'Code, wenn die datei nicht existiert
End If
den On Error weglassen. 
Ohne GoTo und ohne Fehler finde ich’s schöner.
Gruß, Rainer
Hallo,
ganz vielen Dank, funktioniert ausgezeichnet und ist natuerlich deutlich schoener und sauberer !
Gruesse,
Axxel