y734p26
Messages postés3Date d'inscriptionmardi 25 novembre 2008StatutMembreDernière intervention25 novembre 2008
-
25 nov. 2008 à 18:49
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
26 nov. 2008 à 09:22
Bonjour,
Je débute en VBA sous excel.
Je souhaiterai definir dans un userform des paramètres de règlages (préférences) et pouvoir les modifier de façon durable à la fermeture du userform.
J'ai trouvé sur les forums des pistes pour modifier les controls du userform de façon durable
avec une instruction du genre "ThisWorkbook.VBProject.VBComponents(i).Properties("Caption")= "toto".
J'ai essayé avec un userform1 et un label1 avec l'instruction suivante :
"ThisWorkbook.VBProject.VBComponents("userform1").Controls("labels1").Properties("Caption")= "nouvelle valeur".
Malheureusement cela ne fonctionne pas et me renvoie un message du type la méthode "VBproject a échoué".
Je remercie toute ame charitable que voudra bien memontrer comment on peut réaliser ce tour de magie.
Merci d'avance.
A voir également:
Modification durable de control d'un userform sous excel
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 25 nov. 2008 à 23:12
Salut,
>[../auteur/Y734P26/1535434.aspx y734p26] : Suffit de rendre la feuille invisible
Sinon, il me semble que pour accéder à tout ce qui est VBProject, tu doives modifier le niveau de sécurité des macros du classeur (ou qqch dans le genre).
'This code requires that the user permit programmatical access to the VBA Project in later versions of Excel
'to do this, from the normal Excel menu
'Tools - Macro - Security
'tab to Trusted Publishers
'tick the checkbox next to "Trust access to the Visual Basic Project"
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 25 nov. 2008 à 20:24
Bonjour y734p26
Est-il vraiment indispensable que tes modifications soient enregistrées ? Tu peux - avantageusement selon moi - enregistrer tes préférences dans une feuille de calcul réservée à cet usage, et initialiser dynamiquement les contrôles de ton formulaire lors de l'exécution de la macro UserForm_Initialize.
Peux tu voir si l'une des instructions suivantes (que je n'ai pas vérifiées) répond à ta question ?
Me.label1.Caption = "nouvelle valeur" (instruction à placer dans la macro UserForm_Initialize() du formulaire)
UserForm1.label1.Caption = "nouvelle valeur" (instruction à placer dans un module ou dans une feuille de calcul)
Si tu mémorises "nouvelle valeur" dans une cellule nommée label d'une feuille de calcul nommée preferences, les instructions ci-dessus deviennent :
y734p26
Messages postés3Date d'inscriptionmardi 25 novembre 2008StatutMembreDernière intervention25 novembre 2008 25 nov. 2008 à 22:31
Merci Orohena,
La réponse est très claire.
J'ai effectivement pensé à cette solution, mais je voulez savoir si s'était possible de modifier le userform durablement.
L'intérêt pour moi est purement 'esthétique', car ainsi les informations sont uniquement contenus dans le userform et ne sont pas visibles des utilisateurs du classeur.
y734p26
Messages postés3Date d'inscriptionmardi 25 novembre 2008StatutMembreDernière intervention25 novembre 2008 25 nov. 2008 à 23:46
Merci Julien,
C'est ce que je cherchais.
Merci à Orohena et Julien pour vos réponses rapides et efficaces.
Je retourne à mes macros ...
Réponse acceptée
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 26 nov. 2008 à 09:22
Re,
> [../auteur/Y734P26/1535434.aspx y734p26]: Y a pas de quoi content d'avoir pu aider.
> [../auteur/OROHENA/1483575.aspx Orohena]: Arrête je vais rougir