AW: Button um Zeilen auszuschlaten
28.03.2018 16:52:29
Werner
Hallo Simon,
ehrlich gesagt hatte ich eigentlich keine große Lust mehr hier noch weiter zu machen, nachdem du schon einen neuen Beitrag zu dem Thema verfasst hast.
Aber da ich den Code jetzt schon mal zusammengeschrieben habe, stelle ich ihn halt doch ein.
Vorarbeiten:
Bitte einen CommandButton aus den ActiveX Steuerelementen auf dein Tabellenblatt legen. In den Eigenschaften des CommandButton die Caption auf "Ausblenden" ändern.
Dann diesen Code ins Codemodul des Tabellenblattes, auf dem sich auch der CommandButton befindet.
Private Sub CommandButton1_Click()
Dim i As Long, loZeile As Long
With Worksheets("Test2") 'Blattname anpassen
'Ermitteln der letzten belegten Zelle in Spalte N (14)
loZeile = .Cells(.Rows.Count, 14).End(xlUp).Row
'Wenn Beschriftung der Schaltfläche = "Ausblenden" dann
If .CommandButton1.Caption = "Ausblenden" Then
'Schleife von Spalte A (1) bis Spalte N (14)
For i = 1 To 14
'in jeder Spalte die Filterpfeile des Autofilter ausschalten
ActiveSheet.Range("A7:N" & loZeile).AutoFilter Field:=i, visibledropdown:=False
Next
'Spalte N nach ungleich "x" filtern
.Range("A7:N" & loZeile).AutoFilter Field:=14, Criteria1:="x"
'Beschriftung der Schaltfläche auf "Einblenden" ändern
.CommandButton1.Caption = "Einblenden"
'Wenn Beschriftung der Schaltfläche = "Einblenden" dann
ElseIf .CommandButton1.Caption = "Einblenden" Then
'Autofilter ausschalten
If .AutoFilterMode = True Then .AutoFilterMode = False
'Beschriftung der Schaltfläche auf "Ausblenden" ändern
.CommandButton1.Caption = "Ausblenden"
End If
End With
End Sub
Das Makro verwendet zum Ein-/Ausblenden den Autofilter, ohne dass du das mitbekommst, weil die Filterpfeile ausgeblendet werden.
Das Tabellenende ist nicht fix auf 5000 eingestellt wie bei deinem Code. Die letzte belegte Zelle wird durch den Code in der Spalte A von unten nach oben ermittelt - ist also flexibel wenn die Daten erweitert werden.
Ausgeblendet/Ausgefiltert werden alle Zeilen die in Spalte N ein "x" stehen haben.
Gruß Werner