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:
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" logiqueCode:
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:
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 :/