[Excel VBA] Soucis de Boucle !!

Résolu/Fermé
Messages postés
562
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
-
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
-
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...

5 réponses

Messages postés
562
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
352
Ma question est surtout, "Comment renvoyer à une certaine ligne du code ? à une certaine étape ?"
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
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


Messages postés
562
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
352
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 =)
Messages postés
562
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2013
352
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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
Re,

Ben, la réponse est GoTo.