Filterkriterium nicht gefunden - Fehlerausgabe

  • Excel

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Filterkriterium nicht gefunden - Fehlerausgabe

    Hallo Leute,

    Ich filtere ein Excel Sheet mit folgender Codezeile, jedoch weiß ich einfach nicht, wie ich einen Fehler ausgeben kann, wenn das Filterkriterium nicht gefunden wurde..


    Visual Basic-Quellcode

    1. ActiveSheet.Range("$A$1:$V$328").AutoFilter Field:=6, Criteria1:=Array(Filterkriterium), Operator:=xlFilterValues


    Könnt ihr mir helfen?

    Viele Grüße,
    Jannis

    Visual Basic-Quellcode

    1. If ActiveSheet.Rows(1).Find(Filterkriterium) Is Nothing Then
    2. MsgBox "Error"
    3. Else
    4. ActiveSheet.Range("$A$1:$V$328").AutoFilter Field:=6, Criteria1:=Array(Filterkriterium), Operator:=xlFilterValues
    5. End If
    P.S.: ActiveSheet ist eine gefährliche Art, ein Worksheet zu adressieren.
    Wenn während des Ablaufs der User einen falschen Masuklick macht, läuft dein Programm in den Wald.
    Bessere Adressierungsmethode:

    Visual Basic-Quellcode

    1. Set ws = ThisWorkbook.Sheets("Tabelle1")
    2. ws.Range("A1").Value = "blabla"
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hi Petaod,

    danke für die Antwort, aber leider funktioniert die Lösung noch nicht. :/
    Der Code springt immer in das If mit dem Error, egal ob es den Namen gibt oder nicht..

    Beste Grüße,
    Jannis


    Und ich hab noch ein kleines Problem.. Die Folgende Zeile soll eigentlich alle Einträge in der Spalte A zählen, allerdings kommt dabei immer ein falscher Wert raus, egal wie viele Einträge in der Spalte stehen. Gibt es vielleicht eine Methode wirklich nur alle Strings zu zählen oder so? Oder liegt das vielleicht einfach nur an der Formatierung der Zellen (Eigentlich ist Standard eingestellt)?

    Visual Basic-Quellcode

    1. AnzahlDerEinträge = Application.CountA(Columns(1))

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jannis-01“ ()

    Vielleicht formulierst du dein Anliegen nochmals genau.
    wie ich einen Fehler ausgeben kann, wenn das Filterkriterium nicht gefunden wurde
    bedeutet für mich, dass du erst prüfst, ob es das entsprechende Feld im Header gibt.
    Das kannst du mit der Abfrage

    Visual Basic-Quellcode

    1. If ActiveSheet.Rows(1).Find(Filterkriterium) Is Nothing Then
    erreichen.

    Warum du dein Filterkriterium in ein Array packst, weiss ich nicht, deshalb der letzte Beitrag.

    Falls du wissen willst, ob es Records gibt, die dem Filterkriterium entsprechen, kannst du nach dem Filtern die Anzahl der sichtbaren Zeilen abfragen.

    Aber ich kann aufgrund deiner Problembeschreibung nur spekulieren.
    Um dich nicht noch mehr zu verwirren, warte ich mit weiteren Antworten, bis du dein Problem so formulierst, dass auch ich es verstehe.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --