Après plusieurs recherches infructueuses, je viens vous demander de l'aide.
J'ai trouvé un code que j'ai modifié pour avoir un bouton qui me filtre un tableau en fonction du contenu de la colonne M (contient "oui" ou "x").
VB:
Private Sub CommandButton2_Click()
With Worksheets("Rapport 1")
If Not .AutoFilterMode Then .Range("M1").AutoFilter
End With
Range("M1").AutoFilter Field:=1, Criteria1:="oui", Operator:=xlOr, Criteria2:="x"
End Sub
Le bouton fonctionne correctement seulement si il y a déjà un filtre manuel sur la colonne M.
Si je supprime manuellement le filtre, j'ai une fenêtre d'erreur qui apparait.
Pouvez-vous m'aider à résoudre ce problème.
Un grand merci d'avance à vous.
Private Sub CommandButton2_Click()
With Worksheets("Rapport 1")
If .FilterMode Then .Range("M1").AutoFilter
End With
Range("M1").AutoFilter Field:=1, Criteria1:="oui", Operator:=xlOr, Criteria2:="x"
End Sub
Bonjour Robert merci pour votre réponse.
J'ai copié votre code. Si je désactive mon filtre manuellement, et que j'appuie sur le bouton j'ai une fenêtre d'erreur :
Erreur d'exécution 1004
La méthode AutoFilter de classe Range a échoué.
Effectivement, si tu désactives le filtre, alors .FilterMode est false, donc .AutoFilter ne s'applique pas, donc Range("M1").AutoFilter ne peut pas s'exécuter.
J'aurais tendance à penser que le If Not était plus adapté à vrai dire.