Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

sauvegarde du critère de filtrage d’une colonne

  • Initiateur de la discussion Initiateur de la discussion Francis
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Francis

Guest
Bonsoir le forum
Je cherche à sauvegarder le critère de filtrage d’une colonne, afin de le retrouver à la fin de la macro, pour restituer l’affichage original.
J’ai pondu ces quelques lignes et cela coince...Ca marche sauf dans le cas où il n’y a pas de filtre enclenché, cela filtre sur la première donnée de la colonne

With ActiveSheet.AutoFilter.Range.Columns(6)
Adr = .Cells(1).Address
Set C = .Columns(1).Find("*")
critérial1 = C
End With
With Worksheets("Feuil1")
If .FilterMode = True Then .ShowAllData
‘Bla blabla…etc
End With
Selection.AutoFilter Field:=6, Criteria1:=C


Je me suis remis au travail
With Worksheets("Feuil1")
If .AutoFilterMode Then
With .AutoFilter.Filters(6)
If .On Then c6 = .Criteria1
End With
End If
End With

With Worksheets("Feuil1")
If .FilterMode = True Then .ShowAllData
‘Bla blabla…etc
End With
Selection.AutoFilter Field:=6, Criteria1:=c6
Ca marche sauf dans le cas où il n’y a pas de filtre enclenché, la variable Criteria1 retourne « vide » et toutes les lignes sont cachées.
Quelqu’un aurait-il une autre idée ?
Merci d’avance
Francis
 
Re : sauvegarde du critère de filtrage d’une colonne

je crois avoir trouvé ce code dans l'aide
Code:
Sub SupprimerEtRemettreFiltre()
'Dim TABFILTRE()
'Application.StatusBar = "Stockage des critères de filtrage..."
Set W = Worksheets("DONNÉES")
With W.AutoFilter
    ZONEFILTRE = .Range.Address
    With .Filters
        ReDim TABFILTRE(1 To .Count, 1 To 3)
        For F = 1 To .Count
            With .Item(F)
                If .On Then
                    TABFILTRE(F, 1) = .Criteria1
                    If .Operator Then
                        TABFILTRE(F, 2) = .Operator
                        TABFILTRE(F, 3) = .Criteria2
                    End If
                End If
            End With
        Next
    End With
    For i = 1 To .Filters.Count
        If Not TABFILTRE(i, 1) = "" Then .Range.AutoFilter FIELD:=i
    Next
End With
Application.StatusBar = "Critères de filtrage stockés...Filtres enlevés..."

'Ici  tu mets le code que tu veux

'Application.StatusBar = "Rétablissement des filtres..."
For Col = 1 To UBound(TABFILTRE(), 1)
    If Not IsEmpty(TABFILTRE(Col, 1)) Then
        If TABFILTRE(Col, 2) Then
            W.Range(CURRENFILTRANGE).AutoFilter FIELD:=Col, _
                Criteria1:=TABFILTRE(Col, 1), Operator:=TABFILTRE(Col, 2), _
                Criteria2:=TABFILTRE(Col, 3)
        Else
            W.Range(ZONEFILTRE).AutoFilter FIELD:=Col, _
                Criteria1:=TABFILTRE(Col, 1)
        End If
    End If
Next
Application.StatusBar = "Critères de filtrage rétablis..."
End Sub

Recherche AutoFilter dans l'aide F1
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
1 K
Réponses
11
Affichages
969
Réponses
1
Affichages
552
Réponses
4
Affichages
881
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…