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

CarolineBouteloup 24 Messages postés lundi 12 avril 2010Date d'inscription 20 juillet 2011 Dernière intervention - 20 juil. 2011 à 18:23 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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 

3 réponses

Répondre au sujet
jordane45 20581 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 23 avril 2018 Dernière intervention - 21 juil. 2011 à 10:11
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jordane45
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 20 juil. 2011 à 19:02
0
Utile
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 21 juil. 2011 à 10:39
0
Utile
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.