Ajouter dynamiquement des controles ds un Userform - VB/VBA/VBS - Programmation
Marsh Posté le 19-08-2005 à 08:12:05
Si tu es dans Excel, inutile d'appeler un OLEObject.
Ce petit code fonctionne:
Code :
|
Les contrôles sont biens créés mais ils sont tous superposés.
A toi de gérer les tailles et positions.
Marsh Posté le 23-08-2005 à 12:29:57
Ok, merci, mais ce petit code ne fctionne pas super..
dc je reprend:
j ai une feuille "Welcome" avec une case a remplir: 1 entier de 1 à 10. puis, un bouton "Load". Le click sur Load doit faire apparaitre un UserForm avec le nbre rentré de Combox.
Le pb vient du fait que le morco de code doit etre écris dans la macro UserFormOnActivate et il n est pas reconnu...
Voici mon code:
ds la feuille "Welcome"
Sub Click()
UserForm1.Show
End Sub
ds le Userform
Private Sub UserForm_Activate()
Dim MyControl As Controls
Set MyControl = UserForm1.Controls.Add("Forms.ComboBox.1" )
Set MyControl = UserForm1.Controls.Add("Forms.TextBox.1" )
End Sub
Si quelqu un a une idée..ca serait cool!
Marsh Posté le 23-08-2005 à 15:16:48
Oui, tu ne peux ajouter des composants a ta userform que pendant son chargement (donc a la methode Initialize et non Activate)
Car ca n'a aucun sens de modifier ta userform une fois qu'elle est charge en memoire.
Je ne suis pas sur de ce que j'avance (je n'ai pas verifié), mais ca me parait assez logique.
Marsh Posté le 23-08-2005 à 22:39:50
Quand tu dis qu'il ne fonctionne pas super, tu ne dis pas ce qui ne va pas.
J'ai testé le code que je t'ai donné et il fonctionne très bien.
Il ne reste plus qu'à gérer la position des contrôles créés.
Par contre,
Dim MyControl As Controls |
risque de ne pas bien fonctionner du tout.
Il faut supprimer le s de Control.
Tu n'ajoutes qu'un contrôle à la fois.
Marsh Posté le 17-08-2005 à 18:39:36
Bonjour,
j souhaite ajouter des combobox et des textbox dans un userform mais de facon dynamique. Dans mon projet.xls, j ai une feuille "sheet1" et un bouton "bouton1" qui en clickant dessus me demande de rentrer un nb entre 1 et 10, et ensuite ouvre un userform "userform1" qui doit contenir le nbre entré de combobox et de textbox. Mon pb est que la cmd:
"OLEObj = ws.OLEObjects.Add(classtype:="Forms.CommandButton.1", Left:=362, Top:=23, Width:=87, Height:=20)
"
ne fonctionne pas et me renvoie "Erreur1004, impossible d insérer un objet"...
Si quelqu un pouvait m aider...