XL 2010 Remplacer un filtre (portant sur 1 critère) avec un bouton (macro)

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 !

Laminedor2lalog

XLDnaute Nouveau
Bonjour,

Je suis débutant en VBA, et j'aimerais utiliser un bouton pour remplacer un filtre portant sur 1 seul critère.
J'aimerais qu'en cellule B2, je puisse saisir n'importe quel mot (et pas uniquement câble) et qu'en appuyant sur le bouton, le filtre se mette en place tout seul.
Par exemple, si je tape cable, j'ai 3 lignes (6, 11 et 38)

Je souhaite également filtrer et dé filtrer ave le même bouton.

Je joins mon fichier pour exemple

Merci beaucoup pour votre aide
 

Pièces jointes

Solution
Bonsoir,
Une proposition en PJ
VB:
Private Sub CommandButton1_Click()
    If CommandButton1.Caption = "Filtrer" Then
        ActiveSheet.[a:b].AutoFilter Field:=2, Criteria1:="=*" & [D1] & "*"
        CommandButton1.Caption = "Enlever filtre"
    Else
        CommandButton1.Caption = "Filtrer"
        If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
    End If
End Sub
Bonsoir,
Une proposition en PJ
VB:
Private Sub CommandButton1_Click()
    If CommandButton1.Caption = "Filtrer" Then
        ActiveSheet.[a:b].AutoFilter Field:=2, Criteria1:="=*" & [D1] & "*"
        CommandButton1.Caption = "Enlever filtre"
    Else
        CommandButton1.Caption = "Filtrer"
        If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
    End If
End Sub
 

Pièces jointes

Bonsoir Jacky
J'utilise la fonction "advanced filter" (j'ai excel en anglais) avec la zone de filtre en A1:B2
en B2 j'ai la formule "=+IF(B3="","",CONCAT("*",TEXT(B3,0),"*"))"

La zone d'entrée de donnée est en B3

La macro sert uniquement à lancer le filtre avancé

Andy
 
Bonsoir Jacky
J'utilise la fonction "advanced filter" (j'ai excel en anglais) avec la zone de filtre en A1:B2
en B2 j'ai la formule "=+IF(B3="","",CONCAT("*",TEXT(B3,0),"*"))"

La zone d'entrée de donnée est en B3

La macro sert uniquement à lancer le filtre avancé

Andy
Re..
Ah! c'était donc
Une solution sans macro et une autre(solution) avec macro
J'ai certainement mal interprété 😉
 
Bonsoir,
Une proposition en PJ
VB:
Private Sub CommandButton1_Click()
    If CommandButton1.Caption = "Filtrer" Then
        ActiveSheet.[a:b].AutoFilter Field:=2, Criteria1:="=*" & [D1] & "*"
        CommandButton1.Caption = "Enlever filtre"
    Else
        CommandButton1.Caption = "Filtrer"
        If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
    End If
End Sub
Bonsoir,
Une proposition en PJ
VB:
Private Sub CommandButton1_Click()
    If CommandButton1.Caption = "Filtrer" Then
        ActiveSheet.[a:b].AutoFilter Field:=2, Criteria1:="=*" & [D1] & "*"
        CommandButton1.Caption = "Enlever filtre"
    Else
        CommandButton1.Caption = "Filtrer"
        If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
    End If
End Sub
Un grand merci
 
- 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

Discussions similaires

Réponses
16
Affichages
1 K
Réponses
16
Affichages
913
Réponses
40
Affichages
3 K
Réponses
1
Affichages
708
Compte Supprimé 979
C
Retour