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
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
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
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
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
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
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. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisible
le formulaire (sans que ce dernier soit déchargé dela 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 desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
assezclair.
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
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" <NoSpam@NoSpam> a écrit dans le message de
news:eRFjGvY6DHA.4060@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message news:
#vOUJaY6DHA.4060@tk2msftngp13.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
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. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisible
le formulaire (sans que ce dernier soit déchargé dela 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 desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
assezclair.
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
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 decode :
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 aussilongtemps 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
larapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est pas en mémoire vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec
valeursA,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
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" <michdenis@hotmail.com> a écrit dans le message news:
OtaSP8Y6DHA.1664@TK2MSFTNGP11.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:eRFjGvY6DHA.4060@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message news:
#vOUJaY6DHA.4060@tk2msftngp13.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
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 decode :
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 aussilongtemps 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
larapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est pas en mémoire vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec
valeursA,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
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 decode :
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
deton classeur et elle va conserver sa valeur aussilongtemps que le classeur sera ouvert. Pour ce faire, il faut la
déclarerdans 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'ouvertured'un classeur) pour charger un formulaire en mémoire(sans l'afficher à l'écran) afin de donner à l'usager "l'impression"
delarapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est pas en mémoire
vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
selonce 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec
valeursA,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
moduleUSF--- 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
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" <NoSpam@NoSpam> a écrit dans le message de news:
OZt4#OZ6DHA.3304@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message news:
OtaSP8Y6DHA.1664@TK2MSFTNGP11.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:eRFjGvY6DHA.4060@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message news:
#vOUJaY6DHA.4060@tk2msftngp13.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
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 decode :
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
deton classeur et elle va conserver sa valeur aussilongtemps que le classeur sera ouvert. Pour ce faire, il faut la
déclarerdans 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'ouvertured'un classeur) pour charger un formulaire en mémoire(sans l'afficher à l'écran) afin de donner à l'usager "l'impression"
delarapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est pas en mémoire
vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
selonce 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec
valeursA,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
moduleUSF--- 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
-----Message d'origine-----
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 decode :
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 aussilongtemps 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
larapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre
visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est
pas en mémoire vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire
("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1
(B6:B11) avec
valeursA,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
.
-----Message d'origine-----
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" <michdenis@hotmail.com> a écrit dans le
message news:
OtaSP8Y6DHA.1664@TK2MSFTNGP11.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:eRFjGvY6DHA.4060@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le
message news:
#vOUJaY6DHA.4060@tk2msftngp13.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
.
-----Message d'origine-----
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 decode :
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 aussilongtemps 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
larapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre
visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est
pas en mémoire vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire
("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1
(B6:B11) avec
valeursA,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
.
-----Message d'origine-----
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 decode :
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 aussilongtemps 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
larapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre
visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est
pas en mémoire vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire
("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1
(B6:B11) avec
valeursA,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
.
-----Message d'origine-----
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" <michdenis@hotmail.com> a écrit dans le
message news:
OtaSP8Y6DHA.1664@TK2MSFTNGP11.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:eRFjGvY6DHA.4060@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le
message news:
#vOUJaY6DHA.4060@tk2msftngp13.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
.
-----Message d'origine-----
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 decode :
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 aussilongtemps 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
larapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre
visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est
pas en mémoire vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire
("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1
(B6:B11) avec
valeursA,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
.
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 decode :
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
deton classeur et elle va conserver sa valeur aussilongtemps que le classeur sera ouvert. Pour ce faire, il faut la
déclarerdans 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'ouvertured'un classeur) pour charger un formulaire en mémoire(sans l'afficher à l'écran) afin de donner à l'usager "l'impression"
delarapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est pas en mémoire
vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
selonce 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec
valeursA,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
moduleUSF--- 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
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" <NoSpam@NoSpam> a écrit dans le message de news:
OZt4#OZ6DHA.3304@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message news:
OtaSP8Y6DHA.1664@TK2MSFTNGP11.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:eRFjGvY6DHA.4060@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message news:
#vOUJaY6DHA.4060@tk2msftngp13.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
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 decode :
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
deton classeur et elle va conserver sa valeur aussilongtemps que le classeur sera ouvert. Pour ce faire, il faut la
déclarerdans 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'ouvertured'un classeur) pour charger un formulaire en mémoire(sans l'afficher à l'écran) afin de donner à l'usager "l'impression"
delarapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est pas en mémoire
vive
aumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
selonce 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
assezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec
valeursA,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
moduleUSF--- 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
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 decode :
UserForm1.Show . Cette commande se retrouve dans la macro de ton
boutonsur 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
deton classeur et elle va conserver sa valeur aussilongtemps que le classeur sera ouvert. Pour ce faire, il faut la
déclarerdans 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
standardprovoque 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'ouvertured'un classeur) pour charger un formulaire en mémoire(sans l'afficher à l'écran) afin de donner à l'usager
"l'impression"
delarapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est pas en mémoire
viveaumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
selonce 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
pasassezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec
valeursA,B,C,D,E
- un bouton sur cette feuille créé avec barre d'outils formulaires
quiappelle 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,
celaactionne 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
moduleUSF--- 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
Bonjour Pascal,
as-tu reçu mon fichier ?
très cordialement,
François
------
"Pascal Engelmajer" <pascal.engelmajer@ilyapa_spam.net> a écrit dans le
message news: OdmfNnZ6DHA.3304@tk2msftngp13.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de news:
OZt4#OZ6DHA.3304@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message news:
OtaSP8Y6DHA.1664@TK2MSFTNGP11.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:eRFjGvY6DHA.4060@tk2msftngp13.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message news:
#vOUJaY6DHA.4060@tk2msftngp13.phx.gbl...
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" <NoSpam@NoSpam> a écrit dans le message de
news:O2cJJAX6DHA.1804@TK2MSFTNGP12.phx.gbl...
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
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 decode :
UserForm1.Show . Cette commande se retrouve dans la macro de ton
boutonsur 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
deton classeur et elle va conserver sa valeur aussilongtemps que le classeur sera ouvert. Pour ce faire, il faut la
déclarerdans 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
standardprovoque 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'ouvertured'un classeur) pour charger un formulaire en mémoire(sans l'afficher à l'écran) afin de donner à l'usager
"l'impression"
delarapidité du programme au moment opportun. Lescommandes "Show" et "Hide" sont utilisés pour rendre visible ou
invisiblele formulaire (sans que ce dernier soit déchargé dela mémoire vive. Cependant, si le formulaire n'est pas en mémoire
viveaumoment de l'appel de la méthode "Show", il va desoi que le formulaire devra se charger en mémoire("Load") avant de
s'afficher à l'écran. C'est seulement au moment où leformulaire 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
selonce 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
pasassezclair.
Exemple simplifié :
J'ai une feuille de calcul avec : un champ nommé Zn1 (B6:B11) avec
valeursA,B,C,D,E
- un bouton sur cette feuille créé avec barre d'outils formulaires
quiappelle 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,
celaactionne 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
moduleUSF--- 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