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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Ajouter dynamiquement des controles ds un Userform

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajouter dynamiquement des controles ds un Userform

n°1178202
arnoisback
Posté le 17-08-2005 à 18:39:36  profilanswer
 

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

mood
Publicité
Posté le 17-08-2005 à 18:39:36  profilanswer
 

n°1179304
AlainTech
Pas trouvé? Cherche encore!
Posté le 19-08-2005 à 08:12:05  profilanswer
 

Si tu es dans Excel, inutile d'appeler un OLEObject.
 
Ce petit code fonctionne:

Code :
  1. Sub DoAddControls(iNumber As Integer)
  2.   Dim ctlNew As Control
  3.   Dim iI As Integer
  4.   For iI = 1 To iNumber
  5.     Set ctlNew = frmTest.Controls.Add("Forms.ComboBox.1" )
  6.     ' ctlNew.Left = xx
  7.     ' ctlNew.Top = yy
  8.     Set ctlNew = frmTest.Controls.Add("Forms.TextBox.1" )
  9.     ' ctlNew.Left = xx + nn
  10.     ' ctlNew.Top = yy
  11.   Next iI
  12. End Sub


Les contrôles sont biens créés mais ils sont tous superposés.
A toi de gérer les tailles et positions.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1182193
arnoisback
Posté le 23-08-2005 à 12:29:57  profilanswer
 

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!
 
 
 

n°1182387
guendalf
Posté le 23-08-2005 à 15:16:48  profilanswer
 

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.


---------------
Guendalf
n°1182815
AlainTech
Pas trouvé? Cherche encore!
Posté le 23-08-2005 à 22:39:50  profilanswer
 

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.


Message édité par AlainTech le 23-08-2005 à 22:40:14

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

  Ajouter dynamiquement des controles ds un Userform

 

Sujets relatifs
Vfw : Ajouter un flux audio en MP3génération d'images dynamiquement en php
Macro Excel --> Ajouter un caractèreAjouter 6 mois à la date courrante
Créer des variables dynamiquement en Javascript?récup évènements de usercontrol créés dynamiquement
ajouter des elements dans une page[Résolu] Changer "display: none" dynamiquement
Comment ajouter une class de balise P dans un code php ?Ouvrir un userform sans passer par excel !!
Plus de sujets relatifs à : Ajouter dynamiquement des controles ds un Userform


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)