Καλημέρα σε όλους!
Τζίμη, με την εφαρμογή του αυτόματου φίλτρου σε ένα φύλλο αποκρύπτονται οι φιλτραρισμένες
γραμμές με τον καλύτερο και ταχύτερο τρόπο.
Συνεπώς θα πρέπει να αυτοματοποιήσεις την εφαρμογή του αυτόματου φίλτρου χρησιμοποιώντας
VBA.
Αφού συμφωνήσω με το Σπύρο για
τα κουμπιά και παρακουμπιά
και με βάση το παράδειγμα σου και τις δύο επιλογές (Ενεργοί - Ανενεργοί) θα πρότεινα:
Στο
φύλλο1 (που έχει κωδικό όνομα:
Tabelle1) αρκεί ένα
πλαισίου ελέγχου της Excel (όχι ActiveX)
που θα συνδεθεί με το κελί
A1 (Βοήθεια εδώ:
Προσθήκη πλαισίου ελέγχου, κουμπιού επιλογής ή κουμπιού εναλλαγής σε φύλλο εργασίας - Excel - Office.com ).
Κατόπιν, στον
VBE και στο "ThisWorkbook" (στο συνημμένο σου "DieseArbeitsmappe"),
πέρασε τον παρακάτω κώδικα για να φιλτράρεται το φύλλο "Φύλλο1":
Κώδικας:
Option Explicit
Private Sub Workbook_Open()
If Not Tabelle1.Range("A1") Then
Tabelle1.Range("A1") = True ' Tabelle1 = το όνομα κλάσης του φύλλου
SetAutoFilter
End If
End Sub
Σε μια κοινή λειτουργική μονάδα πέρασε την παρακάτω μακροεντολή
και αντιστοίχησε την στο πλαισίου ελέγχου που αναφέρεται παραπάνω:
Κώδικας:
Option Explicit
Sub SetAutoFilter()
Dim i As Integer, FilterRange As Range
With Tabelle1
If .Range("A1") Then
Application.ScreenUpdating = False
Set FilterRange = Range("A6:H" & Rows.Count)
FilterRange.AutoFilter Field:=1
For i = 1 To .AutoFilter.Filters.Count
FilterRange.AutoFilter Field:=i, VisibleDropDown:=False
Next
FilterRange.AutoFilter Field:=1, Criteria1:="1"
' Application.ScreenUpdating = True
Else
.AutoFilterMode = False
End If
End With
End Sub
Δοκίμασε και... τα λέμε.
Φιλικά
Τάσος