Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Bei Fehler trotzdem weitermachen..

VBA: Bei Fehler trotzdem weitermachen..
13.03.2014 14:04:55
Nik
Hallo zusammen...
ich lasse in einer Pivottabelle Filter durch Variablen setzen. Dafür wird ebenfalls mittels Variable die Haken alter Filtersetzungen deaktiviert.
With Worksheets("Market Share Template").PivotTables("PivotTable2").PivotFields("Reportingperiode")
.PivotItems("(blank)").Visible = True
.PivotItems(b63).Visible = False
.PivotItems(b64).Visible = False
.PivotItems(b65).Visible = False
Unter Variable b65 ist allerdings bereits der Monat März berücksichtigt, der noch nicht in der Datenbasis ist. Also kommt ein Fehler, da der Hacken "März" in der Pivot nicht hinausgenommen/ deaktiviert werden kann.
Kann man dem Code irgendwie sagen, dass er trotzdem weiter machen soll auch wenn er den Filtereintrag gar nicht findet?
Vielen lieben Dank für Eure Tips und Hilfe :-)
Gruss
Nik

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: Bei Fehler trotzdem weitermachen..
13.03.2014 14:13:14
Martin
Hallo Nik,
wenn Fehler ignoriert werden sollen, verwende zuvor folgende Zeile:
On Error Resume Next
Ich empfehle dir aber das Ignorieren von Fehlern hinterher wieder zu deaktivieren:
On Error GoTo 0
Viele Grüße
Martin

Anzeige
AW: VBA: Bei Fehler trotzdem weitermachen..
13.03.2014 14:25:57
Nik
Hey Martin..
SUPER, funktioniert! :-) Hatte jetzt schon Angst das ich da mordsmässig den Code anpassen muss, aber das ist ja nun eine Luxuslösung.. :-) Du hast meinen Hintern gerettet!
Vielen Dank und einen schönen Nachmittag!
Gruss
Nik

AW: VBA: Bei Fehler trotzdem weitermachen..
13.03.2014 14:27:04
EtoPHG
Hallo Nik,
Einfach ohne Fehlerprüfung weitermachen ist bad-programming-style :-(
Schau lieber mal in deinen alten Thread!
Gruess Hansueli
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA: Bei Fehler trotzdem weitermachen


Schritt-für-Schritt-Anleitung

Wenn Du in Excel VBA einen Fehler abfangen und trotzdem weitermachen möchtest, kannst Du dies mit der On Error-Anweisung tun. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge den folgenden Code in dein Modul ein:

    Sub Beispiel()
       On Error Resume Next
       ' Dein Code hier, z.B.:
       With Worksheets("Market Share Template").PivotTables("PivotTable2").PivotFields("Reportingperiode")
           .PivotItems("(blank)").Visible = True
           .PivotItems("b63").Visible = False
           .PivotItems("b64").Visible = False
           .PivotItems("b65").Visible = False
       End With
       On Error GoTo 0 ' Fehlerbehandlung zurücksetzen
    End Sub
  3. Der Code setzt die Fehlerbehandlung aktiv, sodass Excel Fehler ignoriert und der Code trotzdem weiter ausgeführt wird.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die bei der Verwendung von On Error Resume Next auftreten können, sowie deren Lösungen:

  • Problem: Der Code läuft, aber Du bekommst unerwartete Ergebnisse.

    • Lösung: Stelle sicher, dass Du On Error GoTo 0 am Ende der Prozedur verwendest, um die Fehlerbehandlung zurückzusetzen.
  • Problem: Es treten Fehler auf, die Du nicht ignorieren möchtest.

    • Lösung: Verwende spezifische Fehlerbehandlungsroutinen, anstatt alle Fehler zu ignorieren. Zum Beispiel:
    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    
    Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

Alternative Methoden

Zusätzlich zur Verwendung von On Error Resume Next gibt es andere Methoden, um mit Fehlern in VBA umzugehen:

  • Fehlervorbeugung: Stelle sicher, dass die Elemente, die Du ansprechen möchtest, tatsächlich existieren. Verwende eine If-Bedingung:

    If Not IsError(Application.Match("b65", Worksheets("Market Share Template").PivotTables("PivotTable2").PivotFields("Reportingperiode").PivotItems, 0)) Then
       .PivotItems("b65").Visible = False
    End If
  • Fehlerprotokollierung: Du kannst Fehler auch in einer Protokolldatei speichern, um sie später zu analysieren.


Praktische Beispiele

Hier sind einige praktische Beispiele, die zeigen, wie Du mit Fehlern in VBA umgehen kannst:

  1. Beispiel mit Pivot-Tabellen:

    Sub PivotFehlerBehandlung()
       On Error Resume Next
       With Worksheets("Market Share Template").PivotTables("PivotTable2").PivotFields("Reportingperiode")
           .PivotItems("(blank)").Visible = True
           ' Weitere PivotItems hier
       End With
       On Error GoTo 0
    End Sub
  2. Beispiel mit Datenbankabfragen:

    Sub DatenbankAbfrage()
       On Error Resume Next
       ' DB-Abfrage hier
       On Error GoTo 0
    End Sub

Tipps für Profis

  • Verwende immer eine spezifische Fehlerbehandlung, anstatt Fehler pauschal zu ignorieren.
  • Halte deinen Code so einfach wie möglich, um Fehlerquellen zu minimieren.
  • Teste deinen Code gründlich, um sicherzustellen, dass keine unerwarteten Fehler auftreten.

FAQ: Häufige Fragen

1. Frage: Was passiert, wenn ich On Error Resume Next benutze? Antwort: Der Code wird weiterhin ausgeführt, auch wenn ein Fehler auftritt. Dies kann jedoch dazu führen, dass Du wichtige Fehler übersiehst.

2. Frage: Wie kann ich sicherstellen, dass ein Fehler nicht ignoriert wird? Antwort: Verwende On Error GoTo mit einer spezifischen Fehlerbehandlungsroutine, um den Fehler gezielt zu behandeln.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige