Bonjour,
suite à mon dernier poste ci joint , j'aimerais améliorer mon traitement.
Dans mon fichier, sur la 1ere feuille, j'ai la possibilité de choisir une équipe :
le filtre se fait automatiquement lorsque j'appuis sur un bouton :
voici mon code vba correspondant :
pour la feuille2 :
le soucis c'est que les autres feuilles contiennent le même type de colonne, c'est à dire l'équipe, sauf que ce n'est pas formaté de la même façon, je m'exlique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Range("D5").Select Select Case Range("D5")'selon la valeur choisi dans ma liste deroulante Case "Equipe_15" valeurCherchée = "EQUIPE 15" 'je fais un filtre sur la feuil2, corespondant à equipe 15 Case "Equipe_16" valeurCherchée = "EQUIPE 16" 'je fais un filtre sur la feuil2, corespondant à equipe 16 Case "Equipe_17" valeurCherchée = "EQUIPE 17" 'je fais un filtre sur la feuil2, corespondant à equipe 17 End Select Sheets("feuil2").Select ActiveSheet.Range("$A$1:$M$20").AutoFilter Field:=13, Criteria1:="*" + valeurCherchée + "*", _ Operator:=xlAnd
voici ce que l'on à sur :
la feuille 1 : "equipe 16 - rouen"
la feuille 2 : "EQUIPE 16"
lafeuille 3 : "EQUIPE_16"
comme vous le voyait, chacune des feuilles va correspondre à un export, la colonne équipe se trouvera toujours au même endroit, le probleme c'est que selon l'export ce n'est pas noté de la même façon.
pour mon premier développement, j'ai mis un code vba pour chacune des pages,par exemple :
Pour la feuille 3:
pour la feuille 4 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Range("D5").Select Select Case Range("D5")'selon la valeur choisi dans ma liste deroulante Case "Equipe_16" valeurCherchée = "equipe 16" 'je fais un filtre sur la feuil2, corespondant à equipe 15 Case "Equipe_17" valeurCherchée = "equipe 17" 'je fais un filtre sur la feuil2, corespondant à equipe 16 Case "Equipe_18" valeurCherchée = "equipe 18" 'je fais un filtre sur la feuil2, corespondant à equipe 17 End Select Sheets("feuil3").Select ActiveSheet.Range("$A$1:$M$20").AutoFilter Field:=13, Criteria1:="*" + valeurCherchée + "*", _ Operator:=xlAnd
Comme vous le voyait, j'ai fais manuellement mon test en vba, car dans la feuille 2, dans la colonne equipe, c'est écris en majuscule, dans la feuille3, en minuscule et dans la feuille 3, en majuscule mais avec un "_".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Range("D5").Select Select Case Range("D5")'selon la valeur choisi dans ma liste deroulante Case "Equipe_15" valeurCherchée = "EQUIPE_15" 'je fais un filtre sur la feuil2, corespondant à equipe 15 Case "Equipe_17" valeurCherchée = "EQUIPE_17" 'je fais un filtre sur la feuil2, corespondant à equipe 16 Case "Equipe_18" valeurCherchée = "EQUIPE_18" 'je fais un filtre sur la feuil2, corespondant à equipe 17 End Select Sheets("feuil4").Select ActiveSheet.Range("$A$1:$M$20").AutoFilter Field:=13, Criteria1:="*" + valeurCherchée + "*", _ Operator:=xlAnd
J'avais essayé de faire un truc du genre :
pour résumé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Case "Equipe_15" valeurCherchée = "equipe 15 - grand groupe" or "EQUPE 15" or "EQUPE_15" ' ce que je veux faire c'est un test sur la colonne, avec que llorsque je fais mon filtre, il viltre sur le bon terme c'est à dire si la colonne c'est écris comme cela equipe 15 - grand groupe, mon filre marche, si c'est "EQUPE 15" il marche également etc.
ma premiere page c'est une synthèse du traitement qui est fait et qui reste à faire, dans les feuilles 2,3,4 c'est un export et la colonne filtré restera toujours au même endroit, le problème c'est que d'une feuille à l'autre le mot change.
A votre avis, est ce que mon traitement manuel, sachant que les futures exports ne bougeront pas suffis amplement , donc du coup mon fichier marche ou existe t-il une façon de faire afin de tester le mot pour savoir si c'est écrit d'une façon ou d'une autre, avec ou sans "_" ?
Merci beaucoup.
Partager