[Excel VBA] Soucis de Boucle !!
Résolu
LeDénicheur
Messages postés
624
Statut
Membre
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
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...
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...
Configuration: Windows XP Internet Explorer 6.0
5 réponses
-
Ma question est surtout, "Comment renvoyer à une certaine ligne du code ? à une certaine étape ?"
-
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
-
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
-
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 =) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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