Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Brauche Hilfe bei einem Button mit Makro





Frage

Hallo zusammen! Also als erstes ich habe noch nicht viel mit Makro gearbeitet. Bin totaler Neuling darin. Ich wollte ein Makro erstellen, dass wenn ich auf einen Button klicke zwei Spalten nach einem bestimmten Wert gefiltert sind und wenn ich nochmal raufklicke, das sich dann die Filterung zurückgenommen wird. Das Funktioniert auch, aber nur mit zwei verschiedenen Makros. Ich möchte mit einem "klick" den Filter setzten und mit noch einem "klick" den Filter wieder lösen. Sub Button_filter() ' ' Button_filter Makro ' ' ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=20, Criteria1:="<>" ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=37, Criteria1:="=" End Sub ____________________________________________________________________ Sub Button_filter2() ' ' Button_filter2 Makro ' ' ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=37 ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=20 End Sub So sieht das jetzt aus... ich habe 2 Makros einen zum Filtern und einen zum auflösen. Kann ich die irendwie zusammenfügen? Ich hoffe Ihr könnt mir helfen! Gruß oddme

Antwort 1 von DukeNT

Hi oddme,
versuchs mal hiermit:

Sub Button_filter()
'
' Button_filter Makro
'
'
If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False: End
ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=20, Criteria1:="<>"
ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=37, Criteria1:="="
End Sub

Mit der If Abfrage checkt er ob auf dem Aktiven Blatt der Filter gesetzt ist und deaktiviert ihn ggf.
Gruß Niels

Antwort 2 von oddme

Hallo,
ich habe nun diesen Code...
Er macht die Filterung auch rein, doch wenn ich wieder auf den Button klicke geht die Filterung nicht wieder raus.


Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then
ToggleButton1.Caption = "Filter AUS"

ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=37
ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=20

End If

If ToggleButton1.Value = False Then
ToggleButton1.Caption = "Filter EIN"

ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=20, Criteria1:="<>"
ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=37, Criteria1:="="

End If

End Sub


Woran kann das liegen?

Gruß oddme

Antwort 3 von DukeNT

Hi oddme,
sorry hatte nicht gesehen das du mit einem ToggleButton arbeitest.
Versuch dies mal:

Private Sub ToggleButton1_Click()
If ToggleButton1.Value = False Then
ToggleButton1.Caption = "Filter EIN"
If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False: End
End If
If ToggleButton1.Value = True Then
ToggleButton1.Caption = "Filter AUS"
ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=20, Criteria1:="<>"
ActiveSheet.Range("$A$3:$BI$364").AutoFilter Field:=37, Criteria1:="="
End If
End Sub

Gruß Niels

Antwort 4 von oddme

Hi DukeNT,

wenn ich das erste mal bei den Button klicke, nimmt er den ganzen Filter aus der Zeile.

Aber er soll ja erst einen Filter reinmachen und dann die Filterung wieder rückgängig machen.

Gruß oddme

Antwort 5 von oddme

Habe es nun hinbekommen.

Danke für die Hilfe!

Gruß oddme