Datenschutzerklärung


Direktnachricht



Ihre Software
Details
Excel/VBA
Add-Ins
Excel/VBA

Excel-Beispiele:
Erklärungen, Formeln, VBA-Code und mehr

Hinweise zu den Beispielen finden Sie hier: Beispiele


Kategorie: Beispiel > Excel > VBA > Abfragen (3)

Fehler abfangen und behandeln

(Tipp 8) Beispieldatei Nachricht zum Beitrag an Autor Nach oben

Wie kann ich eine VBA-Fehlermeldung durch eine eigene ersetzen?

Beispiel 1:

Manchmal ist bei Eingaben wichtig, dass es sich wirklich um eine Zahl handelt. Deshalb wird in diesem Beispiel mittels einer Schleife solange abgefragt, bis wirklich eine Zahl eingegeben wurde:

Sub Fehlermakro() Dim varI varI = "" Do While Not IsNumeric(varI) varI = InputBox("Bitte geben Sie eine Zahl ein:", "Zahl eingeben") Loop MsgBox varI End Sub

Beispiel 2:

Eingabeaufforderung: da intI als Zahl deklariert ist, dürfen auch nur Zahlen eingegeben werden. Gibt man einen Text ein, tritt der Fehler 13 auf und es wird zur Sprungmarke Fehler: gesprungen.

Wird korrekt eine Zahl eingegeben, erscheint die Zahl als Meldung und das Makro wird verlassen.

Sub Fehlermakro1() Dim intI As Integer On Error GoTo Fehler intI = InputBox("Bitte geben Sie eine Zahl ein:", "Zahl eingeben") MsgBox intI Exit Sub 'Fehlerbehandlung: Fehler: 'Wenn der Fehler 13 aufgetreten ist ... If Err.Number = 13 Then '... eine Meldung bringen ... MsgBox "Sie haben keine gültige Zahl eingegeben.", vbOKOnly + vbExclamation, "Fehler!" 'bei einem anderen Fehler eine Meldung bringen Else MsgBox "Ein unerwarteter Fehler ist aufgetreten. Das Makro wird beendet.", vbOKOnly + vbCritical, "Unerwarteter Fehler" End If Err.Clear End Sub

Rückgabewert aus MsgBox

(Tipp 9) Nachricht zum Beitrag an Autor Nach oben

Wie kann ich abfragen, welche Schaltfläche in einer MsgBox gewählt wurde?

Bemerkungen:

Soll die MsgBox einen Wert zurückgeben, schreibt man die Argumente hinter MsgBox in Klammern, sonst nicht.

Die If-Abfrage ist nur zur besseren Übersichtlichkeit untereinander geschrieben, sie kann auch einfacher geschrieben werden:
If ... Then ... Else

Sub Meldung() Dim intFrage As Integer intFrage = MsgBox("Bitte eine Schaltfläche wählen.", vbYesNo + vbExclamation, "Schaltfläche") If intFrage = vbYes Then MsgBox "Sie haben 'Ja' gewählt.", vbOKOnly + vbInformation, "Ja" Else MsgBox "Sie haben 'Nein' gewählt.", vbOKOnly + vbInformation, "Nein" End If End Sub

Per Makro Vorlagenverzeichnis abfragen

(Tipp 10) Nachricht zum Beitrag an Autor Nach oben

Wie kann ich abfragen, in welchem Verzeichnis sich das Vorlagenverzeichnis von Microsoft Office befindet?

Das Vorlagenverzeichnis kann mit folgendem Code abgefragt werden:

Sub VorlagenVerzeichnis() MsgBox Application.TemplatesPath End Sub