XL 2016 Filtrer plage via le contrôle ActiveX : combobox

  • Initiateur de la discussion Initiateur de la discussion KTM
  • 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 !

KTM

XLDnaute Impliqué
Bonjour chers tous
Je voudrais filtrer une plage selon le choix dans un combobox
J'ai fais la macro ci mais elle ne fonctionne pas comme voulu.
Prière m'aider à mieux la construire.

VB:
Private Sub ComboBox1_Change()
Dim x As Variant
Application.ScreenUpdating = False
With Sheets("stock au DS")
    If ComboBox1 = "" Then
       .AutoFilterMode = False
    Else
       .AutoFilterMode = False
       .Range("$A$5:$B$2000").AutoFilter Field:=2, Criteria1:=ComboBox1.Value, _
              Operator:=xlAnd
    End If
End With
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

Re
Pour ce qui est du Fichier de wDog66 que je salue !
Tu dis :
Merci je viens de testé mais une erreur me revient.
Veuillez revoir le code.
Encore Merci..
il semble que c'est la gestion du Filtre qui pose problème !
Voir si cela fonctionne :
VB:
Private Sub ComboBox1_Change()
    Dim dLig As Long
    ' Sort si flag actif pour éviter une boucle infinie
    If Ok_filtre Then
       Ok_filtre = False
        Exit Sub
    End If
    ' Désactive les événements et le rafraîchissement de l’écran
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    With Sheets("stock au DS")
        ' Dernière ligne non vide de la colonne A
        dLig = .Range("A" & .Rows.Count).End(xlUp).Row
        ' Si la ComboBox est vide => suppression des filtres
        If Me.ComboBox1.Value = "" Then
            If .AutoFilterMode Then
                On Error Resume Next
                .ShowAllData
                On Error GoTo 0
            End If
        Else
            ' Sinon : on supprime les filtres existants puis on filtre
            If .AutoFilterMode Then
                On Error Resume Next
                .ShowAllData
                On Error GoTo 0
            End If
            ' On active le flag pour éviter un second passage
            Ok_filtre = True
            ' Application du filtre sur la colonne 2 de A5:F
            .Range("A5:F" & dLig).AutoFilter Field:=2, Criteria1:=Me.ComboBox1.Value
        End If
    End With
    ' Réactive les événements et l’écran
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
jean marie
 
Re
Pour ce qui est du Fichier de wDog66 que je salue !
Tu dis :

il semble que c'est la gestion du Filtre qui pose problème !
Voir si cela fonctionne :
VB:
Private Sub ComboBox1_Change()
    Dim dLig As Long
    ' Sort si flag actif pour éviter une boucle infinie
    If Ok_filtre Then
       Ok_filtre = False
        Exit Sub
    End If
    ' Désactive les événements et le rafraîchissement de l’écran
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    With Sheets("stock au DS")
        ' Dernière ligne non vide de la colonne A
        dLig = .Range("A" & .Rows.Count).End(xlUp).Row
        ' Si la ComboBox est vide => suppression des filtres
        If Me.ComboBox1.Value = "" Then
            If .AutoFilterMode Then
                On Error Resume Next
                .ShowAllData
                On Error GoTo 0
            End If
        Else
            ' Sinon : on supprime les filtres existants puis on filtre
            If .AutoFilterMode Then
                On Error Resume Next
                .ShowAllData
                On Error GoTo 0
            End If
            ' On active le flag pour éviter un second passage
            Ok_filtre = True
            ' Application du filtre sur la colonne 2 de A5:F
            .Range("A5:F" & dLig).AutoFilter Field:=2, Criteria1:=Me.ComboBox1.Value
        End If
    End With
    ' Réactive les événements et l’écran
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
jean marie
Merci à tous .
Sujet résolu...
 
- 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
7
Affichages
212
Réponses
8
Affichages
493
Réponses
4
Affichages
552
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Retour