VBA Excel : sortir d'une boucle

Résolu

Bonjour,
Dans ce bout de code:
Sub Test_Boucle()
Dim MaPlage As Range
For i = 1 To 20
    Set MaPlage = Sheets("Feuil2").UsedRange.Find(" R" & i & " -")
Next i

comment sortir de la boucle si on ne trouve plus de Ri dans la feuille ?
Je sais que le minimum est 1 (R1) et le maximum est 20 (R1, R2,...R20) mais il peut y en avoir beaucoup moins ...


Windows / Chrome 123.0.0.0

1 réponse

  1. Bonjour,


    Vous pouvez utiliser une instruction Exit For pour sortir de la boucle lorsque la recherche ne trouve plus de valeurs correspondantes. Voici comment vous pourriez le faire :

    Sub Test_Boucle()
        Dim MaPlage As Range
        Dim i As Integer
        Dim foundCell As Range
        
        For i = 1 To 20
            Set MaPlage = Sheets("Feuil2").UsedRange.Find(" R" & i & " -")
            If MaPlage Is Nothing Then
                MsgBox "R" & i & " non trouvé."
                Exit For
            Else
                ' Faites ce que vous devez faire avec la cellule trouvée ici
                Set foundCell = MaPlage
            End If
        Next i
    End Sub
     

    Dans ce code, Exit For est utilisé pour sortir de la boucle si la plage n'est pas trouvée (MaPlage Is Nothing). Si la plage est trouvée, vous pouvez exécuter d'autres actions dans la boucle avant de passer à la prochaine itération.

    Voilà. J'espère que cela vous aidera.

    1. Bonjour!

      Merci pour ta réponse!
      C'est le is Nothing qu'il me manquait ...
      Étant absent ce matin, je teste dans l'AM .

    2. Ok, ça fonctionne bien!
      Encore merci pour ton aide
      Cordialement, Mikel

    3. Contributeur
      @mikel831

      Tu penses à marquer comme résolu?