Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Perte Objet dans une boucle imbriquée.

2 réponses
Avatar
Alf
Bonjour =C3=A0 tous,

Sous Excel 2007
Je vous joins mon exemple "TestFind.xlsm".
C'est difficile =C3=A0 expliquer, mais quand la recherche dans la boucle Do=
Loop de la colonne B est finie, ne continue plus la recherche dans la 1=C3=
=A8re boucle Do Loop de la colonne A. (renvoie objet non d=C3=A9fini)

http://www.cjoint.com/c/FJqikTZktwa

Pouvez vous m'aider ?
Merci =C3=A0 tous

2 réponses

Avatar
MichD
Bonjour,
Essaie comme ceci :
'-----------------------------------------------------------
Sub test()
Dim Zone1 As Range, Zone2 As Range, Last As Range
Dim Str1 As Range, Str2 As Range, C As Range
Set Zone1 = Range("A1:A100")
Set Zone2 = Range("B1:B100")
'Débute la recherche sur la dernière ligne de la plage
'La Méthode Find débute toujours à la ligne suivante,
'dans ce cas, à la première ligne de la zone1
Set Last = Zone1(Zone1.Cells.Count, 1)
'-----------
With Zone1
Set Str1 = .Find("A", Last, , xlPart, , xlNext, True)
If Not Str1 Is Nothing Then
FirstAddress = Str1.Address
Do
'La variable C est là comme marqueur pour savoir
'où la boucle est rendue...
Set C = Str1
Numlig = C.Row
'---------------
With Zone2
Set Str2 = Zone2.Find("B", , , xlPart, , xlNext, True)
If Not Str2 Is Nothing Then
FirstAddress2 = Str2.Address
Do
'------
Nlig = Str2.Row
Set Str2 = Zone2.FindNext(Str2)
Loop While Not Str2 Is Nothing And Str2.Address <>
FirstAddress2
End If
End With
'---------------
'Au lieu d'utiliser la méthode "FindNext", fait appel à cette
ligne de commande
'La méthode FindNext perd le nord lorsque tu l'insères dans une
sous boucle
'où elle était déjà utilisée.
Set Str1 = .Find("A", C, , xlPart, , xlNext, True)
Loop While Not Str1 Is Nothing And Str1.Address <> FirstAddress
End If
End With
'--------------
End Sub
'-----------------------------------------------------------
MichD
"Alf" a écrit dans le message de groupe de discussion :
Bonjour à tous,
Sous Excel 2007
Je vous joins mon exemple "TestFind.xlsm".
C'est difficile à expliquer, mais quand la recherche dans la boucle Do Loop
de la colonne B est finie, ne continue plus la recherche dans la 1ère boucle
Do Loop de la colonne A. (renvoie objet non défini)
http://www.cjoint.com/c/FJqikTZktwa
Pouvez vous m'aider ?
Merci à tous
Avatar
Alf
Le dimanche 16 octobre 2016 10:12:21 UTC+2, Alf a écrit :
Bonjour à tous,
Sous Excel 2007
Je vous joins mon exemple "TestFind.xlsm".
C'est difficile à expliquer, mais quand la recherche dans la boucle Do Loop de la colonne B est finie, ne continue plus la recherche dans la 1 ère boucle Do Loop de la colonne A. (renvoie objet non défini)
http://www.cjoint.com/c/FJqikTZktwa
Pouvez vous m'aider ?
Merci à tous

Merci Michel pour tes précieux conseils
Je saurai maintenant ....
A+