faire une boucle correcte... grand débutant

faire une boucle correcte... grand débutant - VB/VBA/VBS - Programmation

Marsh Posté le 31-03-2007 à 21:03:50    

Bonsoir,
 
Je suis un (très) grand débutant en VB, et malgré l'aide de VS2005, je n'arrive pas a faire une boucle correcte du style for next...
(je sais ça fait vraiment gros newbie  :D )
 
En fait je cherche à attribuer à la proprieté text de chaque bouton (button) la même valeur, en fait la valeur "" (vide), et ceci pour un nombre i de boutons.
Ca doit être très simple mais j'y arrive pas  :( Je débute
 
Pouvez-vous m'aider ?  :)

Reply

Marsh Posté le 31-03-2007 à 21:03:50   

Reply

Marsh Posté le 31-03-2007 à 21:56:00    

comment se nomment tes boutons ? est-ce un nom comme bouton1, bouton2, bouton3, ou alors cela varie complètement ?

Reply

Marsh Posté le 31-03-2007 à 23:01:23    

en supposant que ta userform s'appelle "userform1" et que tes controle soit des "CommandButton"
essaie cette methode
 
 
Dim ctl As Control
For Each ctl In UserForm1.Controls
  If TypeName(ctl) = "CommandButton" Then ctl.Caption = ""
Next ctl
 
testé en VBA

Reply

Marsh Posté le 01-04-2007 à 00:36:09    

déja, merci d'avoir répondu, c'est sympa  ;)

 
jpcheck a écrit :

comment se nomment tes boutons ? est-ce un nom comme bouton1, bouton2, bouton3, ou alors cela varie complètement ?

 

mes boutons se nomment button1, button2, button3 et ainsi de suite

 
daniel-12 a écrit :

en supposant que ta userform s'appelle "userform1" et que tes controle soit des "CommandButton"
essaie cette methode

 


Dim ctl As Control
For Each ctl In UserForm1.Controls
  If TypeName(ctl) = "CommandButton" Then ctl.Caption = ""
Next ctl

 

testé en VBA

 

en fait, il ne faudrait pas que cela s'applique a tous les boutons de la form, mais uniquement à un nombre défini à l'avance (par exemple 20). C'est pour ça que je pensais à une boucle for next.


Message édité par power-user le 01-04-2007 à 00:36:44
Reply

Marsh Posté le 01-04-2007 à 10:14:46    

essai un truc de ce genre  
 
for i = 5 to 10
button(i).caption = ""
next i
 
attention , ca ne marche pas tel quel
mais je pense que c'est la direction a prendre

Reply

Marsh Posté le 01-04-2007 à 12:33:52    

j'avais essayé de faire ça dès le début mais malheureusement ça ne marche pas. Dans l'éditeur, button est souligné  : 'Button' est un type et ne peut pas être utilisé en tant qu'expression.
par contre la propriété caption n'existe plus sous VB2005, c'est text à la place.

 

j'avais essayé d'ajouter le nombre (i) à une chaine de texte "button", mais je m'y prend mal aussi  :pt1cable:


Message édité par power-user le 01-04-2007 à 14:43:54
Reply

Marsh Posté le 02-04-2007 à 11:49:55    

up

Reply

Marsh Posté le 02-04-2007 à 13:54:16    

Sub test()
 
 
Dim A As Integer
Dim Mycmd As Control
For A = 1 To 20
    Set Mycmd = UserForm1.Controls.Add("Forms.CommandButton.1" )
    Mycmd.Caption = "Button" & A
Next A
 
UserForm1.Show
 
End Sub
 
Après il ne faut pas oublier d'incrémenter Mycmd.left et Mycmd.top en fonction des dimensions de ton userform.
 
 
(Solution totalement inspirée d'un code de Paul Hood...)

Reply

Sujets relatifs:

Leave a Replay

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