Ajouter une CheckBox dans une UserForm avec une macro

Résolu
CarolineBouteloup Messages postés 24 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 20 juillet 2011 - 20 juil. 2011 à 18:23
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 21 juil. 2011 à 10:39
Bonjour,

Je souhaiterais pourvoir ajouter de manière permanente des CheckBox dans un Userform en VBA.

Une première macro va chercher des informations dans un fichier Excel et en fonction de ces informations, j'aimerais créer une liste de CheckBox dans une UserForm. L'idée est que lorsqu'on affiche cette Userform, les CheckBox sont déjà là et restent là lorsqu'on ferme la UserForm car j'ai besoin de récupérer leur valeur plus tard.

Pour l'instant j'ai ça :

Sub test()
Dim truc As Control
Set truc= UserForm1.Controls.Add("Forms.Checkbox.1")
End Sub

ça tourne mais il ne se passe rien sur ma UserForm1.

J'ai vu des codes qui créaient des CheckBox mais uniquement lorsque celle-ci était ouverte.

Merci d'avance pour votre aide !
Caroline
A voir également:

3 réponses

jordane45 Messages postés 37850 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2023 342
21 juil. 2011 à 10:11
Bonjour,

j'aimerais créer une liste de CheckBox dans une UserForm. L'idée est que lorsqu'on affiche cette Userform, les CheckBox sont déjà là


Tu souhaites "créer" tes ChecBox avant d'afficher ta forme ç'est bien ça ?
Si oui, tu peux très bien charger ta Form en mémoire sans l'afficher

'Pour la charger en mémoire
Load Userform1

' Puis pour l'afficher plus tard..
Userform1.Show

'et pour la cacher quand tu n'en as plus besoin
Userform1.Hide



Tu pourrais aussi générer tes CheckBox lors de l'initialisation de ton Usf.
Private Sub UserForm_Initialize()

'ici mettre le code pour la création des userforms
'...

End Sub




restent là lorsqu'on ferme la UserForm car j'ai besoin de récupérer leur valeur plus tard.


Si tu laisses ta form en mémoire (voir premier point) tes données sont toujours accessibles
Puis pour "killer" ta forme tu peux utiliser l'instruction
Unload UserForm1


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI

PS:Merci d'utiliser les balises de
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
20 juil. 2011 à 19:02
B"é !
Où as-tu mis ton code ?
Car je viens de faire celà à l'aide d'un bouton de commande sur un userform
Private Sub CommandButton1_Click()

  Dim truc As Control
  Set truc = UserForm1.Controls.Add("Forms.Checkbox.1")
  truc.Move 50, 50

End Sub


et j'ai bien une checkbox placée à 50 points de la gauche et 50 du haut !
____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
21 juil. 2011 à 10:39
et restent là lorsqu'on ferme la UserForm car j'ai besoin de récupérer leur valeur plus tard.

et pour cette partie-là, il va te falloir nécessairement mémoriser (car perdues à la fermeture de l'UserForm) quelque-part toutes les informations nécessaires (noms, emplacements, etc..).
Et cela peut se faire :
- soit dans des cellules d'une feuille de ton classeur
- soit dans un fichier .ini
- soit dans un fichier texte platr
- soit dans ta base de registre

A ton choix, étant entendu qu'à chaque ouverture de ton userform, il te faudra récupérer ces informations pour recréer tex texboxes à l'identique.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
Rejoignez-nous