VBA Autofilter avec deux critères

Résolu/Fermé
Clark...kent Messages postés 43 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 1 mars 2020 - Modifié par Clark...kent le 11/05/2012 à 16:29
 clark...kent - 15 mai 2012 à 13:56
Bonjour le forum,

Je souhaite appliquer un filtre ou le champ 9 me ressort
les catégories commençant par Ter et Pui (en fonction de la date sélectionné en A6)
afin de calculer le sous total de la colonne C

Dim lig as long
lig = Worksheets("Donnees").Range("O65536").End(xlUp).Row
If Range("Chargement!A5") = "Pui" Or "Ter" Then
Worksheets("Donnees").Select
Range("A1:O" & lig).AutoFilter Field:=9, Criteria1:="*Pui*", Operator:=xlAnd, Criteria1:="*tiaire*"
Range("A1:O" & lig).AutoFilter Field:=14, Criteria1:=[Chargement!A6]
Range("Graphique!D5") = Application.WorksheetFunction.Subtotal(9, Range("Donnees!C2:C100000"))
'Range("Graphique!D5") = Application.Sum(Range("Graphique!A8-Chargement!A9"))
End If

Le problème est qu'il ne prend que le premier critère pas le second.

Merci de votre aide.

13 réponses

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
14 mai 2012 à 15:37
Bonjour a vous tous,

If Range("Chargement!A5") = "Puissance" Or Range("Chargement!A5") = "Tertiaire" Then
Worksheets("Donnees").Select
Range("A1:O" & Lig).AutoFilter Field:=9, Criteria1:="=Puissance", _
Operator:=xlOr, Criteria2:="=Tertiaire"
End If

Bonne suite
4
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
Modifié par f894009 le 15/05/2012 à 13:17
Bonjour,

tertiaire ou Tertiaire (parce que pas pareil pour un test)?????????
1
clark...kent
14 mai 2012 à 12:22
personne pour m'aider? sniff
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 14/05/2012 à 13:45
bp,hjour,
1/les catégories commençant par Ter ET Pui
ne serait ce pas plutôt
es catégories commençant par Ter OU Pui ?
(si ca commence par "pui", ca ne peut pas commencer par "ter"....)

2/ le terme est "ter" ou "tiaire" ?

3/ les catégories commençant par
seraient plutôt marquées "ter*"
"*ter*" <==> contenant "ter"

Michel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
clark...kent
14 mai 2012 à 14:05
Bonjour Michel

Effectivement c'est une erreur dans mon explication.

J'ai tout rectifier, car j'avais trop abrégé.

If Range("Chargement!A5") = "Puissance" Or "Tertiaire" Then
Worksheets("Donnees").Select
Range("A1:O" & lig).AutoFilter Field:=9, Criteria1:="Pui*", Operator:=xlAnd, Criteria1:="*tiaire"

D'après mes abréviations, cela ne change pas grand chose et ne fonctionne toujours pas d'ailleurs.

J'ai abrégé les critères par contenant, car si j'inscris le critère entièrement je n'ai carrément aucun résultat.

Tandis que dans le code ci-dessous il me détecte bien puissance ou tertaire mais m'affiche uniquement puissance dans mon autofilter.

Merci de ton aide.
0
bonjour,

a priori

If Range("Chargement!A5") = "Pui" Or Range("Chargement!A5") = "Ter" Then

Bonne suite
0
clark...kent
14 mai 2012 à 14:21
Bonjour Paf,

Merci du conseil mais ça ne fonctionne pas.

Il ne me filtre rien.
0
clark...kent
14 mai 2012 à 16:17
Merci f894009
Je me suis toujours interrogé sur votre pseudo :)

Alors je pense qu'on est vraiment pas loin car ça fonctionne quand je sélectionne Puissance, il me fait bien le tri et le sous total.
Mais pas quand je sélectionne Tertiaire.

A noté que j'ai modifié votre réponse en inscrivant la valeur exacte dans critère2
Criteria2:="=Système Tertiaire"
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
14 mai 2012 à 16:26
Re,

Dans la cellule Chargement!A3, vous mettez quoi exactement "Tertiaire" ou "Système Tertiaire"????
0
C'est chargement A5, tout dépend.

Cette cellule est fonction d'une ComboBox.
Donc cette cellule peut contenir Puissance ou Système Tertiaire voir d'autres
choses mais qui sont fonction d'autres ComboBox et donc d'autres macros.

L'utilisateur sélectionne son choix dans la ComboBox,
puis exécute la macro avec un bouton valider.

Le plus surprenant c'est que je dois exécuter la même condition dans une macro supérieur mais avec trois conditions différentes, et la encore il ne prend en considération qu'une seule des trois conditions pour exécuter l'auto filtre parmi les trois possibles dans A5.

Merci d'y passer du temps en tout cas.

Vous souhaitez que je partages le fichier peut être?
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
14 mai 2012 à 17:15
Re,

Aviez vous tout modifie??

If Range("Chargement!A5") = "Puissance" Or Range("Chargement!A5") = "System Tertiaire" Then
Worksheets("Donnees").Select
Range("A1:O" & Lig).AutoFilter Field:=9, Criteria1:="=Puissance", _
Operator:=xlOr, Criteria2:="=System Tertiaire"
End If
0
clark...kent
15 mai 2012 à 11:41
Oui.

ElseIf Range("Chargement!A5") = "Puissance" Or Range("Chargement!A5") = "Système tertiaire" Then
Worksheets("Donnees").Select
lig = Worksheets("Donnees").Range("O65536").End(xlUp).Row
Range("A1:O" & lig).AutoFilter Field:=9, Criteria1:="=Puissance", _
Operator:=xlOr, Criteria2:="=Système Tertiaire"
Range("A1:O" & lig).AutoFilter Field:=14, Criteria1:=[Chargement!A6]
0
clark...kent
15 mai 2012 à 13:56
Ah la je vais me faire engueuler.
Je viens de trouver aussi, vu l'heure de votre message 1h après vous.

C'est Tertiaire dans ma combobox et tertiaire dans mon critère.

Je suis pas assez attentif, vraiment désolé. Je n'ai pas l'habitude
de travailler sur un code si long!

Tout fonctionne!

Un grand merci à tous!
0