Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb boucle For Next

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

jb

Guest
Bonsoir à tous,

Et bien me revoilà avec mon éternel pb (aidez moi svp !!!). J'explique :
Depuis un userform, je saisie des données dans divers contrôles (tbdate, tbheure, cblieu, tbtps, tbsignalement, cbsérie, cbintervenant et tbval1) avec tb (textbox) et cb (combobox). Chaque donnée va se loger dans une cellule bien spéciale (A1, A2, A3, etc ...). Pour la saisie, il n'y a pas de problème, par contre il peut m'arriver de vouloir répétr sur plusieurs lignes en fonction de la valeur de tbval1. Si tbval1 =) 1, j'écris les données sur une ligne (pas de boucle). Par contre, si tb est > 1, je veux répéter les données sur un nombre de lignes en dessous en référence à la valeur de tbval1 (ex : si tbval1 = 3, je veux que les données rentrées s'inscrive sur la première ligne puis les mêmes données sur les 2 lignes suivantes => du coup, j'ai bien trois lignes avec les mêmes données). J'ai donc mis en place une boucle (For/Next) mais mon pb, c'est qu'elle répète indéfiniment mes données sur toutes les lignes de la feuille (condition jamais atteinte) => pourriez vous m'aider à me dépatouiller svp !!!

Voici le code :

Private Sub Répétition()

Dim val As Integer
Dim compteur As Integer
val = tbval1.Value
compteur = 1

Repetition:
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = tbDate.Value
ActiveCell.Value = Format(CDate_(tbDateSignalement.Text), "MM/DD/YYYY")
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbheure.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cblieu.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbtps.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbsignalement.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cbsérie
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cbintervenant.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbval1.Value


For compteur = 1 To val Step 1
GoTo Repetition
Next compteur

End Sub



Merci beaucoup et bonne soirée !

JB.
 
M

Mytå

Guest
Bonsoir le forum

Normale tu reinitialises ta boucle avec chaque goto repetion

Dim val As Integer
Dim compteur As Integer
val = tbval1.Value
compteur = 1

For compteur = 1 To val Step 1
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = tbDate.Value
ActiveCell.Value = Format(CDate_(tbDateSignalement.Text), "MM/DD/YYYY")
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbheure.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cblieu.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbtps.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbsignalement.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cbsérie
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cbintervenant.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbval1.Value
Next compteur

End Sub


A suivre
 
M

Mytå

Guest
re le forum

ou encore

Sub repeter()
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = tbDate.Value
ActiveCell.Value = Format(CDate_(tbDateSignalement.Text), "MM/DD/YYYY")
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbheure.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cblieu.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbtps.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbsignalement.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cbsérie
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = cbintervenant.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = tbval1.Value
End Sub

Private Sub Répétition()

Dim val As Integer
Dim compteur As Integer
val = tbval1.Value
For compteur = 1 To val Step 1
Call repeter
Next compteur

End Sub

A suivre
 

Discussions similaires

Réponses
8
Affichages
958
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…