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

Forumthread: Cells.Find Fehlermeldung abfangen

Cells.Find Fehlermeldung abfangen
10.01.2007 16:47:36
stormy_weathers
Hallo Spezialisten,
ich hänge mal wieder an einer "Kleinigkeit":
Über ein VBA-Programm lese ich aus einer Textdatei Stückzahlen ein. Dabei suche ich einen Begriff innerhalb der Datei und lese mit eine Offset die Spalte daneben aus. Am Anfang des Jahres fehlt mir aber der Suchbegriff (da es hierfür noch keine Stückzahlen gibt) und ich möchte, dass mein Programm danach an der Stelle weitermacht wo der "Fehler" aufgetreten ist.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cells.Find Fehlermeldung abfangen
10.01.2007 16:48:36
stormy_weathers
Hallo Spezialisten,
ich hänge mal wieder an einer "Kleinigkeit":
Über ein VBA-Programm lese ich aus einer Textdatei Stückzahlen ein. Dabei suche ich einen Begriff innerhalb der Datei und lese mit eine Offset die Spalte daneben aus. Am Anfang des Jahres fehlt mir aber der Suchbegriff (da es hierfür noch keine Stückzahlen gibt) und ich möchte, dass mein Programm danach an der Stelle weitermacht wo der "Fehler" aufgetreten ist.
Danke im Voraus für die Unterstützung!!!
Grüße
Anzeige
AW: Cells.Find Fehlermeldung abfangen
10.01.2007 18:21:38
Jan
On Error resume next
mfg Jan
AW: Cells.Find Fehlermeldung abfangen
10.01.2007 21:01:55
stormy_weathers
Super,
Danke, das wars!
AW: Cells.Find Fehlermeldung abfangen
11.01.2007 01:10:45
Daniel
oder mit
if worksheetfunction.countif(cells,"suchbegriff") > 0 then Cells.find...
vorher abfragen, ob der Wert vorhanden ist. Damit entsteht erst gar kein Fehler Gruß, Daniel
Anzeige
AW: Cells.Find Fehlermeldung abfangen
11.01.2007 09:45:10
stormy_weathers
Die Lösung ist natürlich auch nicht schlecht!!
Danke (nochmals) für die Hinweise!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Cells.Find Fehlermeldung abfangen in VBA


Schritt-für-Schritt-Anleitung

Um eine Fehlermeldung bei der Verwendung von .Cells.Find in VBA abzufangen, kannst du folgende Schritte befolgen:

  1. Error Handling aktivieren: Füge am Anfang deines Codes die Zeile On Error Resume Next ein. Dies ermöglicht es deinem VBA-Programm, bei einem Fehler nicht abzubrechen, sondern fortzufahren.

    On Error Resume Next
  2. Find-Funktion verwenden: Nutze die .Cells.Find Methode in deinem Code, um nach dem gewünschten Begriff zu suchen.

    Dim gesuchterWert As Range
    Set gesuchterWert = Cells.Find("Suchbegriff")
  3. Fehler überprüfen: Überprüfe, ob der gesuchte Wert Nothing ist. Dies bedeutet, dass der Suchbegriff nicht gefunden wurde.

    If gesuchterWert Is Nothing Then
       ' Hier kannst du den Fehler abfangen und eine geeignete Aktion ausführen
    Else
       ' Wert gefunden, hier kannst du mit dem Offset arbeiten
    End If

Häufige Fehler und Lösungen

  • Fehler: "Typen sind nicht kompatibel": Stelle sicher, dass du die .Cells.Find Methode korrekt verwendest, und der Suchbegriff als String übergeben wird.

  • Problem: Programmausführung stoppt bei Fehler: Wenn On Error Resume Next nicht gesetzt ist, stoppt das Programm bei einem Fehler. Vergiss nicht, diese Zeile einzufügen.

  • Suchbegriff nicht gefunden: Wenn der Suchbegriff nicht existiert, stelle sicher, dass du die Fehlerbehandlung korrekt implementiert hast.


Alternative Methoden

Eine alternative Methode zur Fehlermeldung bei der Verwendung von Cells.Find ist die Verwendung von WorksheetFunction.CountIf, um vorher zu überprüfen, ob der Wert in den Zellen vorhanden ist:

If WorksheetFunction.CountIf(Cells, "Suchbegriff") > 0 Then
    Set gesuchterWert = Cells.Find("Suchbegriff")
    ' Weitere Aktionen
Else
    ' Wert nicht vorhanden, Fehler abfangen
End If

Diese Methode verhindert erst gar nicht, dass die .Cells.Find Methode aufgerufen wird, wenn der Wert nicht vorhanden ist.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie man die .Cells.Find Methode in einem VBA-Skript verwendet, während man Fehler abfängt:

Sub SucheNachWert()
    On Error Resume Next
    Dim gesuchterWert As Range
    Set gesuchterWert = Cells.Find("Suchbegriff")

    If gesuchterWert Is Nothing Then
        MsgBox "Der Suchbegriff wurde nicht gefunden."
    Else
        MsgBox "Der Suchbegriff wurde in Zeile " & gesuchterWert.Row & " gefunden."
    End If
End Sub

Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich dazu, alle Variablen zu deklarieren, was die Fehlersuche erleichtert.

  • Debugging-Tools: Nutze die Debugging-Tools in der VBA-Entwicklungsumgebung, um Fehler schnell zu identifizieren.

  • Fehlerprotokollierung: Erstelle ein Protokoll, das aufzeichnet, wenn ein Fehler auftritt, um so die Ursachen besser zu verstehen und zu beheben.


FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass mein Code auch ohne Fehler läuft?
Antwort: Verwende immer On Error Resume Next und überprüfe die Variablen nach kritischen Operationen.

2. Frage
Kann ich Cells.Find ohne Fehlerbehandlung verwenden?
Antwort: Ja, aber das Programm wird bei einem Fehler anhalten. Es ist ratsam, immer eine Fehlerbehandlung einzubauen, um unerwartete Programmabbrüche zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige