[VBA] Boucle qui s'arrête au premier résultat "VRAI" trouvé

Hello

Comme indiqué dans le titre j'ai un souci avec une boucle.

Je recherche une valeur dans une colonne si je la trouve je la remplace par une autre (mais cette valeur peut être reprise plusieurs fois), pour autant ma boucle sort dès le premier résultat "Vrai" trouvé...

Un avis extérieur serait le bienvenue

Dim Lig As Long, NbLig As Long
    With TS_lan 'je déclare mon tableau dans lequel j'effectue la recherche
    NbLig = .DataBodyRange.Rows.Count
    For Lig = 1 To NbLig
'je fixe la condition de ma recherche
        If .ListColumns("Designation").DataBodyRange(Lig) Like "V" & Me.delete_vrf & "*" Then 'j'applique les modifications si je trouve
            .ListColumns("Designation").DataBodyRange(Lig) = "Disponible"
            .ListColumns("VLAN").DataBodyRange(Lig) = ""
            .ListColumns("Commentaire").DataBodyRange(Lig) = ""

    Exit For
    End If
   Next

  End With

Bonjour,

Supprimer l'instruction : "Exit For"

Bon ben c'était tellement simple que je me demande encore comment j'ai fait pour ne pas le voir moi même

Merci bcp de ton retour!

Et bien j'ai quand même une petite erreur

si pour un autre résultat qui peut se trouver plusieurs fois dans la colonne, je décide de supprimer la ligne

  With TS_spine
                Dim vrf As Long, NbLig2 As Long
                NbLig2 = .DataBodyRange.Rows.Count
                For vrf = 1 To NbLig2
                    If .ListColumns("vpn-instance4").DataBodyRange(vrf) Like "V" & Me.delete_vrf & "*" Then
                        .ListColumns("vpn-instance4").DataBodyRange(vrf).EntireRow.delete
                    End If
                Next
                End With

Cela me supprime quelques lignes, mais pas toutes celles concernées.

Exemple si la valeur "070" se trouve 7 fois dans la colonne sous la forme "V070-*", il m'a supprimé que les 5 premières occurrences

je reste perplexe sur la qualité de mon code

Bonjour,

Si vous supprimez des lignes, il faut inverser votre boucle en commençant par la dernière ligne de votre tableau

ou alors stocker vos lignes à supprimer dans un objet Range global et supprimer le contenu de cet objet après exécution de votre boucle.

Thev merci de cet éclairci, mais que veux tu dire par inverser?

edit c'est bon j'ai trouvé grace a ton aide avec l'ajout du step -1

Rechercher des sujets similaires à "vba boucle qui arrete premier resultat vrai trouve"