Perte Objet dans une boucle imbriquée.

Le
Alf
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #26413025
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
Alf
Le #26413036
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+
Publicité
Poster une réponse
Anonyme