- #1
K
klexy
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 04.05.2002
- Beiträge
- 802
- Reaktionspunkte
- 0
- Ort
- Bayern
Hallo Leute, [/Latein]
Problem 1: Unser Netzwerk/Server hat manchmal Aussetzer, so daß die Fehlermeldung Fesstplatte ist voll kommt, wenn man eine Datei (zwischen)speichern will. Wenn man OK drückt und ein paar Sekunden später nochmal speichert, läuft alles einwandfrei. Dieses Problem liegt außerhalb meiner Macht.
Problem 2: Wenn dieser Speicherbefehl Teil eines passwortgeschützten Makros ist, bleibt dem User nur Beenden wenn die Fehlermeldung auftritt. Bei dem Makro, um das es mir geht, gibt es mehrere Speicherbefehle. Wenn das Makro jetzt irgendwo aussteigt, ist es kompliziert, herauszufinden bis zu welchem Schritt es schon durchgelaufen ist. Noch schwieriger ist es, das alles rückgängig zu machen, bzw. am richtigen Punkt wieder einzusetzen. Dazu muß ich dann immer selber manuell ran. Darauf hab ich aber keinen Bock.
Lösung: Ich hab um jeden Speicherbefehl herum eine Schleife gebastelt, die bei Fehler ein Popup ausgibt und nach Bestätigung des Popups den Speicherbefehl wiederholt.
Alles bestens, aber: Wenn nach dem Fehler wieder bei Anfang_1 angefangen wird aber der Fehler im Netzwerk immer noch andauert, hängt sich das Makro bei ActiveWorkbook.Save auf und ignoriert quasi beim zweiten mal das On Error GoTo Schleife_1.
Was mach ich falsch? Warum wird der Befehl On Error GoTo Schleife_1 beim zweiten Durchlauf ignoriert?
Problem 1: Unser Netzwerk/Server hat manchmal Aussetzer, so daß die Fehlermeldung Fesstplatte ist voll kommt, wenn man eine Datei (zwischen)speichern will. Wenn man OK drückt und ein paar Sekunden später nochmal speichert, läuft alles einwandfrei. Dieses Problem liegt außerhalb meiner Macht.
Problem 2: Wenn dieser Speicherbefehl Teil eines passwortgeschützten Makros ist, bleibt dem User nur Beenden wenn die Fehlermeldung auftritt. Bei dem Makro, um das es mir geht, gibt es mehrere Speicherbefehle. Wenn das Makro jetzt irgendwo aussteigt, ist es kompliziert, herauszufinden bis zu welchem Schritt es schon durchgelaufen ist. Noch schwieriger ist es, das alles rückgängig zu machen, bzw. am richtigen Punkt wieder einzusetzen. Dazu muß ich dann immer selber manuell ran. Darauf hab ich aber keinen Bock.
Lösung: Ich hab um jeden Speicherbefehl herum eine Schleife gebastelt, die bei Fehler ein Popup ausgibt und nach Bestätigung des Popups den Speicherbefehl wiederholt.
Code:
' hier kommt das Makro dahergewackelt...
Dim Mldg, Stil, Titel, Antwort
Anfang_1:
On Error GoTo Schleife_1
ActiveWorkbook.Save
GoTo Hat_gespeichert_1
Schleife_1:
Mldg = & Chr(10) & _
Speicherfehler. Angeblich ist die Festplatte voll. & Chr(10) & _
& Chr(10) & _
bitte eine Weile warten und dann JA drücken.
Stil = vbOKOnly
Titel = Sackzement!
Antwort = MsgBox(Mldg, Stil, Titel)
If Antwort = vbOK Then
GoTo Anfang_1
End If
Hat_gespeichert_1:
' hier geht das Makro dann weiter...
Was mach ich falsch? Warum wird der Befehl On Error GoTo Schleife_1 beim zweiten Durchlauf ignoriert?