Ajout dynamique de controles sur un UserForm

Résolu/Fermé
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 30 nov. 2007 à 15:31
 Titigre - 2 juil. 2012 à 15:30
Bonjour,

Une fois n'est pas coutume ..

J'ai besoin d'une aide concernant VBA et l'utilisation des UserForm.

Etait-il possible de créer dynamiquement des contrôles sur un UserForm ?

Voilà, j'ai plusieurs controles sur un UserForm qui est un masque de saisie (textbox et checkbox) pour Nom, Prenom, Tel ...
Je veux qu'il apparaisse autant de lignes de saisie que de personne à renseigner. Sachant que la liste des personnes se trouve sur une feuille Excel. Je ne sais pas si c'est clair ... :os

C'est possible en VB6 par le code (exemple sur https://vb.developpez.com/faq/?filtre=OOOOOOOOOOOOOOOOOOOOOO chapitre 3.1), mais ça ne marche pas en VBA ...

Merci de votre aide ...

;o)

Polux

8 réponses

Bonjour

Dim MaTextBox As Object
Set MaTextBox = UserForm1.Controls.Add("Forms.TextBox.1")
MaTextBox.Text = "tutu"

("Forms.TextBox.1" est une constante indiquée dans l'aide de VB sur la méthode Add)
4
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
8 juil. 2009 à 12:21
Bonjour,

La solution est ici : https://silkyroad.developpez.com/VBA/VisualBasicEditor/#LV.

La bonne méthode est de gérer les évènements associés aux contrôles ajoutés dynamiquement avec un module de classe.

Bye bye, bonnes vacances et peut être à un jour prochain.

;o)
3
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
1 déc. 2007 à 13:26
Bonjour,

Merci le père pour ta réponse, je vais tester ça en espérant que ça marche ...

;o)

Polux
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
3 déc. 2007 à 12:35
Bonjour le père,

Merci pour ton aide, ça marche très bien ... j'ai maintenant un autre problème.
J'ai créé dynamiquement des CommandButton, mon problème est d'affecter un évènement sur le click du bouton créer. En résumé, comment récupérer les différents évènements (click, dblclick, Keypress ... etc) d'un contrôle créé dynamiquement ?

Merci encore pour ton aide.

;o)

Polux
0
Bonjour

J'ai le meme probleme, je ne parviens pas à affecter un evenement ( _click.....) à un bouton créé de manière dynamique
As tu trouve une solution ?

Merci de ton aide
Bertr64
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
klmstyleproduction
16 févr. 2008 à 05:45
si t as trouve la solution a ton probleme est ce que tu pourrais l ecrire. j ai le meme probleme.

merci
0
J'ai le meme probleme ca serait bien qu'un petit genie reponde a ce sujet.
Je peux fournir le fichier excel mais faut m'expliker comment.

Merci par avance
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
8 juil. 2009 à 15:36
met ton post en résolu !!!

et merci pour vos réponses :)
0
Salut moi j'ai un probleme, quand je créé mes contrôles dynamiquement après fermeture de la form je trouve pas les contrôles ajoutés, merci de votre aide
0
Si tu fait un Hide de ton user form c'est normal, il est caché mais toujours en mémoire.
Pour un userform il faudrait faire :
load MonForm 'Charge le formulaire en mémoire (évènement initialize)
MonForm.show 'Affiche le userform à l'écran
...
MonForm .hide 'Cache à l'écran (équivalent à un visible = false)
unload MonForm 'Vide la mémoire du formulaire
0