Laufzeitmeldung abfangen und durch eigene ersetzen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Laufzeitmeldung abfangen und durch eigene ersetzen
von: Oliver S.
Geschrieben am: 18.04.2005 14:59:18
Hallo an alle Helfenden,
ich hab da mal eine Frage. Ich benutze folgende VBA Anweisung:
Application.VBE.MainWindow.Visible = True
Damit gelange ich in die VBA Umgebung. Nun ist es so, dass ab Excel2002 für diese Anweisung unter Extra - Makro - Sicherheit... in der Registerkarte Vertrauenswürdige Quellen der Punkt
Zugriff auf Visual Basic-Projekt vertrauen
Aktiviert sein muss. Ist das nicht aktiviert, kommt es zu einem Laufzeitfehler. Nun meine Frage, kann man diese Laufzeitfehlermeldung irgend wie abfangen und durch eine eigene MsgBox ersetzen, die dem Benutzer mitteilt, dass diese Einstellung getroffen werden muss, bevor er weiterarbeiten kann? Geht so etwas? Über Tipps wäre ich Euch sehr dankbar.
Vielen Dank schon mal,
Oliver

Bild

Betrifft: AW: Laufzeitmeldung abfangen und durch eigene erse
von: Tobias Marx
Geschrieben am: 18.04.2005 15:02:43
Servus!
Setz ueber den Befehl ein

On Error Resume Next

und unter deine Aufrufzeile

MsgBox ("Stellen sie die Sicherheitsstufe etwas runter... sonst klappt nix!")

Gruss

Tobias
Bild

Betrifft: AW: Laufzeitmeldung abfangen und durch eigene ersetzen
von: Andi
Geschrieben am: 18.04.2005 15:06:02
Hi,
das kann man so machen:

Sub Dein_Makro()
on error goto errorhandler
'hier kommt Dein Code rein
exit sub
errorhandler:
select case Err
case 'hier die Fehlernummer zu Deinem speziellen Laufzeitfehler
MsgBox "Bitte nehmen Sie die notwendigen Einstellungen vor
case else
MsgBox "Es ist ein unerwarteter Fehler aufgetretren
end select
End Sub

Schönen Gruß,
Andi
Bild

Betrifft: AW: Laufzeitmeldung abfangen und durch eigene ersetzen
von: Oliver S.
Geschrieben am: 18.04.2005 15:09:26
Hallo Ihr beiden,
das ging ja schneller als ich einatmen kann. Danke Euch für die Lösungen. Noch einen schönen Tag
Oliver
Bild

Betrifft: Gern geschehen... (ot)
von: Andi
Geschrieben am: 18.04.2005 15:33:34
.
Bild

Betrifft: Doch noch eine Frage zu der Sache!
von: Oliver S.
Geschrieben am: 18.04.2005 18:23:48
Hallo noch mal!
Ich hoffe, Ihr schaut noch mal hier vorbei. Ich benötige nämlich noch mal Hilfe zu dem Abfangen des Laufzeitfehlers. Ich benutze den Code von Andi. Ich möchte nun eine Fehlermeldung ausgeben und dann, dass die Datei ohne zu speichern geschlossen wird. Dazu habe ich in dem Errorhandler folgendes eingetragen:
Exit Sub
errorhandler:
Select Case Err
Case 1004
MsgBox "Sie arbeiten mit einer Excelversion die neuer als Excel 2000 ist. Daher wird das Programm zunächst einmal beendet. Sie müssen Excel erneut mit einer leeren Arbeitsmappe öffnen. Danach gehen Sie in der Menüleiste auf 'Extras - Makro - Sicherheit' und klicken dann auf die Registerkarte 'Vertrauenswürdige Quellen'. Dort suchen Sie den Auswahlpunkt 'Zugriff auf Visual Basic-Projekt vertrauen' und aktivieren diesen. Danach beenden Sie das Fenster und Excel und starten den Beitragsrechner erneut. Der Fehler sollte dann nicht mehr auftreten."
ThisWorkbook.Saved = True
Application.Quit
Case Else
MsgBox "Es ist ein unerwarteter Fehler aufgetretren"
End Select


Allerdings kommt trotz der Anweisung
ThisWorkbook.Saved = True
die Abfrage, ob ich die Datei speichern möchte. Wie kann ich das denn bitte schön unterbinden. Danke Euch schon mal wieder im Voraus für die Hilfe.
Gruß,
Oliver
Bild

Betrifft: AW: Doch noch eine Frage zu der Sache!
von: andre
Geschrieben am: 18.04.2005 20:00:52
Hallo Oliver,
versuch mal das Workbook zu schließen bevor Du Excel mit ..quit verlässt. Ggf. noch mit
ThisWorkbook.Close SaveChanges:=False
Bild

Betrifft: AW: Doch noch eine Frage zu der Sache!
von: Oliver S.
Geschrieben am: 18.04.2005 20:29:59
Nabend Andre,
das war's. Jetzt funktioniert es super. Schön wäre es zwar, wenn man die Auswahl "Zugriff auf visual Basic Projekt vertrauen" automatisch setzen könnte, aber mit dem Beenden, so wie ich es angefragt und DU es mir geraten hast, ist das auch OK.
Wünsche Dir noch einen schönen Abend,
Oliver
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Laufzeitmeldung abfangen und durch eigene ersetzen"