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)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 :
16bf84f7-33f3-48ab-a565-51d7d9337b89@googlegroups.com...
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)
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