Bonjour a tous,
Je viens vers vous car j'ai un problème.(tiens donc)
j'ai deux tableaux.
Dans le premiervoir ci joint), je cherche des occurrences d'une valeur, (trv = plage.find("sn02024") et trv = plage.findnext(trv))
Pour chaque occurrence, l'adresse reçue me permet de lire une valeur . (Par Ex : 1° occurrence= "4", seconde occurrence = "15",.......)
Cela marche parfaitement.
Le problème vient que lorsque dans la boucle (FindNext) de recherche, je fais une autre recherche avec Find sur le second tableau, la boucle FindNext arrête et donne des valeurs aberrantes. Je dirai que les index de FindNext se mélangent les pinceaux
Si les lignes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Set plage = Sheets(NomTable).Columns(12) Set Trv = plage.Find(NumSerie) If Not Trv Is Nothing Then frstadr = Trv.Address Do FolioIDlgn = Trv.Row FolioID = Sheets(NomTable).Cells(FolioIDlgn, 11) Set plage1 = Sheets(NomTable).Columns(2) adrID = plage1.Find(FolioID).Row Set Trv = plage.FindNext(Trv) Loop While Not Trv Is Nothing And Trv.Address <> frstadr End If
sont en remarques, le FindNext trouve bien toutes les occurrences de la chaine recherchée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Set plage1 = Sheets(NomTable).Columns(2) adrID = plage1.Find(FolioID).Row
Dès que les lignes ne sont plus mise en remarques, la première recherche FindNext change la valeur de trv.
Dans le tableur ci près,
sans les deux lignes, Findnext trouve bien 3 fois la chaine "sn02024".1 38 sn00021 M0107 38 2 39 sn02024 M0107 40 3 72 sn02024 M0107 112 4 99 sn02024 M0107 114 5 111 sn00063 M0107 117 6 147 sn00070 M0107 154
Mais avec les deux lignes actives, Find trouve bien la première occurrence de "sn02024", mais findNext retourne "sn00379" au lieu de "sn02024"
J'ai aussi essayé de faire la deuxième recherche via une fonction, mais même là, dès que l'on fait une recherche avec find, au retour de la fonction , FindNext ne retrouve pas la bonne valeur .
Voila, j'éspère avoir été clair.........
SI quelqu'un a une piste ou une solution........
Merci
Bonne journée a tous
Michel
Partager