Modification durable de control d'un userform sous excel

Résolu
y734p26 Messages postés 3 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 25 novembre 2008 - 25 nov. 2008 à 18:49
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Derniè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.

6 réponses

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

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

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
26 nov. 2008 à 00:11
C'est cool.

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

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

@+: Ju£i€n
Pensez: Réponse acceptée
0
Rejoignez-nous