• Initiateur de la discussion Initiateur de la discussion jb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jb

Guest
Bonsoir à tous,

J'ai un pb sur une boucle "For Next"qui se répète indéfiniment. Voilà, j'écrit des données dans les cellules A1, B1, C1 et D1. Si la valeur de la cellule D1 est 1 (valeur par défaut), la ligne est unique, par contre, si elle est supérieure à 1 (exemple = 2), je veux que la ligne soit répétée une deuxième fois, c-a-d les mêmes données mais dans les cellules A2, B2, C2 et D2. Je voudrais que ce programme fonctionne pour n'importe quel valeur souhaitée (allez, de 1 à 10).
Mo pb, c'est que mon code me répète bien les données mais n'a pas l'air de tenir compte de la valeur de la cellule D1. ar exemple, si je met 2, il répète indéfiniment mes lignes (gros bogue !!!).

Voici mon code :

If Range("D1").Value > 1 Then
Dim val As Integer
Dim compteur As Integer
val = Range("D1").Value.Value
For compteur = 2 To val Step 1
GoTo Répétition
Next
Else
End If

End Sub

Quelqu'un pourrait-il m'aider à trouver mon erreur => pourquoi est-ce que ma boucle ne s'arrête pas à la valeur souhaitée.
Attention, dans le code, l'instruction se réfère à GOto car j'ai du code assez long devant.

Merci bien et très bonne soirée à tous.

JB.
 
Bonsoir Jb et le forum,

Bon à première vue il faudrait déjà écrire la macro sous cette forme...le Dim en tête...en non après une condition...dans val il y à un .value en trop dans le range...pour l'instant je ne vais pas plus loin il nous faudrait davantage de renseignements sur l'ensemble de ta macro...savoir par exemple ou l'on va avec Répétition...tiens à ce sujet on peut éviter les caractères accentués type "é"...Excel n'en à pas besoin dans une macro...mais ce n'est pas spécialement un problème pour ta boucle...lol

Dim val As Integer
Dim compteur As Integer
If Range("D1").Value > 1 Then
val = Range("D1").Value
For compteur = 2 To val Step 1
GoTo Repetition
Next
Else
End If


A+ Vériland
 
Bonjour,
Le VBA permet de réaliser des boucles propres et d'éviter le GOTO de nos grand-pères (lol) qui risque de ne pas renvoyer la main.
Fais plutôt une fonction séparée pour ce qui doit être fait une ou n fois.
Le problème est sans doute dans le code correspondant à repetition.
CHris
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
432
Réponses
3
Affichages
265
Réponses
4
Affichages
581
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Retour