Hallo Lernfix,
Meine bisherige Netzsuche war bislang erfolglos
Das ist wohl eher ein Problem der richtigen Webseite bzw. die gefundenen Lösungsansätze genau auf deine Bedürfnisse umzuschreiben.
Habe gelesen das so etwas mittels eines Togglebuttons möglich
ist.
Der Togglebutton als solches macht garnichts. Entscheidend ist das Makro das mit dem Togglebutton verknüpft ist.
Die Autofilterfungtion ist hier bei über 50 Spalten
etwas unpraktisch.
Wieso ist die Autofilterfunktion unpraktisch?
Eigentlich ist sie für so etwas ideal. Man muss halt damit umgehen können.
Ich gehe bei meiner Lösung davon aus, dass
- du die Autofilterfunktion normalerweise nicht nutzt
- in Spalte Y ab Zeile 9 in den Zellen entweder ein Datum oder nichts steht.
Das Makro schaltet den Autofilter ab oder erstellt nur für die Spalte Y
Den Togglebutton aus den Active-X-Steuerelementen fügst du an der gewünsten Position im Tabellenblatt ein. Dann auf den Button Doppelklicken, damit das Grundgerüst (1. und letzte Zeile des Makros) angelegt wird. Dann den nachfolgenden Code ohne die „Private Sub ToggleButton1_Click()“ und „End Sub“ Zeile in dein Makro kopieren. ggf. muss du noch den Namen des Togglebuttons im Code anpassen.
Der von mir unter Excel 2007 erstellte Code sollte auch unter Excel 2003 funktionieren.
Gruß
Franz
'Erstellt unter Excel 2007
'Code unter dem Tabellen-Modul mit dem Toggle-Button
Private Sub ToggleButton1\_Click()
Dim wks As Worksheet, Zeile\_L As Long
Const ZeileTitel As Long = 8 'Zeile mit Spaltentiteln
Const Spalte\_Filter As Long = 25 'Spalte Y
Set wks = Me
With wks
'Alle Daten einblenden unf ggf. Autofilter abschalten
If .AutoFilterMode = True Then
If .FilterMode = True Then
.ShowAllData
End If
.AutoFilterMode = False
End If
If Me.ToggleButton1.Value = True Then
Zeile\_L = Application.WorksheetFunction.Max(ZeileTitel, \_
.Cells.SpecialCells(xlCellTypeLastCell).Row)
If Zeile\_L \> ZeileTitel Then
'Leere Zeilen in Filter-Spalte ausblenden
.Range(.Cells(ZeileTitel, Spalte\_Filter), .Cells(Zeile\_L, Spalte\_Filter)).AutoFilter \_
Field:=1, Criteria1:=""
End If
Me.ToggleButton1.Caption = "Filter AUS"
Else
Me.ToggleButton1.Caption = "Filter EIN"
End If
End With
End Sub