OVH Cloud OVH Cloud

Ne pas réinitialiser un USF

18 réponses
Avatar
François
Bonjour à tous,

Je reviens vers vous avec un pb que je n'ai finalement par réussi à
contourner.
Pascal Engelmajer a tenté de m'aider , mais je n'étais sans doute pas assez
clair.
Exemple simplifié :

J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec valeurs
A,B,C,D,E
- un bouton sur cette feuille créé avec barre d'outils formulaires qui
appelle un Userform

Ce Userform contient une ListBox reliée à mon Champ nommé Zn1
et un bouton OK .

Le pb est que si je clique sur le bouton de ma feuille de calcul, cela
actionne automatiquement
le Private Sub UserForm_Initialize() alors que le code est "show" et non
"Load"
et moi je voudrais retrouver à l'affichage de mon UserForm la valeur
précédemment
choisie et non la valeur d'initialisation.
XL97 - SR2

Ci-dessous le code du module standard de mon bouton et le code du module USF
--- Module1 ----
Sub ouvrirUSF()
UserForm1.Show
End Sub

--- UserForm1 ---
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
UserForm1.Hide
End Sub

Private Sub UserForm_Initialize()
ListBox1.Value = Sheets("Feuil1").Range("B6").Value
End Sub
-----------------
Voilà, au besoin mon fichier pèse 20Ko
Je suis très embêté ;-(

Merci par avance et très bonne journée.
François

8 réponses

1 2
Avatar
François
Bonjour Pascal,

L'objet était : MPFE
Je l'ai envoyé à

en enlevant juste le _spam et je n'ai pas eu de delivrey failure
bien à toi,
François
-----------------

"Pascal Engelmajer" a écrit dans le
message news: ekH$
Salut,
je n'en ai pas souvenir.
je filtre les mail l'objet etait-il explicite ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:
uD236B#
Bonjour Pascal,

as-tu reçu mon fichier ?

très cordialement,
François
------

"Pascal Engelmajer" a écrit dans le
message news:
Salut François,
je veux bien regarder ton classeur...
car je ne comprends pas ce qui ne marche pas...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:
OZt4#
Je suis désolé de t'importuner par ma maladresse.
J'ai bien lu ta première réponse.
(J'avais remis le load à tout hasard car je n'arrivais pas à mes
fins..)



Par contre j'ai bien déclaré ma variable dans un module standard
c'est celui qui contient la macro de mon bouton de feuille.
et quand je trace par F8, que je rappelle mon USF avec mon bouton
de feuille, ma variable est vide quand j'arrive dans
Private Sub UserForm_Initialize
Pourrais-je t'envoyer mon classeur (20k) ?

bien à toi,
François
---------------------

"michdenis" a écrit dans le message news:

Bonjour François,

Je t'invite à relire ma première réponse ....


Pourquoi utiliser la méthode "Load" suivi de la méthode "Show"
Dans ce cas précis, la méthode Show peut faire le travail
Il me semble t'avoir donné une explication à ma réponse précédente

Comme cette procédure à l'ouverture du classeur, si tu ne désires
pas




l'afficher immédiatement à l'écran, enlève la ligne de
code :
UserForm1.Show . Cette commande se retrouve dans la macro de ton
bouton



sur la feuille.

'--------------------
Sub ouvrirUSF()
VLB = "A"
Load UserForm1
UserForm1.Show
End Sub
'--------------------


"ma variable Public n'a pas la porté suffisante pour être
conservée





à
l'affichage du USF.."

Une variable public peut être appelé à partir de n'importe quel
module




de
ton classeur et elle va conserver sa valeur aussi
longtemps que le classeur sera ouvert. Pour ce faire, il faut la
déclarer


dans un MODULE STANDARD.



Salutations!










"François" a écrit dans le message de
news:

Bonjour michdenis,

Je te remercie de ton aide.
J'ai essayé .. j'ai échoué

Je te copie ci-dessous:
Le code du Workbook open = qui présélectionne ma listbox à "A"
Le code du module USF
Le code du module standard
Il me semble que le fait de rappeler l'USF à partir d'un module
standard



provoque un déchargement de la mémoire et ma variable Public n'a
pas





la porté suffisante pour être conservée à l'affichage du USF..

Private Sub Workbook_Open()
ouvrirUSF
End Sub
------------
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
VLB = ListBox1.Value
UserForm1.Hide
End Sub
Private Sub UserForm_Initialize()
ListBox1.Value = VLB
End Sub
-------------
Sub ouvrirUSF()
VLB = "A"
Load UserForm1
UserForm1.Show
End Sub

Sub AfficherUSF() ' attaché à mon bouton de feuille
UserForm1.Show
End Sub

Merci encore de ton aide,
François
--------------------------------------

"michdenis" a écrit dans le message news:
#
Bonjour François,

Habituellement, on utilise la commande "Load" (au moment de
l'ouverture



d'un classeur) pour charger un formulaire en mémoire
(sans l'afficher à l'écran) afin de donner à l'usager
"l'impression"





de
la
rapidité du programme au moment opportun. Les
commandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisible


le formulaire (sans que ce dernier soit déchargé de
la mémoire vive. Cependant, si le formulaire n'est pas en
mémoire






vive
au
moment de l'appel de la méthode "Show", il va de
soi que le formulaire devra se charger en mémoire("Load") avant
de






s'afficher à l'écran. C'est seulement au moment où le
formulaire se charge en mémoire vive que l'événement
Private Sub UserForm_Initialize() est exécuté.

Si tu désires que ton listbox affiche une valeur différente
selon






le
moment de l'appel,

A ) définit dans un module standard, une variable "Public" comme
ceci




:
Public ValeurListBox as String 'adapte le type de
variable






selon
ce qu'elle doit contenir

B ) Tu tiens à jour le contenu de cette variable ...

C )
Private Sub UserForm_Initialize()
ListBox1.Value = ValeurListBox
End Sub


Salutations!



"François" a écrit dans le message de
news:

Bonjour à tous,

Je reviens vers vous avec un pb que je n'ai finalement par
réussi






à
contourner.
Pascal Engelmajer a tenté de m'aider , mais je n'étais sans
doute






pas
assez
clair.
Exemple simplifié :

J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11)
avec






valeurs
A,B,C,D,E
- un bouton sur cette feuille créé avec barre d'outils
formulaires






qui
appelle un Userform

Ce Userform contient une ListBox reliée à mon Champ nommé Zn1
et un bouton OK .

Le pb est que si je clique sur le bouton de ma feuille de
calcul,






cela
actionne automatiquement
le Private Sub UserForm_Initialize() alors que le code est
"show"






et
non
"Load"
et moi je voudrais retrouver à l'affichage de mon UserForm la
valeur





précédemment
choisie et non la valeur d'initialisation.
XL97 - SR2

Ci-dessous le code du module standard de mon bouton et le code
du






module
USF
--- Module1 ----
Sub ouvrirUSF()
UserForm1.Show
End Sub

--- UserForm1 ---
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
UserForm1.Hide
End Sub

Private Sub UserForm_Initialize()
ListBox1.Value = Sheets("Feuil1").Range("B6").Value
End Sub
-----------------
Voilà, au besoin mon fichier pèse 20Ko
Je suis très embêté ;-(

Merci par avance et très bonne journée.
François


























Avatar
Pascal Engelmajer
Salut François,
vu les spams qui circulent j'ai du le détruire.
tu peux me le renvoyer.
je ferai attention...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:

Bonjour Pascal,

L'objet était : MPFE
Je l'ai envoyé à

en enlevant juste le _spam et je n'ai pas eu de delivrey failure
bien à toi,
François
-----------------

"Pascal Engelmajer" a écrit dans le
message news: ekH$
Salut,
je n'en ai pas souvenir.
je filtre les mail l'objet etait-il explicite ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:
uD236B#
Bonjour Pascal,

as-tu reçu mon fichier ?

très cordialement,
François
------

"Pascal Engelmajer" a écrit dans
le



message news:
Salut François,
je veux bien regarder ton classeur...
car je ne comprends pas ce qui ne marche pas...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:
OZt4#
Je suis désolé de t'importuner par ma maladresse.
J'ai bien lu ta première réponse.
(J'avais remis le load à tout hasard car je n'arrivais pas à mes
fins..)



Par contre j'ai bien déclaré ma variable dans un module standard
c'est celui qui contient la macro de mon bouton de feuille.
et quand je trace par F8, que je rappelle mon USF avec mon bouton
de feuille, ma variable est vide quand j'arrive dans
Private Sub UserForm_Initialize
Pourrais-je t'envoyer mon classeur (20k) ?

bien à toi,
François
---------------------

"michdenis" a écrit dans le message news:

Bonjour François,

Je t'invite à relire ma première réponse ....


Pourquoi utiliser la méthode "Load" suivi de la méthode "Show"
Dans ce cas précis, la méthode Show peut faire le travail
Il me semble t'avoir donné une explication à ma réponse
précédente







Comme cette procédure à l'ouverture du classeur, si tu ne
désires






pas
l'afficher immédiatement à l'écran, enlève la ligne de
code :
UserForm1.Show . Cette commande se retrouve dans la macro de ton
bouton



sur la feuille.

'--------------------
Sub ouvrirUSF()
VLB = "A"
Load UserForm1
UserForm1.Show
End Sub
'--------------------


"ma variable Public n'a pas la porté suffisante pour être
conservée





à
l'affichage du USF.."

Une variable public peut être appelé à partir de n'importe quel
module




de
ton classeur et elle va conserver sa valeur aussi
longtemps que le classeur sera ouvert. Pour ce faire, il faut la
déclarer


dans un MODULE STANDARD.



Salutations!










"François" a écrit dans le message de
news:

Bonjour michdenis,

Je te remercie de ton aide.
J'ai essayé .. j'ai échoué

Je te copie ci-dessous:
Le code du Workbook open = qui présélectionne ma listbox à "A"
Le code du module USF
Le code du module standard
Il me semble que le fait de rappeler l'USF à partir d'un module
standard



provoque un déchargement de la mémoire et ma variable Public n'a
pas





la porté suffisante pour être conservée à l'affichage du USF..

Private Sub Workbook_Open()
ouvrirUSF
End Sub
------------
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
VLB = ListBox1.Value
UserForm1.Hide
End Sub
Private Sub UserForm_Initialize()
ListBox1.Value = VLB
End Sub
-------------
Sub ouvrirUSF()
VLB = "A"
Load UserForm1
UserForm1.Show
End Sub

Sub AfficherUSF() ' attaché à mon bouton de feuille
UserForm1.Show
End Sub

Merci encore de ton aide,
François
--------------------------------------

"michdenis" a écrit dans le message
news:






#
Bonjour François,

Habituellement, on utilise la commande "Load" (au moment de
l'ouverture



d'un classeur) pour charger un formulaire en mémoire
(sans l'afficher à l'écran) afin de donner à l'usager
"l'impression"





de
la
rapidité du programme au moment opportun. Les
commandes "Show" et "Hide" sont utilisés pour rendre visible
ou







invisible
le formulaire (sans que ce dernier soit déchargé de
la mémoire vive. Cependant, si le formulaire n'est pas en
mémoire






vive
au
moment de l'appel de la méthode "Show", il va de
soi que le formulaire devra se charger en mémoire("Load")
avant







de
s'afficher à l'écran. C'est seulement au moment où le
formulaire se charge en mémoire vive que l'événement
Private Sub UserForm_Initialize() est exécuté.

Si tu désires que ton listbox affiche une valeur différente
selon






le
moment de l'appel,

A ) définit dans un module standard, une variable "Public"
comme







ceci
:
Public ValeurListBox as String 'adapte le type de
variable






selon
ce qu'elle doit contenir

B ) Tu tiens à jour le contenu de cette variable ...

C )
Private Sub UserForm_Initialize()
ListBox1.Value = ValeurListBox
End Sub


Salutations!



"François" a écrit dans le message de
news:

Bonjour à tous,

Je reviens vers vous avec un pb que je n'ai finalement par
réussi






à
contourner.
Pascal Engelmajer a tenté de m'aider , mais je n'étais sans
doute






pas
assez
clair.
Exemple simplifié :

J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11)
avec






valeurs
A,B,C,D,E
- un bouton sur cette feuille créé avec barre d'outils
formulaires






qui
appelle un Userform

Ce Userform contient une ListBox reliée à mon Champ nommé Zn1
et un bouton OK .

Le pb est que si je clique sur le bouton de ma feuille de
calcul,






cela
actionne automatiquement
le Private Sub UserForm_Initialize() alors que le code est
"show"






et
non
"Load"
et moi je voudrais retrouver à l'affichage de mon UserForm la
valeur





précédemment
choisie et non la valeur d'initialisation.
XL97 - SR2

Ci-dessous le code du module standard de mon bouton et le code
du






module
USF
--- Module1 ----
Sub ouvrirUSF()
UserForm1.Show
End Sub

--- UserForm1 ---
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
UserForm1.Hide
End Sub

Private Sub UserForm_Initialize()
ListBox1.Value = Sheets("Feuil1").Range("B6").Value
End Sub
-----------------
Voilà, au besoin mon fichier pèse 20Ko
Je suis très embêté ;-(

Merci par avance et très bonne journée.
François






























Avatar
François
Bonjour Pascal,

C'est reparti !
Bonne journée,
François
----------------------
"Pascal Engelmajer" a écrit dans le
message news:
Salut François,
vu les spams qui circulent j'ai du le détruire.
tu peux me le renvoyer.
je ferai attention...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:

Bonjour Pascal,

L'objet était : MPFE
Je l'ai envoyé à

en enlevant juste le _spam et je n'ai pas eu de delivrey failure
bien à toi,
François
-----------------

"Pascal Engelmajer" a écrit dans le
message news: ekH$
Salut,
je n'en ai pas souvenir.
je filtre les mail l'objet etait-il explicite ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:
uD236B#
Bonjour Pascal,

as-tu reçu mon fichier ?

très cordialement,
François
------

"Pascal Engelmajer" a écrit dans
le



message news:
Salut François,
je veux bien regarder ton classeur...
car je ne comprends pas ce qui ne marche pas...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:
OZt4#
Je suis désolé de t'importuner par ma maladresse.
J'ai bien lu ta première réponse.
(J'avais remis le load à tout hasard car je n'arrivais pas à mes
fins..)



Par contre j'ai bien déclaré ma variable dans un module standard
c'est celui qui contient la macro de mon bouton de feuille.
et quand je trace par F8, que je rappelle mon USF avec mon
bouton






de feuille, ma variable est vide quand j'arrive dans
Private Sub UserForm_Initialize
Pourrais-je t'envoyer mon classeur (20k) ?

bien à toi,
François
---------------------

"michdenis" a écrit dans le message
news:







Bonjour François,

Je t'invite à relire ma première réponse ....


Pourquoi utiliser la méthode "Load" suivi de la méthode "Show"
Dans ce cas précis, la méthode Show peut faire le travail
Il me semble t'avoir donné une explication à ma réponse
précédente







Comme cette procédure à l'ouverture du classeur, si tu ne
désires






pas
l'afficher immédiatement à l'écran, enlève la ligne de
code :
UserForm1.Show . Cette commande se retrouve dans la macro de
ton







bouton
sur la feuille.

'--------------------
Sub ouvrirUSF()
VLB = "A"
Load UserForm1
UserForm1.Show
End Sub
'--------------------


"ma variable Public n'a pas la porté suffisante pour être
conservée





à
l'affichage du USF.."

Une variable public peut être appelé à partir de n'importe
quel







module
de
ton classeur et elle va conserver sa valeur aussi
longtemps que le classeur sera ouvert. Pour ce faire, il faut
la







déclarer
dans un MODULE STANDARD.



Salutations!










"François" a écrit dans le message de
news:

Bonjour michdenis,

Je te remercie de ton aide.
J'ai essayé .. j'ai échoué

Je te copie ci-dessous:
Le code du Workbook open = qui présélectionne ma listbox à "A"
Le code du module USF
Le code du module standard
Il me semble que le fait de rappeler l'USF à partir d'un
module







standard
provoque un déchargement de la mémoire et ma variable Public
n'a







pas
la porté suffisante pour être conservée à l'affichage du USF..

Private Sub Workbook_Open()
ouvrirUSF
End Sub
------------
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
VLB = ListBox1.Value
UserForm1.Hide
End Sub
Private Sub UserForm_Initialize()
ListBox1.Value = VLB
End Sub
-------------
Sub ouvrirUSF()
VLB = "A"
Load UserForm1
UserForm1.Show
End Sub

Sub AfficherUSF() ' attaché à mon bouton de feuille
UserForm1.Show
End Sub

Merci encore de ton aide,
François
--------------------------------------

"michdenis" a écrit dans le message
news:






#
Bonjour François,

Habituellement, on utilise la commande "Load" (au moment de
l'ouverture



d'un classeur) pour charger un formulaire en mémoire
(sans l'afficher à l'écran) afin de donner à l'usager
"l'impression"





de
la
rapidité du programme au moment opportun. Les
commandes "Show" et "Hide" sont utilisés pour rendre visible
ou







invisible
le formulaire (sans que ce dernier soit déchargé de
la mémoire vive. Cependant, si le formulaire n'est pas en
mémoire






vive
au
moment de l'appel de la méthode "Show", il va de
soi que le formulaire devra se charger en mémoire("Load")
avant







de
s'afficher à l'écran. C'est seulement au moment où le
formulaire se charge en mémoire vive que l'événement
Private Sub UserForm_Initialize() est exécuté.

Si tu désires que ton listbox affiche une valeur différente
selon






le
moment de l'appel,

A ) définit dans un module standard, une variable "Public"
comme







ceci
:
Public ValeurListBox as String 'adapte le type de
variable






selon
ce qu'elle doit contenir

B ) Tu tiens à jour le contenu de cette variable ...

C )
Private Sub UserForm_Initialize()
ListBox1.Value = ValeurListBox
End Sub


Salutations!



"François" a écrit dans le message de
news:

Bonjour à tous,

Je reviens vers vous avec un pb que je n'ai finalement par
réussi






à
contourner.
Pascal Engelmajer a tenté de m'aider , mais je n'étais sans
doute






pas
assez
clair.
Exemple simplifié :

J'ai une feuille de calcul avec : un champ nommé Zn1
(B6:B11)








avec
valeurs
A,B,C,D,E
- un bouton sur cette feuille créé avec barre d'outils
formulaires






qui
appelle un Userform

Ce Userform contient une ListBox reliée à mon Champ nommé
Zn1








et un bouton OK .

Le pb est que si je clique sur le bouton de ma feuille de
calcul,






cela
actionne automatiquement
le Private Sub UserForm_Initialize() alors que le code est
"show"






et
non
"Load"
et moi je voudrais retrouver à l'affichage de mon UserForm
la








valeur
précédemment
choisie et non la valeur d'initialisation.
XL97 - SR2

Ci-dessous le code du module standard de mon bouton et le
code








du
module
USF
--- Module1 ----
Sub ouvrirUSF()
UserForm1.Show
End Sub

--- UserForm1 ---
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
UserForm1.Hide
End Sub

Private Sub UserForm_Initialize()
ListBox1.Value = Sheets("Feuil1").Range("B6").Value
End Sub
-----------------
Voilà, au besoin mon fichier pèse 20Ko
Je suis très embêté ;-(

Merci par avance et très bonne journée.
François


































Avatar
François
Bonjour à tous

Pascal a essayé mon UserForm sur son poste (Excel 2000 sous XP).
Le fonctionnement est correct, l'USF n'est pas réinitialisé : il garde
donc la valeur précédemment utilisée donc la variable publique à bien
été conservée.
Par contre chez moi : Excel97-SR2, ma variable publique perd sa valeur
au rappel de l'USF = elle est vide !

Je suis donc désemparé et si par hasard qqu'un a déjà eu à connaître ce
pb sur XL97 et qu'il a trouvé une parade, je reste furieusement intéressé...

Bonne journée
François
----------------

"François" a écrit dans le message news:

Bonjour Pascal,

C'est reparti !
Bonne journée,
François
----------------------
"Pascal Engelmajer" a écrit dans le
message news:
Salut François,
vu les spams qui circulent j'ai du le détruire.
tu peux me le renvoyer.
je ferai attention...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:

Bonjour Pascal,

L'objet était : MPFE
Je l'ai envoyé à

en enlevant juste le _spam et je n'ai pas eu de delivrey failure
bien à toi,
François
-----------------

"Pascal Engelmajer" a écrit dans
le



message news: ekH$
Salut,
je n'en ai pas souvenir.
je filtre les mail l'objet etait-il explicite ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:
uD236B#
Bonjour Pascal,

as-tu reçu mon fichier ?

très cordialement,
François
------

"Pascal Engelmajer" a écrit
dans





le
message news:
Salut François,
je veux bien regarder ton classeur...
car je ne comprends pas ce qui ne marche pas...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
"François" a écrit dans le message de news:
OZt4#
Je suis désolé de t'importuner par ma maladresse.
J'ai bien lu ta première réponse.
(J'avais remis le load à tout hasard car je n'arrivais pas à
mes







fins..)
Par contre j'ai bien déclaré ma variable dans un module
standard







c'est celui qui contient la macro de mon bouton de feuille.
et quand je trace par F8, que je rappelle mon USF avec mon
bouton






de feuille, ma variable est vide quand j'arrive dans
Private Sub UserForm_Initialize
Pourrais-je t'envoyer mon classeur (20k) ?

bien à toi,
François
---------------------

"michdenis" a écrit dans le message
news:







Bonjour François,

Je t'invite à relire ma première réponse ....


Pourquoi utiliser la méthode "Load" suivi de la méthode
"Show"








Dans ce cas précis, la méthode Show peut faire le travail
Il me semble t'avoir donné une explication à ma réponse
précédente







Comme cette procédure à l'ouverture du classeur, si tu ne
désires






pas
l'afficher immédiatement à l'écran, enlève la ligne de
code :
UserForm1.Show . Cette commande se retrouve dans la macro de
ton







bouton
sur la feuille.

'--------------------
Sub ouvrirUSF()
VLB = "A"
Load UserForm1
UserForm1.Show
End Sub
'--------------------


"ma variable Public n'a pas la porté suffisante pour être
conservée





à
l'affichage du USF.."

Une variable public peut être appelé à partir de n'importe
quel







module
de
ton classeur et elle va conserver sa valeur aussi
longtemps que le classeur sera ouvert. Pour ce faire, il
faut








la
déclarer
dans un MODULE STANDARD.



Salutations!










"François" a écrit dans le message de
news:

Bonjour michdenis,

Je te remercie de ton aide.
J'ai essayé .. j'ai échoué

Je te copie ci-dessous:
Le code du Workbook open = qui présélectionne ma listbox à
"A"








Le code du module USF
Le code du module standard
Il me semble que le fait de rappeler l'USF à partir d'un
module







standard
provoque un déchargement de la mémoire et ma variable Public
n'a







pas
la porté suffisante pour être conservée à l'affichage du
USF..









Private Sub Workbook_Open()
ouvrirUSF
End Sub
------------
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
VLB = ListBox1.Value
UserForm1.Hide
End Sub
Private Sub UserForm_Initialize()
ListBox1.Value = VLB
End Sub
-------------
Sub ouvrirUSF()
VLB = "A"
Load UserForm1
UserForm1.Show
End Sub

Sub AfficherUSF() ' attaché à mon bouton de feuille
UserForm1.Show
End Sub

Merci encore de ton aide,
François
--------------------------------------

"michdenis" a écrit dans le message
news:






#
Bonjour François,

Habituellement, on utilise la commande "Load" (au moment
de









l'ouverture
d'un classeur) pour charger un formulaire en mémoire
(sans l'afficher à l'écran) afin de donner à l'usager
"l'impression"





de
la
rapidité du programme au moment opportun. Les
commandes "Show" et "Hide" sont utilisés pour rendre
visible









ou
invisible
le formulaire (sans que ce dernier soit déchargé de
la mémoire vive. Cependant, si le formulaire n'est pas en
mémoire






vive
au
moment de l'appel de la méthode "Show", il va de
soi que le formulaire devra se charger en mémoire("Load")
avant







de
s'afficher à l'écran. C'est seulement au moment où le
formulaire se charge en mémoire vive que l'événement
Private Sub UserForm_Initialize() est exécuté.

Si tu désires que ton listbox affiche une valeur
différente









selon
le
moment de l'appel,

A ) définit dans un module standard, une variable "Public"
comme







ceci
:
Public ValeurListBox as String 'adapte le type de
variable






selon
ce qu'elle doit contenir

B ) Tu tiens à jour le contenu de cette variable ...

C )
Private Sub UserForm_Initialize()
ListBox1.Value = ValeurListBox
End Sub


Salutations!



"François" a écrit dans le message de
news:

Bonjour à tous,

Je reviens vers vous avec un pb que je n'ai finalement par
réussi






à
contourner.
Pascal Engelmajer a tenté de m'aider , mais je n'étais
sans









doute
pas
assez
clair.
Exemple simplifié :

J'ai une feuille de calcul avec : un champ nommé Zn1
(B6:B11)








avec
valeurs
A,B,C,D,E
- un bouton sur cette feuille créé avec barre d'outils
formulaires






qui
appelle un Userform

Ce Userform contient une ListBox reliée à mon Champ nommé
Zn1








et un bouton OK .

Le pb est que si je clique sur le bouton de ma feuille de
calcul,






cela
actionne automatiquement
le Private Sub UserForm_Initialize() alors que le code est
"show"






et
non
"Load"
et moi je voudrais retrouver à l'affichage de mon UserForm
la








valeur
précédemment
choisie et non la valeur d'initialisation.
XL97 - SR2

Ci-dessous le code du module standard de mon bouton et le
code








du
module
USF
--- Module1 ----
Sub ouvrirUSF()
UserForm1.Show
End Sub

--- UserForm1 ---
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("c6") = ListBox1.Value
UserForm1.Hide
End Sub

Private Sub UserForm_Initialize()
ListBox1.Value = Sheets("Feuil1").Range("B6").Value
End Sub
-----------------
Voilà, au besoin mon fichier pèse 20Ko
Je suis très embêté ;-(

Merci par avance et très bonne journée.
François






































Avatar
Pierre CFI [mvp]
bonjour
j'ai aussi excel 97, je veux bien voir (zippe ton fichier

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Avatar
François
Bonjour Pierre,

C'est très sympa.
Merci,
François
------------------------

"Pierre CFI [mvp]" a écrit dans le message news:

bonjour
j'ai aussi excel 97, je veux bien voir (zippe ton fichier

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B




Avatar
Pierre CFI [mvp]
bizarre, mais en mettant Unload me au lieu de Show çà marche (en 97)
par contre pas de pb en 2003

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"François" a écrit dans le message de news: OECU#
Bonjour Pierre,

C'est très sympa.
Merci,
François
------------------------

"Pierre CFI [mvp]" a écrit dans le message news:

bonjour
j'ai aussi excel 97, je veux bien voir (zippe ton fichier

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B








Avatar
François
Je confirme:
C'est pour moi le bout du tunnel.
Il fallait que mon appli fonctionne correctement sur 97 et suivants.

Comme je l'indiquai à Pierre que je remercie mille fois, j'ai un peu de mal
à comprendre la logique de la chose mais l'essentiel est que cela
fonctionne.
Remerciements renouvelés à Pascal qui lui aussi a beaucoup donné dans
l'affaire.

Je suis un vieil habitué du forum, mais cette fois encore j'ai beaucoup reçu
à la fois
sur le plan technique et aussi du réconfort.

Moi content :-)))))))))
Belle journée à tous,
François
---------------------------------------


"Pierre CFI [mvp]" a écrit dans le message news:

bizarre, mais en mettant Unload me au lieu de Show çà marche (en 97)
par contre pas de pb en 2003

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"François" a écrit dans le message de news:
OECU#

Bonjour Pierre,

C'est très sympa.
Merci,
François
------------------------

"Pierre CFI [mvp]" a écrit dans le message
news:



bonjour
j'ai aussi excel 97, je veux bien voir (zippe ton fichier

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B












1 2