OVH Cloud OVH Cloud

Passage de paramètre (et récup) avec un userform

2 réponses
Avatar
Gilles GODART
Bonsoir,

Je me decide à laisser un post car je pense qu'on peut faire mieux que ce
que je fais !!!

J'ai un petit userform (utilitaire) qui me permet de définir une date.
L'idée est que depuis une cellule de feuille (mais aussi depuis un autre
userform), je l'appelle ; je récupère la date (s'il y en a une) ; je la
change ; puis je la réinsère.

Actuellement, je place cette "variable intermédiaire" dans une feuille du
classeur que je rends invisible car je ne sais faire que ça.

Comment puis-je "passer" un paramètre au userform et le restituer sans
intermédiaire (!!) afin de rendre ce userform 'autonome' et générique
(utilisable dans plusieurs applications). La commande 'Userform.Show' ne me
laisse pas passer de paramètre.

Merci de votre aide

Gilles

2 réponses

Avatar
François Picalausa
Bonjour/soir,

Tu peux stoquer la date dans un fichier (Open "filename" for ...). Via
GetSetting/SaveSetting, tu peux faire la même chose dans le registre (APIs
pour définir exactement l'endroit de stoquage.. pour cela voir la faq, en
signature).
Si tu en as besoin dans tout Excel mais que la valeur peut être perdue entre
deux utilisations de Excel, tu peux définir une variable globale (Public
Mavariable As Date dans un module standard).

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Gilles GODART" a écrit dans le message de
news:3f9d683c$0$231$
Bonsoir,

Je me decide à laisser un post car je pense qu'on peut faire mieux
que ce que je fais !!!

J'ai un petit userform (utilitaire) qui me permet de définir une date.
L'idée est que depuis une cellule de feuille (mais aussi depuis un
autre userform), je l'appelle ; je récupère la date (s'il y en a une)
; je la change ; puis je la réinsère.

Actuellement, je place cette "variable intermédiaire" dans une
feuille du classeur que je rends invisible car je ne sais faire que
ça.

Comment puis-je "passer" un paramètre au userform et le restituer sans
intermédiaire (!!) afin de rendre ce userform 'autonome' et générique
(utilisable dans plusieurs applications). La commande 'Userform.Show'
ne me laisse pas passer de paramètre.

Merci de votre aide

Gilles


Avatar
Olivier Besson
Bonjour,

Dans ton UserForm tu rajoute

Private mDate as Date

Public Property Get LaDate() as Date
LaDate = mDate
End Property
Public Property Let LaDate(Byval Valeur as Date)
mDate = Valeur
MonControleQuiAfficheLaDate = mDate
End Property

Lorsque l'utilisateur change la date dans le controle ou lorsque il clique
sur OK tu fais :
mDate = MonControleQuiAfficheLaDate

Attention : Le Form ne doit pas s'unloader par lui même (voir ci dessous)


Et depuis l'exterieur :
Dim f as MonUserForm
Set f = New MonUserForm
Load f
f.Date = Now() 'Initialisation de la date affichée
f.Show vbModal 'Bloque l'applic tant que le user form est affiché
Debut.Print f.Date & " = Nouvelle Date" 'Récupération de la date du form
Unload f
Set f = Nothing





--

Olivier Besson
Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
(Je ne lis pas mes mails frequement)
To write me, replace <xx> part of my address by <com> (i don't read my mails
very frequently).



"Gilles GODART" a écrit dans le message de news:
3f9d683c$0$231$
Bonsoir,

Je me decide à laisser un post car je pense qu'on peut faire mieux que ce
que je fais !!!

J'ai un petit userform (utilitaire) qui me permet de définir une date.
L'idée est que depuis une cellule de feuille (mais aussi depuis un autre
userform), je l'appelle ; je récupère la date (s'il y en a une) ; je la
change ; puis je la réinsère.

Actuellement, je place cette "variable intermédiaire" dans une feuille du
classeur que je rends invisible car je ne sais faire que ça.

Comment puis-je "passer" un paramètre au userform et le restituer sans
intermédiaire (!!) afin de rendre ce userform 'autonome' et générique
(utilisable dans plusieurs applications). La commande 'Userform.Show' ne


me
laisse pas passer de paramètre.

Merci de votre aide

Gilles