OVH Cloud OVH Cloud

Boutons radio dans UserForm

5 réponses
Avatar
Jean-Marc
Salut à tous,

Je pensais trouver la solution que je cherche dans un post de décembre, mais
il s'est arrêté avant la solution.

J'ai un userform (ou plutôt je suis en train de le créer) qui doit pouvoir
être utilisé plusieurs fois avec éventuellement les mêmes données.
Ce UserForm me sert à introduire le NrJob, le NomClient, l'Essence et la
Finition.
Ce form pourra être utilisé plusieurs fois avec les mêmes valeurs, mais sur
des feuilles différentes.
J'ai donc pensé qu'il me "suffisait" de créer des variables publiques, mais
ça n'a pas l'air si simple.

J'ai créé un bouton déclanchant le code

NrJob = Me.NrJob
NomClient = Me.NomClient
Unload Me

Pour extraire les données textes, c'est assez simple et ceci fonctionne.
Là où je cale c'est pour l'essence et la finition.
En effet, l'essence et la finition sont des boutons radion dans des frames.
J'espérais que le frame prendrait la valeur du bouton radio sélectionné, un
peu à la mode "classique" d'une feuille de calcul dans laquelle une cellule
se voit attribuer un nombre en fonction du bouton sélectionné.
Malheureusement il n'en est rien. Comment faire pour savoir quel bouton a
été sélectionné lors du click sur le bouton déclenchant le code ?

Autre pbl :
Lorsque j'ouvre le UserForm, tous les champs sont vides. Normal me
direz-vous.
A l'ouverture, j'ai donc écris :

UserFormPorte.Show
UserFormPorte.NrJob = NrJob
UserFormPorte.NomClient = NomClient

Les champs restaient désespérément vides.
Pour tester, j'ai mis un msag box avant l'ouverture du UserForm afin
d'afficher les valeurs des variables.
Elles étaient nulles, pourtant elles ont été déclarées en public à
l'ouverture du projet. Aurais-je mal fait ?

Toujours est-il que j'ai créé une feuille Temp dans laquelle je stock ces
données. Au mois là je suis certain qu'elles y sont et je peux le vérifier
simplement.

A la sortie du UserForm j'ai donc maintenant

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Les données sont effectivement dans les cellules.

A l'ouverture j'ai donc mis :

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Or les champs du UserForm sont toujours aussi vides.

Que dois-je faire ?

De plus, j'aurai aussi un pbl du même type pour les boutons radio une fois
que j'aurai eu le moyen de stocker lequel a été sélectionné dans le
UserForm.

Merci de vos z'avis z'avisés,

Jean-Marc

5 réponses

Avatar
anonymousA
bonsoir,

il faut soit faire tes déclarations avant d'écrire Userform.show si tu
appelles l'ouverture de la feuille depuis une macro, soit inscrire tes
déclarations dasn l'évenement Initialize du Userform (cet evenement a lieu
au chargement du userform).

Pour tes boutons radio, regardes la procédure ci-dessous (en admettant que
tu as 2 boutons radio sur la feuille l'un appelé OptionButton1 et l'autre
OptionButton2 appartennant tous les 2 à un frame quelconque).

If Me.OptionButton1.Value = true Then MsgBox "opb1 a été cliqué"

If Me.OptionButton2.Value = True Then MsgBox "opb2 a été cliqué"

A+

"Jean-Marc" a écrit dans le message de news:
#YtKUjB#
Salut à tous,

Je pensais trouver la solution que je cherche dans un post de décembre,
mais

il s'est arrêté avant la solution.

J'ai un userform (ou plutôt je suis en train de le créer) qui doit pouvoir
être utilisé plusieurs fois avec éventuellement les mêmes données.
Ce UserForm me sert à introduire le NrJob, le NomClient, l'Essence et la
Finition.
Ce form pourra être utilisé plusieurs fois avec les mêmes valeurs, mais
sur

des feuilles différentes.
J'ai donc pensé qu'il me "suffisait" de créer des variables publiques,
mais

ça n'a pas l'air si simple.

J'ai créé un bouton déclanchant le code

NrJob = Me.NrJob
NomClient = Me.NomClient
Unload Me

Pour extraire les données textes, c'est assez simple et ceci fonctionne.
Là où je cale c'est pour l'essence et la finition.
En effet, l'essence et la finition sont des boutons radion dans des
frames.

J'espérais que le frame prendrait la valeur du bouton radio sélectionné,
un

peu à la mode "classique" d'une feuille de calcul dans laquelle une
cellule

se voit attribuer un nombre en fonction du bouton sélectionné.
Malheureusement il n'en est rien. Comment faire pour savoir quel bouton a
été sélectionné lors du click sur le bouton déclenchant le code ?

Autre pbl :
Lorsque j'ouvre le UserForm, tous les champs sont vides. Normal me
direz-vous.
A l'ouverture, j'ai donc écris :

UserFormPorte.Show
UserFormPorte.NrJob = NrJob
UserFormPorte.NomClient = NomClient

Les champs restaient désespérément vides.
Pour tester, j'ai mis un msag box avant l'ouverture du UserForm afin
d'afficher les valeurs des variables.
Elles étaient nulles, pourtant elles ont été déclarées en public à
l'ouverture du projet. Aurais-je mal fait ?

Toujours est-il que j'ai créé une feuille Temp dans laquelle je stock ces
données. Au mois là je suis certain qu'elles y sont et je peux le vérifier
simplement.

A la sortie du UserForm j'ai donc maintenant

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Les données sont effectivement dans les cellules.

A l'ouverture j'ai donc mis :

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Or les champs du UserForm sont toujours aussi vides.

Que dois-je faire ?

De plus, j'aurai aussi un pbl du même type pour les boutons radio une fois
que j'aurai eu le moyen de stocker lequel a été sélectionné dans le
UserForm.

Merci de vos z'avis z'avisés,

Jean-Marc




Avatar
Jean-Marc
Merci de ton aide.

J'ai écris ceci

ListeEssence = "UserFormPorte." & Range("Temp!$B$3") & ".Value"

ListeEssence contient bien ce dont j'ai besoin, mais maintenant il me
faudrait pouvoir arriver à pouvoir mettre un = True à la fin, or si j'écris
ListeEssence = True, il remplace la donnée par True. Ce n'est pas le but.

Sais-tu comment faire ?

Cela m'éviterait des lignes de conditions pour chaque possibilité.

Merci,

JM

"anonymousA" a écrit dans le message de
news:41e45720$0$7134$
bonsoir,

il faut soit faire tes déclarations avant d'écrire Userform.show si tu
appelles l'ouverture de la feuille depuis une macro, soit inscrire tes
déclarations dasn l'évenement Initialize du Userform (cet evenement a lieu
au chargement du userform).

Pour tes boutons radio, regardes la procédure ci-dessous (en admettant que
tu as 2 boutons radio sur la feuille l'un appelé OptionButton1 et l'autre
OptionButton2 appartennant tous les 2 à un frame quelconque).

If Me.OptionButton1.Value = true Then MsgBox "opb1 a été cliqué"

If Me.OptionButton2.Value = True Then MsgBox "opb2 a été cliqué"

A+

"Jean-Marc" a écrit dans le message de
news:

#YtKUjB#
Salut à tous,

Je pensais trouver la solution que je cherche dans un post de décembre,
mais

il s'est arrêté avant la solution.

J'ai un userform (ou plutôt je suis en train de le créer) qui doit
pouvoir


être utilisé plusieurs fois avec éventuellement les mêmes données.
Ce UserForm me sert à introduire le NrJob, le NomClient, l'Essence et la
Finition.
Ce form pourra être utilisé plusieurs fois avec les mêmes valeurs, mais
sur

des feuilles différentes.
J'ai donc pensé qu'il me "suffisait" de créer des variables publiques,
mais

ça n'a pas l'air si simple.

J'ai créé un bouton déclanchant le code

NrJob = Me.NrJob
NomClient = Me.NomClient
Unload Me

Pour extraire les données textes, c'est assez simple et ceci fonctionne.
Là où je cale c'est pour l'essence et la finition.
En effet, l'essence et la finition sont des boutons radion dans des
frames.

J'espérais que le frame prendrait la valeur du bouton radio sélectionné,
un

peu à la mode "classique" d'une feuille de calcul dans laquelle une
cellule

se voit attribuer un nombre en fonction du bouton sélectionné.
Malheureusement il n'en est rien. Comment faire pour savoir quel bouton
a


été sélectionné lors du click sur le bouton déclenchant le code ?

Autre pbl :
Lorsque j'ouvre le UserForm, tous les champs sont vides. Normal me
direz-vous.
A l'ouverture, j'ai donc écris :

UserFormPorte.Show
UserFormPorte.NrJob = NrJob
UserFormPorte.NomClient = NomClient

Les champs restaient désespérément vides.
Pour tester, j'ai mis un msag box avant l'ouverture du UserForm afin
d'afficher les valeurs des variables.
Elles étaient nulles, pourtant elles ont été déclarées en public à
l'ouverture du projet. Aurais-je mal fait ?

Toujours est-il que j'ai créé une feuille Temp dans laquelle je stock
ces


données. Au mois là je suis certain qu'elles y sont et je peux le
vérifier


simplement.

A la sortie du UserForm j'ai donc maintenant

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Les données sont effectivement dans les cellules.

A l'ouverture j'ai donc mis :

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Or les champs du UserForm sont toujours aussi vides.

Que dois-je faire ?

De plus, j'aurai aussi un pbl du même type pour les boutons radio une
fois


que j'aurai eu le moyen de stocker lequel a été sélectionné dans le
UserForm.

Merci de vos z'avis z'avisés,

Jean-Marc








Avatar
anomymousA
re,

m'excuse mais ne comprends pas ce que représente LIsteEssence. C'est un
controle sur ta feuille ( un bouton radio ?) ?

A+



Merci de ton aide.

J'ai écris ceci

ListeEssence = "UserFormPorte." & Range("Temp!$B$3") & ".Value"

ListeEssence contient bien ce dont j'ai besoin, mais maintenant il me
faudrait pouvoir arriver à pouvoir mettre un = True à la fin, or si j'écris
ListeEssence = True, il remplace la donnée par True. Ce n'est pas le but.

Sais-tu comment faire ?

Cela m'éviterait des lignes de conditions pour chaque possibilité.

Merci,

JM

"anonymousA" a écrit dans le message de
news:41e45720$0$7134$
bonsoir,

il faut soit faire tes déclarations avant d'écrire Userform.show si tu
appelles l'ouverture de la feuille depuis une macro, soit inscrire tes
déclarations dasn l'évenement Initialize du Userform (cet evenement a lieu
au chargement du userform).

Pour tes boutons radio, regardes la procédure ci-dessous (en admettant que
tu as 2 boutons radio sur la feuille l'un appelé OptionButton1 et l'autre
OptionButton2 appartennant tous les 2 à un frame quelconque).

If Me.OptionButton1.Value = true Then MsgBox "opb1 a été cliqué"

If Me.OptionButton2.Value = True Then MsgBox "opb2 a été cliqué"

A+

"Jean-Marc" a écrit dans le message de
news:

#YtKUjB#
Salut à tous,

Je pensais trouver la solution que je cherche dans un post de décembre,
mais

il s'est arrêté avant la solution.

J'ai un userform (ou plutôt je suis en train de le créer) qui doit
pouvoir


être utilisé plusieurs fois avec éventuellement les mêmes données.
Ce UserForm me sert à introduire le NrJob, le NomClient, l'Essence et la
Finition.
Ce form pourra être utilisé plusieurs fois avec les mêmes valeurs, mais
sur

des feuilles différentes.
J'ai donc pensé qu'il me "suffisait" de créer des variables publiques,
mais

ça n'a pas l'air si simple.

J'ai créé un bouton déclanchant le code

NrJob = Me.NrJob
NomClient = Me.NomClient
Unload Me

Pour extraire les données textes, c'est assez simple et ceci fonctionne.
Là où je cale c'est pour l'essence et la finition.
En effet, l'essence et la finition sont des boutons radion dans des
frames.

J'espérais que le frame prendrait la valeur du bouton radio sélectionné,
un

peu à la mode "classique" d'une feuille de calcul dans laquelle une
cellule

se voit attribuer un nombre en fonction du bouton sélectionné.
Malheureusement il n'en est rien. Comment faire pour savoir quel bouton
a


été sélectionné lors du click sur le bouton déclenchant le code ?

Autre pbl :
Lorsque j'ouvre le UserForm, tous les champs sont vides. Normal me
direz-vous.
A l'ouverture, j'ai donc écris :

UserFormPorte.Show
UserFormPorte.NrJob = NrJob
UserFormPorte.NomClient = NomClient

Les champs restaient désespérément vides.
Pour tester, j'ai mis un msag box avant l'ouverture du UserForm afin
d'afficher les valeurs des variables.
Elles étaient nulles, pourtant elles ont été déclarées en public à
l'ouverture du projet. Aurais-je mal fait ?

Toujours est-il que j'ai créé une feuille Temp dans laquelle je stock
ces


données. Au mois là je suis certain qu'elles y sont et je peux le
vérifier


simplement.

A la sortie du UserForm j'ai donc maintenant

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Les données sont effectivement dans les cellules.

A l'ouverture j'ai donc mis :

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Or les champs du UserForm sont toujours aussi vides.

Que dois-je faire ?

De plus, j'aurai aussi un pbl du même type pour les boutons radio une
fois


que j'aurai eu le moyen de stocker lequel a été sélectionné dans le
UserForm.

Merci de vos z'avis z'avisés,

Jean-Marc













Avatar
Jean-Marc
Oui, c'est un bouton radio.
Lors de la sortie du form, par un bouton, je place le nom du bouton coché
dans Temp!$B$3 parce que le nom du bouton est aussi ce que j'ai à afficher
dans une cellule.
Je voudrais donc pouvoir l'extraire à l'ouverture du Userform pour le
recocher.
Il me faut donc UserformPorte.NOMDUBOUTONACOCHER.Value = True
avec NOMDUBOUTONACOCHER étant le textre repris dans la cellule Temp!$B$3
Mais comment faire cela ?


"anomymousA" a écrit dans le message
de news:
re,

m'excuse mais ne comprends pas ce que représente LIsteEssence. C'est un
controle sur ta feuille ( un bouton radio ?) ?

A+



Merci de ton aide.

J'ai écris ceci

ListeEssence = "UserFormPorte." & Range("Temp!$B$3") & ".Value"

ListeEssence contient bien ce dont j'ai besoin, mais maintenant il me
faudrait pouvoir arriver à pouvoir mettre un = True à la fin, or si
j'écris


ListeEssence = True, il remplace la donnée par True. Ce n'est pas le
but.



Sais-tu comment faire ?

Cela m'éviterait des lignes de conditions pour chaque possibilité.

Merci,

JM

"anonymousA" a écrit dans le message de
news:41e45720$0$7134$
bonsoir,

il faut soit faire tes déclarations avant d'écrire Userform.show si tu
appelles l'ouverture de la feuille depuis une macro, soit inscrire tes
déclarations dasn l'évenement Initialize du Userform (cet evenement a
lieu



au chargement du userform).

Pour tes boutons radio, regardes la procédure ci-dessous (en admettant
que



tu as 2 boutons radio sur la feuille l'un appelé OptionButton1 et
l'autre



OptionButton2 appartennant tous les 2 à un frame quelconque).

If Me.OptionButton1.Value = true Then MsgBox "opb1 a été cliqué"

If Me.OptionButton2.Value = True Then MsgBox "opb2 a été cliqué"

A+

"Jean-Marc" a écrit dans le message de
news:

#YtKUjB#
Salut à tous,

Je pensais trouver la solution que je cherche dans un post de
décembre,




mais
il s'est arrêté avant la solution.

J'ai un userform (ou plutôt je suis en train de le créer) qui doit
pouvoir


être utilisé plusieurs fois avec éventuellement les mêmes données.
Ce UserForm me sert à introduire le NrJob, le NomClient, l'Essence
et la




Finition.
Ce form pourra être utilisé plusieurs fois avec les mêmes valeurs,
mais




sur
des feuilles différentes.
J'ai donc pensé qu'il me "suffisait" de créer des variables
publiques,




mais
ça n'a pas l'air si simple.

J'ai créé un bouton déclanchant le code

NrJob = Me.NrJob
NomClient = Me.NomClient
Unload Me

Pour extraire les données textes, c'est assez simple et ceci
fonctionne.




Là où je cale c'est pour l'essence et la finition.
En effet, l'essence et la finition sont des boutons radion dans des
frames.

J'espérais que le frame prendrait la valeur du bouton radio
sélectionné,




un
peu à la mode "classique" d'une feuille de calcul dans laquelle une
cellule

se voit attribuer un nombre en fonction du bouton sélectionné.
Malheureusement il n'en est rien. Comment faire pour savoir quel
bouton




a
été sélectionné lors du click sur le bouton déclenchant le code ?

Autre pbl :
Lorsque j'ouvre le UserForm, tous les champs sont vides. Normal me
direz-vous.
A l'ouverture, j'ai donc écris :

UserFormPorte.Show
UserFormPorte.NrJob = NrJob
UserFormPorte.NomClient = NomClient

Les champs restaient désespérément vides.
Pour tester, j'ai mis un msag box avant l'ouverture du UserForm afin
d'afficher les valeurs des variables.
Elles étaient nulles, pourtant elles ont été déclarées en public à
l'ouverture du projet. Aurais-je mal fait ?

Toujours est-il que j'ai créé une feuille Temp dans laquelle je
stock




ces
données. Au mois là je suis certain qu'elles y sont et je peux le
vérifier


simplement.

A la sortie du UserForm j'ai donc maintenant

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Les données sont effectivement dans les cellules.

A l'ouverture j'ai donc mis :

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Or les champs du UserForm sont toujours aussi vides.

Que dois-je faire ?

De plus, j'aurai aussi un pbl du même type pour les boutons radio
une




fois
que j'aurai eu le moyen de stocker lequel a été sélectionné dans le
UserForm.

Merci de vos z'avis z'avisés,

Jean-Marc















Avatar
anomymousA
re,

soit donc un bouton radio dont le nom générique (c.a.d le nom (Name) dans
les propriétes est bien NOMDUBOUTONACOCHER.

En ce cas, si tu veux affecter la valeur True tu écris
UserformPorte.NOMDUBOUTONACOCHER.Value = True
puis UserformPorte.NOMDUBOUTONACOCHER.Caption=sheets("Temp").range(B3).value
Dans ces conditions le texte qui s'affichera pour ton bouton radio sera
l'info contenue dans ta cellule B3 mais le nom générique de ton bouton radio
ne sera jamais changé sauf si tu affectes la propriét Name de celui-ci.

A+



Oui, c'est un bouton radio.
Lors de la sortie du form, par un bouton, je place le nom du bouton coché
dans Temp!$B$3 parce que le nom du bouton est aussi ce que j'ai à afficher
dans une cellule.
Je voudrais donc pouvoir l'extraire à l'ouverture du Userform pour le
recocher.
Il me faut donc UserformPorte.NOMDUBOUTONACOCHER.Value = True
avec NOMDUBOUTONACOCHER étant le textre repris dans la cellule Temp!$B$3
Mais comment faire cela ?


"anomymousA" a écrit dans le message
de news:
re,

m'excuse mais ne comprends pas ce que représente LIsteEssence. C'est un
controle sur ta feuille ( un bouton radio ?) ?

A+



Merci de ton aide.

J'ai écris ceci

ListeEssence = "UserFormPorte." & Range("Temp!$B$3") & ".Value"

ListeEssence contient bien ce dont j'ai besoin, mais maintenant il me
faudrait pouvoir arriver à pouvoir mettre un = True à la fin, or si
j'écris


ListeEssence = True, il remplace la donnée par True. Ce n'est pas le
but.



Sais-tu comment faire ?

Cela m'éviterait des lignes de conditions pour chaque possibilité.

Merci,

JM

"anonymousA" a écrit dans le message de
news:41e45720$0$7134$
bonsoir,

il faut soit faire tes déclarations avant d'écrire Userform.show si tu
appelles l'ouverture de la feuille depuis une macro, soit inscrire tes
déclarations dasn l'évenement Initialize du Userform (cet evenement a
lieu



au chargement du userform).

Pour tes boutons radio, regardes la procédure ci-dessous (en admettant
que



tu as 2 boutons radio sur la feuille l'un appelé OptionButton1 et
l'autre



OptionButton2 appartennant tous les 2 à un frame quelconque).

If Me.OptionButton1.Value = true Then MsgBox "opb1 a été cliqué"

If Me.OptionButton2.Value = True Then MsgBox "opb2 a été cliqué"

A+

"Jean-Marc" a écrit dans le message de
news:

#YtKUjB#
Salut à tous,

Je pensais trouver la solution que je cherche dans un post de
décembre,




mais
il s'est arrêté avant la solution.

J'ai un userform (ou plutôt je suis en train de le créer) qui doit
pouvoir


être utilisé plusieurs fois avec éventuellement les mêmes données.
Ce UserForm me sert à introduire le NrJob, le NomClient, l'Essence
et la




Finition.
Ce form pourra être utilisé plusieurs fois avec les mêmes valeurs,
mais




sur
des feuilles différentes.
J'ai donc pensé qu'il me "suffisait" de créer des variables
publiques,




mais
ça n'a pas l'air si simple.

J'ai créé un bouton déclanchant le code

NrJob = Me.NrJob
NomClient = Me.NomClient
Unload Me

Pour extraire les données textes, c'est assez simple et ceci
fonctionne.




Là où je cale c'est pour l'essence et la finition.
En effet, l'essence et la finition sont des boutons radion dans des
frames.

J'espérais que le frame prendrait la valeur du bouton radio
sélectionné,




un
peu à la mode "classique" d'une feuille de calcul dans laquelle une
cellule

se voit attribuer un nombre en fonction du bouton sélectionné.
Malheureusement il n'en est rien. Comment faire pour savoir quel
bouton




a
été sélectionné lors du click sur le bouton déclenchant le code ?

Autre pbl :
Lorsque j'ouvre le UserForm, tous les champs sont vides. Normal me
direz-vous.
A l'ouverture, j'ai donc écris :

UserFormPorte.Show
UserFormPorte.NrJob = NrJob
UserFormPorte.NomClient = NomClient

Les champs restaient désespérément vides.
Pour tester, j'ai mis un msag box avant l'ouverture du UserForm afin
d'afficher les valeurs des variables.
Elles étaient nulles, pourtant elles ont été déclarées en public à
l'ouverture du projet. Aurais-je mal fait ?

Toujours est-il que j'ai créé une feuille Temp dans laquelle je
stock




ces
données. Au mois là je suis certain qu'elles y sont et je peux le
vérifier


simplement.

A la sortie du UserForm j'ai donc maintenant

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Les données sont effectivement dans les cellules.

A l'ouverture j'ai donc mis :

UserFormPorte.Show
UserFormPorte.NrJob = Range("Temp!$B$1")
UserFormPorte.NomClient = Range("Temp!$B$2")

Or les champs du UserForm sont toujours aussi vides.

Que dois-je faire ?

De plus, j'aurai aussi un pbl du même type pour les boutons radio
une




fois
que j'aurai eu le moyen de stocker lequel a été sélectionné dans le
UserForm.

Merci de vos z'avis z'avisés,

Jean-Marc