faire une boucle correcte... grand débutant - VB/VBA/VBS - Programmation
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 ?
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
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"
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.
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
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
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...)
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 )
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 ?