[Excel VBA] Soucis de Boucle !!

Résolu/Fermé
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 - 27 juil. 2009 à 12:07
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 27 juil. 2009 à 13:55
Bonjour,
Je commence déjà par vous exposer mon programme
ref = 11 + nblignes
collage = 18 + (2 * nblignes)
For j = 1 To 3
Sheets("" & ComboBox1.Value & "").Select
i = 1
Do Until IsEmpty(Cells(ref, i))
i = i + 1
Loop
If i < 3
nomcol = Split(Columns(i - 1).Address(0, 0), ":")(0)
nbacop = Application.WorksheetFunction.CountA(Range("" & nomcol & "" & ref + 1 & ":" & nomcol & "" & ref + nblignes + 3 & ""))
Range("" & nomcol & "" & (ref + 1) & ":" & nomcol & "" & nbacop + ref - 1 & "").Select
Selection.Copy
Sheets("Suivi").Select
Range("G" & collage & "").Select
ActiveSheet.Paste
collage = collage + 6 + nblignes
ref = ref + 5 + nblignes
Next j
Application.DisplayAlerts = True
End Sub


Mon soucis est que au niveau du "IF i < 3", j'aimerais que si i remplit cette condition, le programme aille directement à Next j, et ne réalise pas les actions située en dessous...
Une type de code du genre "if i < 3 then Next J" et q'uil reparte sur :
For j = 1 To 3
Sheets("" & ComboBox1.Value & "").Select
i = 1
Do Until IsEmpty(Cells(ref, i))
i = i + 1
Loop

Merci d'avance, Si vous avez des questions...
A voir également:

5 réponses

LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 361
27 juil. 2009 à 12:46
Ma question est surtout, "Comment renvoyer à une certaine ligne du code ? à une certaine étape ?"
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 juil. 2009 à 12:53
Salut,

Pourquoi ne changer tout simplement la condition?
If i >= 3 Then

  ' ici ton code qui ne s'exécute que si i plus grand ou égal avec 3
  ' en ce cas si i < 3 alors j sera incrementé
End If
Next j
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 juil. 2009 à 12:55
Re,

Sinon tu as le GoTo, voici un extrait depuis l'aide de VBA Excel

GoTo, instruction, exemple
Cet exemple utilise l'instruction GoTo pour se brancher aux étiquettes de ligne indiquées au sein d'une procédure.

Sub GotoStatementDemo()
Dim Number, MyString
    Number = 1     ' Initialise la variable.
    ' Évalue Number et se branche à l'étiquette
    ' appropriée.
    If Number = 1 Then GoTo Line1 Else GoTo Line2
    
Line1:
    MyString = "Number est égal à 1"
    GoTo LastLine    ' Passe à la dernière ligne.
Line2:
    ' L'instruction suivante ne peut jamais être
    ' exécutée.
    MyString = "Number est égal à 2"
LastLine: 
    Debug.Print MyString    ' Affiche "Number est
                                ' égal à 1" dans la fenêtre
                                ' Exécution.
End Sub


0
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 361
27 juil. 2009 à 13:52
Ah d'accord merci, je crois que j'ai pas la même aide que toi ^^, Quand je cherche certains commande, ça me met erreur de chargement de l'aide ou je ne sais quoi, faut que j'reinstalle un truc quand ça m'arrive -_-
Merci ! j'vais lire ça =)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 361
27 juil. 2009 à 13:53
Et pour répondre à Lami20j, c'est ce que j'ai fais finalement ^^ mais j'voulais quand même une réponse à ma question, vu que ça pourra me servir ultérieurement
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 juil. 2009 à 13:55
Re,

Ben, la réponse est GoTo.
0