Erreur '438 : FindNext
RésoluBonjour,
je ne comprends pas je n'arrive pas à utiliser Findnext (erreur '438) alors que je l'ai utilisé dans une autre macro et il fonctionnait.
Voici une partie de mon code simplifié :
Dim rang_rech0 As Range,val_rech0 As Variant, cell As String
Dim rang_trouve As Range
Dim wk As Workbook
Set wk = Workbooks("Nomenclature.xlsm")
Set rang_rech0 = wk.Worksheets("STANDARD").Range("A2:A284")
val_rech0 = Feuil4.Cells(1, 1)
Set rang_trouve = rang_rech0.Find(what:=val_rech0, LookIn:=xlValues, lookat:=xlPart)
If rang_trouve Is Nothing Then
MsgBox ("Pied non créé!")
Else:
cell = rang_trouve.Address
Do
Set rang_trouve = wk.rang_rech0.FindNext(rang_trouve) <-----erreur 438
If Not rang_trouve Is Nothing Then
'code
End If
Loop While rang_trouve.Address <> cell
End If
End Sub
merciiii
4 réponses
-
aussi le programme s'execute pas la boucle DO car il s'arrête à la condition While qu'il ne comprend pas . Je ne sais pas quoi faire
-
Bonjour,
A priori la valeur cherchee est val_rech0, pas rang_trouve, sauf erreur de ma part
Set rang_trouve = rang_rech0.Find(what:=val_rech0, LookIn:=xlValues, lookat:=xlPart) Set rang_trouve = wk.rang_rech0.FindNext(rang_trouve)
-
-
-
@f894009
ok merci, je n'ai plus d'erreur à cette étape !
par contre mon programme n'éxécute pas la boucle car il bloque à la condition "while"...
Loop While rang_trouve.Address <> cell <-- erreur 91
pourquoi ca ne fonctionne pas? avez vous une idée ?
Merci beaucoup :))
-
Contributeur Ambassadeur@ccvr
"ca ne fonctionne pas": Peux-tu expliquer ce que tu veux obtenir et quelles sont les données dans la colonne?
-
@yg_be
ok je vous explique
-
-
Contributeur Ambassadeur
bonjour,
Merci, quand tu partages du code, d'utiliser cette technique: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Regarde en #2 et compare soigneusement la ligne avec Find() et celle avec FindNext(). Tu as ajouté à la seconde trois caractères superflus, qui, je pense, causent le message d'erreur que tu reçois.
-
Contributeur Ambassadeur
Je pense que ton souci, c'est que tu imagines que le FindNext de la ligne 46 va chercher ce que tu as spécifié dans le Find en ligne 22.
En réalité, le FindNext cherche ce qui a été spécifié dans le dernier Find exécuté, qui n'est probablement pas celui de la ligne 22.
-
-
Contributeur Ambassadeur@ccvr
Tu peux refaire un Find, cela convient parfaitement.
https://docs.microsoft.com/fr-fr/office/vba/api/Excel.Range.Find -
@yg_be
ok super merci !
je me suis compliquée la vie... car avec Find ca fonctionne
merci beaucoup !!
-