Bonjour,
Je travaille sur une macro VBA pour filtrer puis compter dans les données filtrées.
J'ai donc un tableau dont l'en-tête serait la suivante : "Date" "Lieu" "Nom d'essai" "Essai réalisé" "Identifiant essai"
J'utilise "CountIfs" avec un certain nombre de critère pour compter ces lignes.
Tout va bien tant que je n'ai qu'un critère par colonne, par exemple :
(où shSource/shDest sont mes feuilles source de destination, nbColDATE nbColLIEU nbColESSAI_REALISE le numéro de la colonne dans laquelle je cherche)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 shDest.Cells(1, 2) = Application.WorksheetFunction.CountIfs( _ shSource.Range(shSource.Cells(2, nbColDATE), shSource.Cells(nbNombresLignes, nbColDATE)), ">=01/01/2017", _ shSource.Range(shSource.Cells(2, nbColDATE), shSource.Cells(nbNombresLignes, nbColDATE)), "<01/01/2020", _ shSource.Range(shSource.Cells(2, nbColLIEU), shSource.Cells(nbNombresLignes, nbColLIEU)), "Lyon", _ shSource.Range(shSource.Cells(2, nbColESSAI_REALISE), shSource.Cells(nbNombresLignes, nbColESSAI_REALISE)), "OUI")
Mais j'aurais besoin de pouvoir sélection par un "OU" logique plusieurs entée dans la colonne "identification essai", les essais commençant par A00*, B00*, C00*
J'ai trouvé ceci via l'enregistreur de macro, mais ce n'est pas compatible avec countifs ou plutôt je n'arrive pas à l'intégrer dans mon countifs :/
et j'ai essayé ceci, qui ne va, qui correspond à un "ET" logique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ActiveSheet.Range("$A$1:$O$5192").AutoFilter Field:=9, Criteria1:=Array( _ "A00", "B00", "C00"), Operator:= xlFilterValues)
Une petite idée/piste s'il vous plait?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 shDest.Cells(1, 2) = Application.WorksheetFunction.CountIfs( _ shSource.Range(shSource.Cells(2, nbColDATE), shSource.Cells(nbNombresLignes, nbColDATE)), ">=01/01/2017", _ shSource.Range(shSource.Cells(2, nbColDATE), shSource.Cells(nbNombresLignes, nbColDATE)), "<01/01/2020", _ shSource.Range(shSource.Cells(2, nbColLIEU), shSource.Cells(nbNombresLignes, nbColLIEU)), "Lyon", _ shSource.Range(shSource.Cells(2, nbColESSAI_REALISE), shSource.Cells(nbNombresLignes, nbColESSAI_REALISE)), "OUI" _ shSource.Range(shSource.Cells(2, nbColESSAI_REALISE), shSource.Cells(nbNombresLignes, nbColID_ESSAI)), "A00*" _ shSource.Range(shSource.Cells(2, nbColESSAI_REALISE), shSource.Cells(nbNombresLignes, nbColID_ESSAI)), "B00*" _ shSource.Range(shSource.Cells(2, nbColESSAI_REALISE), shSource.Cells(nbNombresLignes, nbColID_ESSAI)), "C00*"))
Je m'arrache les cheveux depuis vendredi dernier, le week-end ne m'a pas tellement porté conseil :/
Partager