Bonjour à tous,
J'ai créé un userform sur Excel et j'utilise la fonction AdvancedFilter avec laquelle je rencontre une difficulté.
Pour simplifier, je souhaite filtrer le tableau de données suivant :
Numéro de fiche Numéro de série 1 00123456789 2 7410258963
NB : Les cellules de ce tableau sont en format texte et sont récupérés à partir de textBox de mon userform.
Mon tableau de critère (également en format 'texte') est le suivant :
Numéro de série 0123456789
Mon code VBA est le suivant :
J'aimerai que le résultat du filtre soit vide mais ce dernier m'extrait la fiche n°1 associée au numéro de série "00123456789" (dans mon critère, le numéro de série est "0123456789").
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
20 Sub filtreAvance1() 'Déclaration des variables Dim rgDonnees As Range Dim rgCritere As Range Dim rgDestination As Range 'Affectation des variables Set rgDonnees = Feuil4.Range("A1").CurrentRegion 'équivalent au 1er tableau exemple Set rgCritere = Feuil3.Range("Q3").CurrentRegion 'équivalent au 2nd tableau exemple Set rgDestination = Feuil2.Range("A1") 'Suppression l'ancien filtre Feuil2.Cells.ClearContents 'Exécute l'outil FiltreAvancee rgDonnees.AdvancedFilter xlFilterCopy, rgCritere, rgDestination End Sub
J'ai l'impression qu'Excel supprime les "0" du début des nombres, pourtant dans les deux tableaux (données & critère) les cellules sont au format 'texte'.
J'ai essayé différentes variantes telles que modifier mon tableau critère comme tel :
Numéro de série =0123456789
Cependant, le résultat est le même. La seule solution que j'ai trouvé est de modifier mes numéros de série, en ajoutant une lettre au début comme "b" et là le résultat est conforme à mes attentes. J'aimerai une solution plus optimale s'il vous plaît ?
Merci par avance, bonne journée à vous
Partager