Excel VBA Sortir de boucle for [Résolu/Fermé]

Messages postés
9
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
14 janvier 2009
- - Dernière réponse :  EnigmaXXXIII - 4 oct. 2016 à 22:52
Bonjour,
je voudrais savoir s'il est possible
de sortir d'une boucle for ou plus exactement de passer
à l'enregistrement suivant, çad :

for i=... to ...

if(..) then

(....)

et passe directement au suivant sans terminer les instructions de la boucle for

j'ai essayé en mettant Next juste avant le End if mais il me dit qu'il ne trouve pas le for

d'avance merci
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
250
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
301
51
Merci
bonjour

utilise : exit for

à plus

Dire « Merci » 51

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62821 internautes nous ont dit merci ce mois-ci

Messages postés
9
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
14 janvier 2009
6
5
Merci
arghhhh.... j'ai un ami qui est repassé et qui m'a fait remarquer de tout simplement mettre un else: pour les actions qui suivent !

merci beaucoup pour tout
mille fois désolé
Messages postés
20
Date d'inscription
jeudi 27 août 2009
Statut
Membre
Dernière intervention
18 avril 2011
3
3
Merci
bonjour sinon tu peut utiliser goto
pour l'utiliser tu met a la ligne que tu veu arriver
line1:................
et la ou tu veu faire sauter dans ton for tu met
goto line1
j'espere que sa pourrai aider certaine personne
saloute
Messages postés
9
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
14 janvier 2009
6
1
Merci
    For NumDesigner = 2 To Designer
        NomDesigner = Sheets("Programm").Cells(NumDesigner, 5).Value
        j = pdt

        For i = ppl To dpl
            If Sheets("PL").Cells(i, 7).Value = NomDesigner _
               And Sheets("PL").Cells(i, 14).Value = Date Then
            
          '('Ici le programme réalise des copiers collers et des mises en formes de
             sheets et de cellules')

                j = j + 1

            End If

        Next
        
    'Si aucun copier coller n'a été fait alor j n'a pas changé de valeur
        If j = pdt Then
            While Sheets(NomDesigner).Cells(j, 1).Value <> 0
                DoEvents
                Sheets(NomDesigner).Rows(j).Delete
            Wend
            MsgBox " pas d'actions à réaliser pour pour ce designer"
            ThisWorkbook.Sheets(NomDesigner).Protect
           Next i 'c'est ici que je veux sortir de la première boucle for mais ce 
next me pose problème et VBA me dit qu'il n'y a pas de For pour ce next
        End If

    '('Ensuite il y a encore des copiers collers et des mises en forme à faire que je veux
        eviter de faire si j n'a pas été incrémenté')

    Next


Mon programme étant très long j'ai essayé de laisser que le nécessaire, n'étant pas un grand informaticien je me suis renseigner et on ma parler de Go To ou Break à la place de mon next i qui me pose problème mais ca ne marche pas
J'espère que la compréhension sera plus facile
a+
Messages postés
9
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
14 janvier 2009
6
0
Merci
Re
Merci pour la réponse rapide !
Le problème est qu'avec l'exit for le programme sort complètement du for sans passer à l'itération suivante, moi ce que je voudrais en fait c'est qu'il n'aille pas jusqu'au Next 'tout en bas du programme' mais il incrémente mon i. en fait c pas exactement sortir du for... arf
LePierre
Messages postés
250
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
2 août 2012
301 -
bonjour

Le passage par Next me semble obligatoire. Il faut organiser ton programme ainsi :
For i=... to ....
....
if condition=... then
...
else
....
end if
Next i

Si tu mettais un bout de code à télécharger, on verrait peut être mieux ton problème.

à plus
Tu peux peut-être lui indiqué une condition tel que :
--------------------------
Sub Quelquechose()

''Début de la boucle for
For i = ... to ....

'' si la condition est rencontré alors il continue la boucle en allant à
'' ContinueLaBoucle qui fait Next i

If condition = then goto ContinueLaBoucle

Else

''Sinon il sort de la boucle
Goto SortirDeLaBoucle

End if

ContinueLaBoucle:
Next i

SortirDeLaBoucle:
Exit Sub (ou autre code que tu veux faire pour sortir de la boucle)

End sub
------------------------
J'ai fait un code similaire car je devais rencontrer différents scénario et ça fonctionne assez bien.

Ps: Je ne suis pas un pro en vba, mais je m'en sort pas trop mal.

J'Espère que ça t'aidera.