Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1464to1468
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abfrage wenn Autofilter_criteria leer ist

Abfrage wenn Autofilter_criteria leer ist
08.01.2016 09:07:41
Fra
Hallo,
gestern habe ich den ganzen Tag an folgendem Problemm gessesen.
ich habe eine Funktion aus dem Web übernommen, die mir den ersten gefilterten Wert von Autofilter übernimmt:
Function AutoFilter_Criteria(Header As Range) As String
Dim strCri1 As String, strCri2 As String
Application.Volatile
With Header.Parent.AutoFilter
With .Filters(Header.Column - .Range.Column + 1)
If Not .On Then Exit Function
strCri1 = .Criteria1
If .Operator = xlAnd Then
strCri2 = " AND " & .Criteria2
ElseIf .Operator = xlOr Then
strCri2 = " OR " & .Criteria2
End With
End With
AutoFilter_Criteria = strCri1
End If
Ich möchts diese dahingegen werweitern, das wenn nicht gefiltert ist, "kein Filter gesetzt"  _
angezeigt wir, dazu habe ich die Fkt folgendermaßen angepasst:

Function AutoFilter_Criteria(Header As Range) As String
Dim strCri1 As String, strCri2 As String
Application.Volatile
If Criteria1 = False Then
AutoFilter_Criteria = "Kein Filter gesetzt"
Else
With Header.Parent.AutoFilter
With .Filters(Header.Column - .Range.Column + 1)
If Not .On Then Exit Function
strCri1 = .Criteria1
If .Operator = xlAnd Then
strCri2 = " AND " & .Criteria2
ElseIf .Operator = xlOr Then
strCri2 = " OR " & .Criteria2
End If
End With
End With
AutoFilter_Criteria = strCri1
End If
End Function
also die Zeilen
If Criteria1 = False Then
AutoFilter_Criteria = "Kein Filter gesetzt"
Else
eingefügt, aber es klappt leider nicht. ich habe auch alle möglichen Arten von Abfragen versucht ohne Erfolg.
Könnt Ihr mir da weiter helfen ?
Danke im Voraus
Fra

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage wenn Autofilter_criteria leer ist
08.01.2016 09:24:36
UweD
Hallo

Sub FilterAnAus()
With ActiveSheet
If .AutoFilterMode = False Then
MsgBox "Filtermodus ist aus"
Else
If .FilterMode = False Then
MsgBox "Filter eingeschaltet, aber keine Auswahl getroffen"
Else
MsgBox "Filter Auswahl wurde getroffen"
End If
End If
End With
End Sub
Gruß UweD

AW: Abfrage wenn Autofilter_criteria leer ist
08.01.2016 09:52:34
Fra
Hallo Uwe,
danke aber das ist nicht ganz was ich will. Ich habe mich vielleicht etwas falsch ausgedrückt.
Wenn nichts gefiltert wird, soll das Ergebis der Funktion "kein Filter gesetzt" sein.
noch ne Idee ?
Danke
Fra

Anzeige
AW: Abfrage wenn Autofilter_criteria leer ist
08.01.2016 10:17:30
UweD
Hallo nochmal..
Was ist daran nicht so, wie du es möchtest?
Kleine Anpassungen sollten bei "VBA bescheiden" auch möglich sein...

Sub FilterAnAus()
With ActiveSheet
If .AutoFilterMode = False Then
MsgBox "kein Filter gesetzt" '"Filtermodus ist aus"
Else
If .FilterMode = False Then
MsgBox "kein Filter gesetzt" '"Filter eingeschaltet, aber keine Auswahl  _
getroffen"
Else
'Hier DEIN MAKKROTEIL
End If
End If
End With
End Sub

Gruß UweD

AW: Abfrage wenn Autofilter_criteria leer ist
08.01.2016 10:26:11
Fra
Hallo Uwe,
es geht nicht um die Anpassung, es geht darum, das ich nicht eine MsgBox haben möchte sondern, das das Ergebnis der Funktion "kein Filter gesetzt" ist.
Gruß
Fra

Anzeige
AW: Abfrage wenn Autofilter_criteria leer ist
08.01.2016 09:53:27
Fra
Hallo,
ein kleine Kottektur:
Ich habe mich vielleicht etwas falsch ausgedrückt.
Wenn nichts gefiltert wird, soll das Ergebis der Funktion "kein Filter gesetzt" sein.
Danke
Fra

AW: Abfrage wenn Autofilter_criteria leer ist
08.01.2016 10:26:31
Nepumuk
Hallo,
so?
Option Explicit

Function AutoFilter_Criteria(Header As Range) As String
    
    Dim strCriteria As String
    
    Application.Volatile
    
    With Header.Parent.AutoFilter
        With .Filters(Header.Column - .Range.Column + 1)
            If .On Then
                strCriteria = .Criteria1
                If .Criteria2 <> "" Then
                    If .Operator = xlAnd Then
                        strCriteria = strCriteria & " AND " & .Criteria2
                    ElseIf .Operator = xlOr Then
                        strCriteria = strCriteria & " OR " & .Criteria2
                    End If
                End If
            Else
                strCriteria = "Kein Filter gesetzt"
            End If
        End With
    End With
    AutoFilter_Criteria = strCriteria
End Function

das funktioniert natürlich nicht wenn du aus der Liste Werte auswählst, denn dann ist Criteria1 ein Array.
Gruß
Nepumuk

Anzeige
AW: Abfrage wenn Autofilter_criteria leer ist
08.01.2016 11:19:49
Fra
Hallo Nepumuk,
super es klappt, danke Dir :-)
Gruß
Fra

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige