CarolineBouteloup
Messages postés24Date d'inscriptionlundi 12 avril 2010StatutMembreDernière intervention20 juillet 2011
-
20 juil. 2011 à 18:23
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 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.
jordane45
Messages postés37850Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention30 novembre 2023342 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 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