Résolu Filtrer plusieurs données via VBA Excel sans qu'elles ne s'annulent

  • Auteur de la discussion VBAquandtunoustiens
  • Date de début

VBAquandtunoustiens

Nouveau membre
Bonjour à tous!

Je suis relativement novice en VBA et je suis coincée par mon code depuis bien trop longtemps!

J'ai créé un tableau avec 2 command buttons qui filtrent des données différentes.
Le premier fonctionne bien avec le code suivant :

Private Sub CommandButton1_Click()
ActiveSheet.Unprotect

If Not IsEmpty(Range("Créditsélectionné")) Then ActiveSheet.Range("$A$20:$K$900").AutoFilter Field:=3, Criteria1:=Range("Créditsélectionné").Value

Mais je n'arrive pas à faire fonctionner le second, qui doit filtrer jusqu'à 4 critères différents!
J'ai essayer ce code ci sans succès (et ce d'autant plus qu'il ne marche que pour 2 critères et non pas 4):

Private Sub CommandButton3_Click()

ActiveSheet.Unprotect


Range("$A$20:$K$900").AutoFilter Field:=10, Criteria1:=Range("Sûreté1sélectionnée"), Operator:=xlAnd, Criteria2:=Range("Sûreté2sélectionnée")

End Sub

Pour résumer, j'ai deux problèmes très similaires :
=>Faire fonctionner les 2 commandbutton sans que l'un n'annule l'autre
=>Faire fonctionner mon 2nd commandbutton avbec les 4 critères possibles sans que les uns n'annulent les autres

Auriez-vous des pistes???

Je commence à croire qu'il n'y a pas de solutions!

Merci beaucoup d'avance!
 

drul

Obscur pro du hardware
Staff
Salut, tu entends quoi par "l'un annule l'autre" ? tous deux fonctions agissent sur la même plage, elles vont forcément s'annuler ...
Pour pouvoir utiliser plus de 2 critères, il faut utiliser "AdvancedFilter", et pas "autofilter".
Je te laisse lire l'aide sur cette fonction dans excel ET dans le vba.
 

VBAquandtunoustiens

Nouveau membre


 

VBAquandtunoustiens

Nouveau membre
Meilleure réponse
Bonjour drul!
Merci pour ta réponse!
J'ai finis par parvenir à LA solution.
Comme je travaille sur la version 2003, j'ai rentré un code qui permet de mettre 1 ou 0 selon si la donnée est sélectionnée dans la liste déroulante.

="|"&Créditsélectionné&"|"

=--ET(ESTNUM(CHERCHE("|"&C24&"|";$I$10));C24<>"")

Ainsi, dans mon code j'ai filtré comme suit :
rivate Sub CommandButton3_Click()

Me.Unprotect
Me.Range("$A$25:$L$900").AutoFilter 9, 1

End Sub

ça a l'air simple comme bonjour et pourtant, ça m'a pris un temps fou à trouver!

Merci encore pour ton aide!

 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 135
Messages
6 718 098
Membres
1 586 397
Dernier membre
Chachabidou
Partager cette page
Haut