Incrémenter le nom d'une textbox

Incrémenter le nom d'une textbox - VB/VBA/VBS - Programmation

Marsh Posté le 08-06-2009 à 14:35:13    

Bonjour, j'ai une liste de textbox dans une userform dont la valeur est récupérée dans une feuille excel.
Je souhaiterais créer une boucle avec une variable i pour être quite de recopier X fois la même ligne.
 
Est ce que c'est possible d'incrémenter le TextBox avec la variable i ?
 
Livraison.TextBox1.Text = Sheets("Stock" ).Cells(12, 8)
Livraison.TextBox2.Text = Sheets("Stock" ).Cells(13, 8)
Livraison.TextBox3.Text = Sheets("Stock" ).Cells(14, 8)
Livraison.TextBox4.Text = Sheets("Stock" ).Cells(15, 8)
Livraison.TextBox5.Text = Sheets("Stock" ).Cells(16, 8)
 

Reply

Marsh Posté le 08-06-2009 à 14:35:13   

Reply

Marsh Posté le 08-06-2009 à 16:14:54    


Hi,
 

Code :
  1. For i = 1 To 5
  2. Livraison.Controls("Textbox" & i).Text = Sheets("Stock" ).Cells(11 + i, 8)
  3. Next i


 
Pas testé mais ça devrait pouvoir t'aider.


---------------
"That kind of information doesn't just grow on trees."
Reply

Marsh Posté le 08-06-2009 à 16:20:24    

Tu peux utiliser une boucle "For Each" et passer en revue tous tes contrôles, en faisant des tests pour voir par exemple si le nom commence par "TextBox" et en récupérant le numéro de ton TextBox.
 

Code :
  1. Dim lecontrole as Control
  2. Dim i as Integer
  3. For Each lecontrole in Controls
  4.   If Left(lecontrole.Name, 7) = "TextBox" Then
  5.     i = Right(lecontrole.Name, 1)
  6.     lecontrole.Text=Sheets("Stock" ).Cells(i + 11, 8)
  7.   End If
  8. next


Sinon, je sais qu'en Access on peut directement "composer" le nom d'un contrôle avec par exemple "Me.Controls("TextBox" & i)", i étant une variable. C'est pas très académique mais ça fonctionne. Après, reste à voir si c'est possible sur Excel.
 
EDIT : Rhaaa, le grillaid en beauté (mais qui répond à ma dernière question  :D )


Message édité par Turkleton le 08-06-2009 à 16:21:24

---------------
If you think it could look good, then I guess it should
Reply

Marsh Posté le 08-06-2009 à 16:49:34    

:D


---------------
"That kind of information doesn't just grow on trees."
Reply

Marsh Posté le 09-06-2009 à 09:29:22    

Ctplm a écrit :


Hi,
 

Code :
  1. For i = 1 To 5
  2. Livraison.Controls("Textbox" & i).Text = Sheets("Stock" ).Cells(11 + i, 8)
  3. Next i


 
Pas testé mais ça devrait pouvoir t'aider.


 
Super merci c'était exactement ce dont j'avais besoin  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed