Ajouter une CheckBox dans une UserForm avec une macro [Résolu]

Messages postés
24
Date d'inscription
lundi 12 avril 2010
Dernière intervention
20 juillet 2011
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
23537
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
7 décembre 2018
3
Merci
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

Merci jordane45 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de jordane45
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.