Bonjour,
Dans un macro Word, j'ai un userform avec différentes casses à cocher,
etc. Et je voudrais pouvoir d'une utilisation sur l'autre de la macro
conserver les choix et les réutiliser la fois suivante.
Pour ce faire, j'ai stocké des données dans la base de registre
correspondant aux choix effectués. A l'exécution suivante, je lit ces
données et je voudrais donc obliger le userform à en tenir compte et là,
ça ne fonctionne plus...
Mettons que j'ai un bouton1, j'assigne à la variable B1 1 s'il est coché
et 0 autrement. J'ai ensuite fait qq chose du genre :
Private sub UserForm1_Initialize()
if B1=0 then
bouton1.value=true
else
buton1.value=false
end if
end sub
Et ça ne marche pas... J'ai vérifié B1 est bien définit correctement
c'est donc ma routine dans Initialize qui ne fonctionne pas. A chaque
fois, ce sont les valeurs définies dans les propriétés du bouton1 qui
sont appliqués...
Quelqu'un a t'il une idée de comment je dois faire ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anacoluthe
Bonjour !
Vérifiez dans UserForm_Initialize que B1 est bien une variable booléenne publique. Lu comme ça B1 vaut /toujours/ zéro !
Anacoluthe « Les hommes publics sont comme les filles publiques, incapables de prendre leur retraite à temps. » - Claude FRISONI
'Romain Casey' nous a écrit ...
Bonjour, Dans un macro Word, j'ai un userform avec différentes casses à cocher, etc. Et je voudrais pouvoir d'une utilisation sur l'autre de la macro conserver les choix et les réutiliser la fois suivante. Pour ce faire, j'ai stocké des données dans la base de registre correspondant aux choix effectués. A l'exécution suivante, je lit ces données et je voudrais donc obliger le userform à en tenir compte et là, ça ne fonctionne plus... Mettons que j'ai un bouton1, j'assigne à la variable B1 1 s'il est coché et 0 autrement. J'ai ensuite fait qq chose du genre : Private sub UserForm1_Initialize() if B1=0 then bouton1.value=true else buton1.valueúlse end if end sub
Et ça ne marche pas... J'ai vérifié B1 est bien définit correctement c'est donc ma routine dans Initialize qui ne fonctionne pas. A chaque fois, ce sont les valeurs définies dans les propriétés du bouton1 qui sont appliqués... Quelqu'un a t'il une idée de comment je dois faire ?
Merci.
Romain
Bonjour !
Vérifiez dans UserForm_Initialize que B1 est bien une variable
booléenne publique. Lu comme ça B1 vaut /toujours/ zéro !
Anacoluthe
« Les hommes publics sont comme les filles publiques,
incapables de prendre leur retraite à temps. »
- Claude FRISONI
'Romain Casey' nous a écrit ...
Bonjour,
Dans un macro Word, j'ai un userform avec différentes casses à cocher,
etc. Et je voudrais pouvoir d'une utilisation sur l'autre de la macro
conserver les choix et les réutiliser la fois suivante.
Pour ce faire, j'ai stocké des données dans la base de registre
correspondant aux choix effectués. A l'exécution suivante, je lit ces
données et je voudrais donc obliger le userform à en tenir compte et là,
ça ne fonctionne plus...
Mettons que j'ai un bouton1, j'assigne à la variable B1 1 s'il est coché
et 0 autrement. J'ai ensuite fait qq chose du genre :
Private sub UserForm1_Initialize()
if B1=0 then
bouton1.value=true
else
buton1.valueúlse
end if
end sub
Et ça ne marche pas... J'ai vérifié B1 est bien définit correctement
c'est donc ma routine dans Initialize qui ne fonctionne pas. A chaque
fois, ce sont les valeurs définies dans les propriétés du bouton1 qui
sont appliqués...
Quelqu'un a t'il une idée de comment je dois faire ?
Vérifiez dans UserForm_Initialize que B1 est bien une variable booléenne publique. Lu comme ça B1 vaut /toujours/ zéro !
Anacoluthe « Les hommes publics sont comme les filles publiques, incapables de prendre leur retraite à temps. » - Claude FRISONI
'Romain Casey' nous a écrit ...
Bonjour, Dans un macro Word, j'ai un userform avec différentes casses à cocher, etc. Et je voudrais pouvoir d'une utilisation sur l'autre de la macro conserver les choix et les réutiliser la fois suivante. Pour ce faire, j'ai stocké des données dans la base de registre correspondant aux choix effectués. A l'exécution suivante, je lit ces données et je voudrais donc obliger le userform à en tenir compte et là, ça ne fonctionne plus... Mettons que j'ai un bouton1, j'assigne à la variable B1 1 s'il est coché et 0 autrement. J'ai ensuite fait qq chose du genre : Private sub UserForm1_Initialize() if B1=0 then bouton1.value=true else buton1.valueúlse end if end sub
Et ça ne marche pas... J'ai vérifié B1 est bien définit correctement c'est donc ma routine dans Initialize qui ne fonctionne pas. A chaque fois, ce sont les valeurs définies dans les propriétés du bouton1 qui sont appliqués... Quelqu'un a t'il une idée de comment je dois faire ?
Merci.
Romain
Romain Casey
Bonjour !
Vérifiez dans UserForm_Initialize que B1 est bien une variable booléenne publique. Lu comme ça B1 vaut /toujours/ zéro !
B1 est une variable publique, et n'est pas un booléen mais un entier. Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus court de stocker 0/1 que true/false). Que je fasse :
public B1 as bollean if B1 = true then
ou
public B1 as integer if B1 = 1 then
le résultat devrait être le même. Le problème vient plutôt du fait que dans initialize ce bout de code n'est pas pris en compte... D'ailleurs, si je met un stop dans le Initialize, le programme ne s'arrête pas... Alors même que d'autres instructions du initialise sont pris en compte (.groupname en particulier).
Merci.
Romain
Bonjour !
Vérifiez dans UserForm_Initialize que B1 est bien une variable
booléenne publique. Lu comme ça B1 vaut /toujours/ zéro !
B1 est une variable publique, et n'est pas un booléen mais un entier.
Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus
court de stocker 0/1 que true/false). Que je fasse :
public B1 as bollean
if B1 = true then
ou
public B1 as integer
if B1 = 1 then
le résultat devrait être le même. Le problème vient plutôt du fait que
dans initialize ce bout de code n'est pas pris en compte... D'ailleurs,
si je met un stop dans le Initialize, le programme ne s'arrête pas...
Alors même que d'autres instructions du initialise sont pris en compte
(.groupname en particulier).
Vérifiez dans UserForm_Initialize que B1 est bien une variable booléenne publique. Lu comme ça B1 vaut /toujours/ zéro !
B1 est une variable publique, et n'est pas un booléen mais un entier. Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus court de stocker 0/1 que true/false). Que je fasse :
public B1 as bollean if B1 = true then
ou
public B1 as integer if B1 = 1 then
le résultat devrait être le même. Le problème vient plutôt du fait que dans initialize ce bout de code n'est pas pris en compte... D'ailleurs, si je met un stop dans le Initialize, le programme ne s'arrête pas... Alors même que d'autres instructions du initialise sont pris en compte (.groupname en particulier).
Merci.
Romain
Anacoluthe
Bonjour !
'Romain Casey' nous a écrit ...
B1 est une variable publique, et n'est pas un booléen mais un entier. Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus court de stocker 0/1 que true/false). Que je fasse : public B1 as bollean if B1 = true then
J'ai l'impression que vous vous mélangez dans la portée de B1... Placez la lecture de B1 (au besoin par appel d'une fonction) DANS Initialize et tout devrait s'arranger !
Anacoluthe « Les hommes publics sont comme les filles publiques, incapables de prendre leur retraite à temps. » - Claude FRISONI
Bonjour !
'Romain Casey' nous a écrit ...
B1 est une variable publique, et n'est pas un booléen mais un entier.
Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus
court de stocker 0/1 que true/false). Que je fasse :
public B1 as bollean
if B1 = true then
J'ai l'impression que vous vous mélangez dans la portée de B1...
Placez la lecture de B1 (au besoin par appel d'une fonction)
DANS Initialize et tout devrait s'arranger !
Anacoluthe
« Les hommes publics sont comme les filles publiques,
incapables de prendre leur retraite à temps. »
- Claude FRISONI
B1 est une variable publique, et n'est pas un booléen mais un entier. Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus court de stocker 0/1 que true/false). Que je fasse : public B1 as bollean if B1 = true then
J'ai l'impression que vous vous mélangez dans la portée de B1... Placez la lecture de B1 (au besoin par appel d'une fonction) DANS Initialize et tout devrait s'arranger !
Anacoluthe « Les hommes publics sont comme les filles publiques, incapables de prendre leur retraite à temps. » - Claude FRISONI
Romain Casey
Bonjour ! [...] J'ai l'impression que vous vous mélangez dans la portée de B1... Placez la lecture de B1 (au besoin par appel d'une fonction) DANS Initialize et tout devrait s'arranger !
C'est possible... Pour être certain de comprendre. Voici ce que j'ai : - dans un module : Public B1 as Integer B1 = ... 'Ma valeur dans la base de registre UserForm1.Show
- dans UserForm1 Public Sub UserForm1_Initialize() If B1 = 1 Then bouton1.Value = True Else bouton1.Value = False End If
Où est le problème ?
Merci.
Romain
Bonjour !
[...]
J'ai l'impression que vous vous mélangez dans la portée de B1...
Placez la lecture de B1 (au besoin par appel d'une fonction)
DANS Initialize et tout devrait s'arranger !
C'est possible... Pour être certain de comprendre. Voici ce que j'ai :
- dans un module :
Public B1 as Integer
B1 = ... 'Ma valeur dans la base de registre
UserForm1.Show
- dans UserForm1
Public Sub UserForm1_Initialize()
If B1 = 1 Then
bouton1.Value = True
Else
bouton1.Value = False
End If
Bonjour ! [...] J'ai l'impression que vous vous mélangez dans la portée de B1... Placez la lecture de B1 (au besoin par appel d'une fonction) DANS Initialize et tout devrait s'arranger !
C'est possible... Pour être certain de comprendre. Voici ce que j'ai : - dans un module : Public B1 as Integer B1 = ... 'Ma valeur dans la base de registre UserForm1.Show
- dans UserForm1 Public Sub UserForm1_Initialize() If B1 = 1 Then bouton1.Value = True Else bouton1.Value = False End If
Où est le problème ?
Merci.
Romain
Bonjour Romain, Je pense que de temps en temps tu démarres ton test directement depuis la UserForm. Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes, place la fonction de lecture de la base de régistre dans Sub UserForm1_Initialize Philippe
"Romain Casey" a écrit dans le message de news:ca1ta8$tvr$
Bonjour ! [...] J'ai l'impression que vous vous mélangez dans la portée de B1... Placez la lecture de B1 (au besoin par appel d'une fonction) DANS Initialize et tout devrait s'arranger !
C'est possible... Pour être certain de comprendre. Voici ce que j'ai : - dans un module : Public B1 as Integer B1 = ... 'Ma valeur dans la base de registre UserForm1.Show
- dans UserForm1 Public Sub UserForm1_Initialize() If B1 = 1 Then bouton1.Value = True Else bouton1.Value = False End If
Où est le problème ?
Merci.
Romain
Bonjour Romain,
Je pense que de temps en temps tu démarres ton test directement depuis
la UserForm.
Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes,
place la fonction de lecture de la base de régistre dans Sub
UserForm1_Initialize
Philippe
"Romain Casey" <WX.Romain.Casey@u-bourgogne.fr.YZ.invalid> a écrit dans le
message de news:ca1ta8$tvr$1@demo2.univ-lyon1.fr...
Bonjour !
[...]
J'ai l'impression que vous vous mélangez dans la portée de B1...
Placez la lecture de B1 (au besoin par appel d'une fonction)
DANS Initialize et tout devrait s'arranger !
C'est possible... Pour être certain de comprendre. Voici ce que j'ai :
- dans un module :
Public B1 as Integer
B1 = ... 'Ma valeur dans la base de registre
UserForm1.Show
- dans UserForm1
Public Sub UserForm1_Initialize()
If B1 = 1 Then
bouton1.Value = True
Else
bouton1.Value = False
End If
Bonjour Romain, Je pense que de temps en temps tu démarres ton test directement depuis la UserForm. Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes, place la fonction de lecture de la base de régistre dans Sub UserForm1_Initialize Philippe
"Romain Casey" a écrit dans le message de news:ca1ta8$tvr$
Bonjour ! [...] J'ai l'impression que vous vous mélangez dans la portée de B1... Placez la lecture de B1 (au besoin par appel d'une fonction) DANS Initialize et tout devrait s'arranger !
C'est possible... Pour être certain de comprendre. Voici ce que j'ai : - dans un module : Public B1 as Integer B1 = ... 'Ma valeur dans la base de registre UserForm1.Show
- dans UserForm1 Public Sub UserForm1_Initialize() If B1 = 1 Then bouton1.Value = True Else bouton1.Value = False End If
Où est le problème ?
Merci.
Romain
JièL Goubert
Bonjoir(c) Romain Casey
Juste pour mettre mon grain de sel Une variable booléenne a seulement 2 états, un entier en à des milliers ;-) En terme de consision, le test if B1 = true then peut être écrit if B1 then le "= true" est superfétatoire ;-))) alors que pour un entier, il faut effectivement tester la valeur.
dans une boucle tu peux ecrite while b1 voire wend B1 et ça suffit la aussi
c'est juste une habitude de travail, de taille de stockage (1 bit (en théorie) au lieu de 2 octets pour l'entier) et de rapidité d'exécution.
-- La FAQ Outlook est la : http://faq.outlook.free.fr JièL / Jean-Louis GOUBERT Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm
Le 07/06/2004 15:05 vous nous disiez ceci :
B1 est une variable publique, et n'est pas un booléen mais un entier. Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus court de stocker 0/1 que true/false). Que je fasse :
public B1 as bollean if B1 = true then
ou
public B1 as integer if B1 = 1 then
le résultat devrait être le même.
Bonjoir(c) Romain Casey
Juste pour mettre mon grain de sel
Une variable booléenne a seulement 2 états, un entier en à des milliers ;-)
En terme de consision, le test
if B1 = true then
peut être écrit
if B1 then
le "= true" est superfétatoire ;-)))
alors que pour un entier, il faut effectivement tester la valeur.
dans une boucle tu peux ecrite
while b1
voire
wend B1
et ça suffit la aussi
c'est juste une habitude de travail, de taille de stockage (1 bit (en
théorie) au lieu de 2 octets pour l'entier) et de rapidité d'exécution.
--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application
http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm
Le 07/06/2004 15:05 vous nous disiez ceci :
B1 est une variable publique, et n'est pas un booléen mais un entier.
Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus
court de stocker 0/1 que true/false). Que je fasse :
Juste pour mettre mon grain de sel Une variable booléenne a seulement 2 états, un entier en à des milliers ;-) En terme de consision, le test if B1 = true then peut être écrit if B1 then le "= true" est superfétatoire ;-))) alors que pour un entier, il faut effectivement tester la valeur.
dans une boucle tu peux ecrite while b1 voire wend B1 et ça suffit la aussi
c'est juste une habitude de travail, de taille de stockage (1 bit (en théorie) au lieu de 2 octets pour l'entier) et de rapidité d'exécution.
-- La FAQ Outlook est la : http://faq.outlook.free.fr JièL / Jean-Louis GOUBERT Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm
Le 07/06/2004 15:05 vous nous disiez ceci :
B1 est une variable publique, et n'est pas un booléen mais un entier. Ceci dit ça ne doit rien changer a priori (à part le fait que c'est plus court de stocker 0/1 que true/false). Que je fasse :
public B1 as bollean if B1 = true then
ou
public B1 as integer if B1 = 1 then
le résultat devrait être le même.
Romain Casey
Bonjoir(c) Romain Casey
Juste pour mettre mon grain de sel Une variable booléenne a seulement 2 états, un entier en à des milliers ;-) [...] c'est juste une habitude de travail, de taille de stockage (1 bit (en théorie) au lieu de 2 octets pour l'entier) et de rapidité d'exécution.
OK. Merci du conseil.
Romain
Bonjoir(c) Romain Casey
Juste pour mettre mon grain de sel
Une variable booléenne a seulement 2 états, un entier en à des milliers ;-)
[...]
c'est juste une habitude de travail, de taille de stockage (1 bit (en
théorie) au lieu de 2 octets pour l'entier) et de rapidité d'exécution.
Juste pour mettre mon grain de sel Une variable booléenne a seulement 2 états, un entier en à des milliers ;-) [...] c'est juste une habitude de travail, de taille de stockage (1 bit (en théorie) au lieu de 2 octets pour l'entier) et de rapidité d'exécution.
OK. Merci du conseil.
Romain
Romain Casey
Bonjour Romain, Je pense que de temps en temps tu démarres ton test directement depuis la UserForm.
Je dois avouer que je ne suis pas certain de comprendre...
Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes, place la fonction de lecture de la base de régistre dans Sub UserForm1_Initialize
C'est fait... et ça ne change absolument rien. On dirait que la fonction initialize ne fonctionne pas... Enfin, pas tout à fait car comme je l'ai dit, les .groupname fonctionnent mais pas le reste. Un autre idée ? Ou un bout de code qui fonctionne chez vous ?
Merci.
Romain
Bonjour Romain,
Je pense que de temps en temps tu démarres ton test directement depuis
la UserForm.
Je dois avouer que je ne suis pas certain de comprendre...
Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes,
place la fonction de lecture de la base de régistre dans Sub
UserForm1_Initialize
C'est fait... et ça ne change absolument rien. On dirait que la fonction
initialize ne fonctionne pas... Enfin, pas tout à fait car comme je l'ai
dit, les .groupname fonctionnent mais pas le reste. Un autre idée ? Ou
un bout de code qui fonctionne chez vous ?
Bonjour Romain, Je pense que de temps en temps tu démarres ton test directement depuis la UserForm.
Je dois avouer que je ne suis pas certain de comprendre...
Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes, place la fonction de lecture de la base de régistre dans Sub UserForm1_Initialize
C'est fait... et ça ne change absolument rien. On dirait que la fonction initialize ne fonctionne pas... Enfin, pas tout à fait car comme je l'ai dit, les .groupname fonctionnent mais pas le reste. Un autre idée ? Ou un bout de code qui fonctionne chez vous ?
Merci.
Romain
Bonjour Romain, J'ai fait un test et je n'ai aucun problème, cela fonctionne parfaitement. Si tu le souhaites, je peux t'envoyer le document test. Philippe
"Romain Casey" a écrit dans le message de news:ca40uc$7ca$
Bonjour Romain, Je pense que de temps en temps tu démarres ton test directement depuis
la UserForm.
Je dois avouer que je ne suis pas certain de comprendre...
Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes, place la fonction de lecture de la base de régistre dans Sub UserForm1_Initialize
C'est fait... et ça ne change absolument rien. On dirait que la fonction initialize ne fonctionne pas... Enfin, pas tout à fait car comme je l'ai dit, les .groupname fonctionnent mais pas le reste. Un autre idée ? Ou un bout de code qui fonctionne chez vous ?
Merci.
Romain
Bonjour Romain,
J'ai fait un test et je n'ai aucun problème, cela fonctionne
parfaitement.
Si tu le souhaites, je peux t'envoyer le document test.
Philippe
"Romain Casey" <WX.Romain.Casey@u-bourgogne.fr.YZ.invalid> a écrit dans le
message de news:ca40uc$7ca$1@demo2.univ-lyon1.fr...
Bonjour Romain,
Je pense que de temps en temps tu démarres ton test directement
depuis
la UserForm.
Je dois avouer que je ne suis pas certain de comprendre...
Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes,
place la fonction de lecture de la base de régistre dans Sub
UserForm1_Initialize
C'est fait... et ça ne change absolument rien. On dirait que la fonction
initialize ne fonctionne pas... Enfin, pas tout à fait car comme je l'ai
dit, les .groupname fonctionnent mais pas le reste. Un autre idée ? Ou
un bout de code qui fonctionne chez vous ?
Bonjour Romain, J'ai fait un test et je n'ai aucun problème, cela fonctionne parfaitement. Si tu le souhaites, je peux t'envoyer le document test. Philippe
"Romain Casey" a écrit dans le message de news:ca40uc$7ca$
Bonjour Romain, Je pense que de temps en temps tu démarres ton test directement depuis
la UserForm.
Je dois avouer que je ne suis pas certain de comprendre...
Comme l'a justement suggéré Anacoluthe, pour éviter tout problèmes, place la fonction de lecture de la base de régistre dans Sub UserForm1_Initialize
C'est fait... et ça ne change absolument rien. On dirait que la fonction initialize ne fonctionne pas... Enfin, pas tout à fait car comme je l'ai dit, les .groupname fonctionnent mais pas le reste. Un autre idée ? Ou un bout de code qui fonctionne chez vous ?
Merci.
Romain
Romain Casey
Bonjour Romain, J'ai fait un test et je n'ai aucun problème, cela fonctionne parfaitement. Si tu le souhaites, je peux t'envoyer le document test. Philippe
Ce serait avec plaisir. Merci.
Romain
PS : Pour mon mail, il suffit d'enlever WX. et .YZ.invalid
Bonjour Romain,
J'ai fait un test et je n'ai aucun problème, cela fonctionne
parfaitement.
Si tu le souhaites, je peux t'envoyer le document test.
Philippe
Ce serait avec plaisir. Merci.
Romain
PS : Pour mon mail, il suffit d'enlever WX. et .YZ.invalid
Bonjour Romain, J'ai fait un test et je n'ai aucun problème, cela fonctionne parfaitement. Si tu le souhaites, je peux t'envoyer le document test. Philippe
Ce serait avec plaisir. Merci.
Romain
PS : Pour mon mail, il suffit d'enlever WX. et .YZ.invalid