Ajout dynamique de controles sur un UserForm
Résolu
Polux31
Messages postés
6917
Date d'inscription
Statut
Membre
Dernière intervention
-
Titigre -
Titigre -
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
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
A voir également:
- Vba userform controls
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
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)
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)
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)
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)
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si t as trouve la solution a ton probleme est ce que tu pourrais l ecrire. j ai le meme probleme.
merci
merci
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
Je peux fournir le fichier excel mais faut m'expliker comment.
Merci par avance
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
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 :
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