Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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

Wenn Filter in Spalte gesetzt ist Button in Userform anpassen

Wenn Filter in Spalte gesetzt ist Button in Userform anpassen
03.01.2020 15:56:26
Asce
Hallo zusammen,
Ich setze über drei Buttons in einer Userform Filter (Criteria1:="" / Criteria1:="=" / Filter Löschen) auf eine Spalten in meiner Tabelle (ListObject). Dabei ändere ich das Bild der Buttons damit ich sehe welche Filterung gerade aktiv ist.
  • 
    Private Sub cmdWeißSet_Click()
    Dim Spaltenname As String
    Spaltenname = "Weiß"
    Call FilterSetzen(Spaltenname)
    cmdWeißSet.Picture = LoadPicture(Application.ActiveWorkbook.Path & "\Icons\FilterWeißSetOn.jpg") _
    cmdWeißNot.Picture = LoadPicture(Application.ActiveWorkbook.Path & "\Icons\FilterWeißNotOff.jpg" _
    )
    cmdWeißDel.Picture = LoadPicture(Application.ActiveWorkbook.Path & "\Icons\FilterWeißDelOff.jpg" _
    )
    End Sub
    

  • Soweit kein Problem jetzt möchte ich aber beim öffnen der Userform erkennen ob und wenn ja welcher Filter gesetzt ist damit ich die richtigen Bilder zuweißen kann. Leider finde ich nur Vorlagen bei dennen allgemein geschaut wird ob ein Filter vorhanden ist. Hat da jemand eine Idee?
    lg Asce

    4
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Wenn Filter in Spalte gesetzt ist Button in Userform anpassen
    03.01.2020 16:59:48
    Nepumuk
    Hallo,
    du musst ihn doch nur auslesen.
    Public Sub Test()
        Dim objFilter As Filter
        With Tabelle1.ListObjects("Tabelle1").AutoFilter
            For Each objFilter In .Filters
                With objFilter
                    If .On Then
                        MsgBox .Criteria1
                    Else
                        MsgBox "Kein Filter"
                    End If
                End With
            Next
        End With
    End Sub

    Gruß
    Nepumuk
    Anzeige
    AW: Wenn Filter in Spalte gesetzt ist Button in Userform anpassen
    03.01.2020 20:20:02
    Asce
    Danke Nepumuk,
    Ich habe es jetzt bis auf einen Punkt hinbekommen. Das "Buttonname = LoadPicture..." funktioniert natürlich nicht. Kann ich die Buttons irgendwie ansprechen ohne den Buttonnamen im Klartext hinzuschreiben?
    Private Sub UserForm_Initialize()
    Dim objFilter As Filter
    Dim i As Integer
    Dim Spaltenname1 As String
    Dim Buttonname As String
    i = 0
    With Tabelle1.ListObjects("Tabelle1").AutoFilter
    For Each objFilter In .Filters
    With objFilter
    If .On Then
    i = i + 1
    If .Criteria1 = "" Then
    Spaltenname1 = Tabelle1.ListObjects(1).HeaderRowRange(i)
    Buttonname = "cmd" & Spaltenname1 & ".Picture"
    Buttonname = LoadPicture(Application.ActiveWorkbook.Path & "\ _
    Icons\" & Spaltenname1 & "FilterOn.jpg")
    End If
    If .Criteria1 = "=" Then
    Spaltenname1 = Tabelle1.ListObjects(1).HeaderRowRange(i)
    Buttonname = "cmd" & Spaltenname1 & "Not.Picture
    Buttonname = LoadPicture(Application.ActiveWorkbook.Path & "\ _
    Icons\" & Spaltenname1 & "FilterNotOn.jpg")
    End If
    Else
    i = i + 1
    End If
    End With
    Next
    End With
    End Sub
    

    lg Asce
    Anzeige
    AW: Wenn Filter in Spalte gesetzt ist Button in Userform anpassen
    04.01.2020 06:43:58
    Nepumuk
    Hallo,
    so:
    Controls("cmd" & Spaltenname1).Picture = LoadPicture …
    
    Gruß
    Nepumuk
    AW: Wenn Filter in Spalte gesetzt ist Button in Userform anpassen
    04.01.2020 07:15:27
    Asce
    Nochmals ein Danke an dich =)
    lg Asce

    308 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige