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
7393
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
7393
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
7393
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