Modification durable de control d'un userform sous excel [Résolu]

Signaler
Messages postés
3
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2008
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
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.

6 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
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).

extrait trouver sur cette page:
VBA Express : Excel - Create a temporary UserForm to show the ...

'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"

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
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 :

Me.label1.Caption = WorkSheets("preferences").Range("label").Value

UserForm1.label1.Caption = WorkSheets("preferences").Range("label").Value

J'espère avoir été suffisamment clair et avoir répondu à ta question

Amicalement
Messages postés
3
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2008

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.
Messages postés
3
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2008

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
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
C'est cool.

Julien, comme toujours, ta réponse me laisse admiratif.
y734p26Je retourne à mes macros. Bonne pêche, alors...

Amicalement
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
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

@+: Ju£i€n
Pensez: Réponse acceptée