Findnext renvoie toujours la même référence
Bonjour forum,
Débutant Vba ,j'ai un problème de compréhension avec "findnext".
Sur le fichier exemple joint ,find me trouve bien la référence de la première cellule , puis boucle sur celle-ci.
Que manque-t-il pour que cela fonctionne ?
Merci d'avance pour votre aide .
Amicalement
Bonjour,
Essaie ainsi :
Private Sub CommandButton1_Click()
Dim C As Range, Plg As Range
Dim Depart As Byte, Fin As Byte, I As Byte
Dim FirstAddress As String
Depart = Range("H6").Value
Fin = Range("I6").Value
For I = 2 To Worksheets.Count
'je vérifie que "depart" est inferieur ou egal a la plus grande valeur de colonne A
'si faux je passe a la feuille suivante
If Depart <= Worksheets(I).Range("T1") + 4 Then
'je vérifie que la valeur de T1 est superieure a "fin"
'si vrai je sors de la sub
If Worksheets(I).Range("T1") > Fin Then
GoTo suite
'sinon
Else
Set Plg = Worksheets(I).Range("C5:C300")
Set C = Plg.Find(Range("G6"), , xlValues, xlWhole, xlByRows, xlNext)
'ce message me permet de verifier que c ne change pas
If Not C Is Nothing Then
FirstAddress = Worksheets(I).Name & C.Address
Do
' MsgBox C.Offset(, -2).Address
If C.Offset(, -2) >= Depart And C.Offset(, -2) <= Fin Then
C.Offset(, 1) = 8
End If
Set C = Plg.FindNext(C)
Loop While Not C Is Nothing And Worksheets(I).Name & C.Address <> FirstAddress
End If
End If
End If
suite:
Next I
End Sub
Bon Dimanche
Re,
Merci cousinHub .
Je vais essayer de comprendre ce qui n'est pas bon dans mon raisonnement en comparant ta solution à la mienne.
Je repasserai peut-être par là , au cas où ...
Bon dimanche à toi aussi et au forum.
-- Dim Nov 21, 2010 8:25 pm --
Re,
Encore merci cousinhub.
Grâce à ton aide j'ai compris mon erreur de raisonnement .
En écrivant "For j = 1 To 5"
après "Set c = Adresse.Find(Range("G6"), Adresse.Cells(1), xlValues, xlWhole, xlByRows, xlNext)"
le problème est résolu.
Amicalement