VBA Autofilter avec deux critères

Résolu
Clark...kent Messages postés 50 Statut Membre -  
 clark...kent -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    tertiaire ou Tertiaire (parce que pas pareil pour un test)?????????
    1
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. clark...kent
     
    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
  6. Paf
     
    bonjour,

    a priori

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

    Bonne suite
    0
  7. clark...kent
     
    Bonjour Paf,

    Merci du conseil mais ça ne fonctionne pas.

    Il ne me filtre rien.
    0
  8. clark...kent
     
    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
  9. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Dans la cellule Chargement!A3, vous mettez quoi exactement "Tertiaire" ou "Système Tertiaire"????
    0
  10. clark...kent
     
    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
  11. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  12. clark...kent
     
    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
  13. clark...kent
     
    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