Création du boucle pour incrementation textbox - VB/VBA/VBS - Programmation
Marsh Posté le 18-10-2015 à 23:19:40
C'est parce que l'accès une textbox par une variable string ne fonctionne pas comme ca.
Voila la bonne version:
Code :
|
Permet de récupérer la textbox se nommant "TextBox4" (en supposant que i=4).
Voila (de tête), ce qui devrait fonctionner:
Code :
|
Les erreurs/améliorations:
- La variable j n'est pas nécessaire
- i=1 dans le for (ca va créer une boucle infinie)
- la parenthèse du trim mal placée
- L'utilisation de Me.Controls pour récupérer la textbox
- le i = i + 1 n'est pas nécessaire (Step 1 est déjà définit)
- La boucle doit certainement s'arrêter à 17 et non 18 (ou alors tu fais démarrer i à 1 et change les indices)...
Marsh Posté le 18-10-2015 à 23:47:25
Bonsoir et merci pour cette réponse rapide
Je viens de recopier le code et ça ne fonctionne pas
La boucle tourne bien mais je n'écris rien dans L
Merci pour les conseils..le j effectievement ne servait pas mais je n avais pas pensé au i + 5...
Marsh Posté le 18-10-2015 à 23:54:50
Desolé..;Ca fonctionne très bien..J avais juste oublié de remplacé box par Par..Le nom de ma textBox
Marsh Posté le 19-10-2015 à 00:57:24
Meme question avec ce code ..
'If H = 1 Then LBJoueur1.Caption = Sheets("Joueurs" ).Range("D2" )
'If H = 2 Then LBJoueur2.Caption = Sheets("Joueurs" ).Range("D3" )
'If H = 3 Then LBJoueur3.Caption = Sheets("Joueurs" ).Range("D4" )
'If H = 4 Then LBJoueur4.Caption = Sheets("Joueurs" ).Range("D5" )
'If H = 5 Then LBJoueur5.Caption = Sheets("Joueurs" ).Range("D6" )
'If H = 6 Then LBJoueur6.Caption = Sheets("Joueurs" ).Range("D7" )
'If H = 7 Then LBJoueur7.Caption = Sheets("Joueurs" ).Range("D8" )
'If H = 8 Then LBJoueur8.Caption = Sheets("Joueurs" ).Range("D9" )
a remplacer par :
For i = 0 To 7 Step 1
If H = i + 1 Then Trim(Me.Controls("LBJoueur" & (i + 1)).Caption) = Sheets("Joueurs" ).Range("D&i+2" )
Next
evidemment ça ne marche pas (
Marsh Posté le 19-10-2015 à 11:22:50
Code :
|
Sorti de la parenthèse ca marchera mieux
EDIT: le trim est pas possible là ou tu l'avais mis, si tu veux trim au passage:
Code :
|
Marsh Posté le 18-10-2015 à 23:04:16
Bonjour
J'ai lu des sujets sur l incrémentation des TextBox mais aprés avoir recopier le code ça ne fonctionne toujours pas
Je voudrais remplacer ça
L.Offset(-1, 5) = Trim(UCase(TextPar1.Text))
L.Offset(-1, 6) = Trim(UCase(TextPar2.Text))
L.Offset(-1, 7) = Trim(UCase(TextPar3.Text))
L.Offset(-1, 8) = Trim(UCase(TextPar4.Text))
L.Offset(-1, 9) = Trim(UCase(TextPar5.Text))
L.Offset(-1, 10) = Trim(UCase(TextPar6.Text))
L.Offset(-1, 11) = Trim(UCase(TextPar7.Text))
L.Offset(-1, 12) = Trim(UCase(TextPar8.Text))
L.Offset(-1, 13) = Trim(UCase(TextPar9.Text))
L.Offset(-1, 14) = Trim(UCase(TextPar10.Text))
L.Offset(-1, 15) = Trim(UCase(TextPar11.Text))
L.Offset(-1, 16) = Trim(UCase(TextPar12.Text))
L.Offset(-1, 17) = Trim(UCase(TextPar13.Text))
L.Offset(-1, 18) = Trim(UCase(TextPar14.Text))
L.Offset(-1, 19) = Trim(UCase(TextPar15.Text))
L.Offset(-1, 20) = Trim(UCase(TextPar16.Text))
L.Offset(-1, 21) = Trim(UCase(TextPar17.Text))
L.Offset(-1, 22) = Trim(UCase(TextPar18.Text))
Par
Dim L As Range
Dim i As Integer
Dim j As Integer
j = 4
For i = 0 To 18 Step 1
i = 1
i = i + 1
j = j + 1
L.Offset(-1, j) = Trim(TextPar & i).Text
Next i
Par avance merci pour votre aide
Message édité par thor76 le 18-10-2015 à 23:04:56