Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fehlermeldung deaktivieren

Fehlermeldung deaktivieren
08.03.2013 15:51:17
Stefan
Hallo liebe Experten,
im nachfolgenden makro code kommt immer eine Fehlermeldung, die ich deaktivieren möchte. Dies _
gelingt mir aber nicht, wenn ich lediglich bei Application.DisplayAlerts false eintippe.

Sub Einfaches_Makro_zum_Ersetzen_und_Updaten()
Application.DisplayAlerts = False
ThisWorkbook.Activate
Sheets("Data").Select
Range("A1:HH7").Replace _
What:="C00639", _
Replacement:="C11698", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
On Error GoTo DispFehler
Application.ExecuteExcel4Macro "FctUpdateAuto()"
Application.DisplayAlerts = True
DispFehler: MsgBox "Hurra"
End Sub

Ziel wäres also, dass keine Fehlermeldung erscheint.
Lasst mich bitte wissen, was ich machen könnte.
Vielen Dank,
Stefan

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung deaktivieren
08.03.2013 16:00:21
Daniel
Hi
Application.DisplayAlerts = False schaltet keine Fehlermeldungen aus !
Application.DisplayAlerts sind Rückfragen des Systems, wenn es vom Anwender eine Entscheidung erwartet, bspw die Rückfrage vor dem Löschen eines Tabellenblatts oder die Frage nach dem Speichern beim Schießen einer Datei mit ungespeicherten Änderungen.
diese Rückfragen lassen sich mit Application.DisplayAlerts = False unterdrücken, in diesem Fall wird dann die Standardanwort verwendet (also die, die bei der normalen Rückfrage schon aktiv ist).
zum Unterrücken einer echten Fehlermeldung brauchst du:
On Error Resume Next - dies bewirkt, daß bei einem Fehler einfach mit dem nächsten Befehl weitergemacht wird, oder
On Error Goto Sprungmarke - dies bewirkt, daß bei einem Fehler zu dieser Sprungmakre gesprungen und der dort folgende Code ausgeführt wird.
das diese Befehle mit der entsprechenden Sorgfalt eingesetzt werden, versteht sich fast von selbst.
Gruß Daniel

Anzeige
On Error GoTo DispFehler (hat er doch drin !)
08.03.2013 16:07:39
Matthias
Hallo
Ich würde es nur an den Anfang der Prozedur setzen
at Stefan
Option Explicit
Sub test()
On Error GoTo DispFehler
Application.DisplayAlerts = False
MsgBox 3 / "R" 'löst einen Fehler aus!
'wird nur angezeigt, wenn kein Fehler entsteht!
MsgBox "DisplayAlerts=Aus"
DispFehler:
MsgBox "Hurra"
Application.DisplayAlerts = True
MsgBox "DisplayAlerts = " & Application.DisplayAlerts
End Sub


Gruß Matthias

Anzeige
AW: On Error GoTo DispFehler (hat er doch drin !)
08.03.2013 16:11:20
Daniel
Hi
nicht unbedingt.
ich würde das On Error... immer nur direkt vor die Funktion oder den Befehl setzen, welche den Fehler auslösen darf und danach sofort wieder mit On Error Goto 0 in den normalen Modus wechseln.
Gruß Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Fehlermeldungen in Excel VBA deaktivieren


Schritt-für-Schritt-Anleitung

Um Fehlermeldungen in Excel VBA zu deaktivieren, kannst du die Anweisung On Error Resume Next verwenden. Diese Anweisung sorgt dafür, dass bei einem Fehler der nächste Befehl ausgeführt wird, ohne dass eine Fehlermeldung angezeigt wird. Hier ist ein einfaches Beispiel:

Sub FehlermeldungDeaktivieren()
    On Error Resume Next  ' Fehler ignorieren
    ' Beispielcode, der einen Fehler auslösen könnte
    MsgBox 3 / 0  ' Division durch Null führt zu einem Fehler
    On Error GoTo 0  ' Fehlerbehandlung zurücksetzen
End Sub

In diesem Beispiel wird die Fehlermeldung bei der Division durch Null ignoriert. Achte darauf, dass du On Error GoTo 0 verwendest, um die Fehlerbehandlung wieder zu aktivieren, sobald der kritische Codeblock abgeschlossen ist.


Häufige Fehler und Lösungen

  • Fehlermeldung bleibt trotz On Error Resume Next sichtbar: Stelle sicher, dass du die Anweisung am Anfang des Makros oder direkt vor dem fehlerauslösenden Befehl platzierst.

  • Verwendung von Application.DisplayAlerts: Diese Anweisung unterdrückt keine echten Fehlermeldungen, sondern nur Rückfragen des Systems. Dabei handelt es sich nicht um Fehlermeldungen im klassischen Sinne.


Alternative Methoden

Es gibt mehrere Möglichkeiten, mit Fehlern in VBA umzugehen:

  1. On Error Goto: Mit dieser Methode kannst du zu einem bestimmten Punkt im Code springen, wenn ein Fehler auftritt. Beispiel:

    Sub FehlerMitSprungmarke()
        On Error GoTo Fehlerbehandlung
        ' Code, der möglicherweise einen Fehler auslöst
        MsgBox 3 / 0
        Exit Sub
    Fehlerbehandlung:
        MsgBox "Ein Fehler ist aufgetreten."
    End Sub
  2. Fehlerprotokollierung: Du kannst auch Fehler protokollieren, anstatt sie einfach zu ignorieren. Dies ist hilfreich, um später die Ursachen für Fehler zu analysieren.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du mit Fehlermeldungen in Excel VBA umgehen kannst:

  • Einfaches Beispiel:
Sub BeispielOhneFehler()
    On Error Resume Next
    ' Beispielcode
    Dim x As Integer
    x = 1 / 0  ' Fehler
    MsgBox "Der Wert von x ist: " & x
    On Error GoTo 0
End Sub
  • Beispiel mit Rücksprung:
Sub BeispielMitRücksprung()
    On Error GoTo Fehler
    ' Fehlerhafter Code
    MsgBox 1 / 0  ' Fehler
    Exit Sub
Fehler:
    MsgBox "Fehler aufgetreten: " & Err.Description
End Sub

Tipps für Profis

  • Verwende On Error Resume Next mit Bedacht. Es ist wichtig, dass du den Überblick über den Code behältst, da Fehler unentdeckt bleiben können.
  • Setze On Error Goto 0 sofort nach dem fehleranfälligen Code, um sicherzustellen, dass du nicht unbeabsichtigt Fehler in anderen Teilen deines Codes ignorierst.
  • Nutze die Möglichkeit, Fehlermeldungen in einer Logdatei zu protokollieren, um die Wartbarkeit deines Codes zu erhöhen.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Application.DisplayAlerts und On Error Resume Next?
Application.DisplayAlerts unterdrückt Systemrückfragen, während On Error Resume Next Fehler im Code ignoriert.

2. Wie kann ich sicherstellen, dass Fehler richtig behandelt werden?
Setze On Error Goto für spezifische Fehlerbehandlungen und protokolliere Fehler, um ein besseres Verständnis für Probleme im Code zu bekommen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige