Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1990 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Création du boucle pour incrementation textbox

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Création du boucle pour incrementation textbox

n°2268017
thor76
Posté le 18-10-2015 à 23:04:16  profilanswer
 

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
mood
Publicité
Posté le 18-10-2015 à 23:04:16  profilanswer
 

n°2268020
Devil'sTig​er
Posté le 18-10-2015 à 23:19:40  profilanswer
 

C'est parce que l'accès une textbox par une variable string ne fonctionne pas comme ca.
 
Voila la bonne version:

Code :
  1. Me.Controls("TextBox" & i)


 
Permet de récupérer la textbox se nommant "TextBox4" (en supposant que i=4).
 
 
Voila (de tête), ce qui devrait fonctionner:

Code :
  1. Dim L as Range
  2. Dim i as Integer
  3. for i = 0 to 17 Step 1
  4.   L.Offset(-1, i + 5) = Trim(Me.Controls("TextBox" & (i + 1)).Text)
  5. Next i


 
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)...


Message édité par Devil'sTiger le 18-10-2015 à 23:21:10

---------------
JunZZi |
n°2268021
thor76
Posté le 18-10-2015 à 23:47:25  profilanswer
 

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...

n°2268022
thor76
Posté le 18-10-2015 à 23:54:50  profilanswer
 

Desolé..;Ca fonctionne très bien..J avais juste oublié de remplacé box par Par..Le nom de ma textBox

n°2268024
thor76
Posté le 19-10-2015 à 00:57:24  profilanswer
 

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 :((

n°2268044
Devil'sTig​er
Posté le 19-10-2015 à 11:22:50  profilanswer
 

Code :
  1. For i = 0 To 7 Step 1
  2.     If H = i + 1 Then Me.Controls("LBJoueur" & (i + 1)).Caption = Sheets("Joueurs" ).Range("D" & (i + 2) )
  3. Next


 
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 :
  1. For i = 0 To 7 Step 1
  2.     If H = i + 1 Then Me.Controls("LBJoueur" & (i + 1)).Caption = Trim(Sheets("Joueurs" ).Range("D" & (i + 2) ))
  3. Next


Message édité par Devil'sTiger le 19-10-2015 à 11:23:47

---------------
JunZZi |
n°2268056
thor76
Posté le 19-10-2015 à 13:48:48  profilanswer
 

Merci beaucoup...Je n'était pas loin de la vérité :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Création du boucle pour incrementation textbox

 

Sujets relatifs
creat table en php avec une fonction en +Comment modifier la date (creat ou modif) d'un fichier par prog ?
Plus de sujets relatifs à : Création du boucle pour incrementation textbox


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR