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

43prob-find.zip (14.42 Ko)

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

Rechercher des sujets similaires à "findnext renvoie meme reference"