Θέμα: Πρόσθετα Απόκρυψη Γραμμών

Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 19-01-12, 09:30
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Καλημέρα σε όλους!

Τζίμη, με την εφαρμογή του αυτόματου φίλτρου σε ένα φύλλο αποκρύπτονται οι φιλτραρισμένες
γραμμές με τον καλύτερο και ταχύτερο τρόπο.
Συνεπώς θα πρέπει να αυτοματοποιήσεις την εφαρμογή του αυτόματου φίλτρου χρησιμοποιώντας 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
Δοκίμασε και... τα λέμε.

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση