OVH Cloud OVH Cloud

Afficher 1 valeur d'une listbox si optionbutton coché

4 réponses
Avatar
Congelator
Salut à toutes et à tous.

Mon problème est le suivant :
A l'ouverture d'un document Word XP, l'utilisateur à une userform qui
s'affiche et doit choisir entre 4 cercles d'option. S'il coche le No 4 (p.
ex), j'ai besoin que cela affiche automatiquement (lors de la fermeture de la
userform et de retour dans Word) une des 2 valeurs de ma Liste déroulante
(LD) déjà insérée en mode formulaire sur mon document.
Exemple :
Valeurs de ma LD : bonjour et salut
Userform - OptionButton 3 -> Word - LD affiche "bonjour"
Userform - OptionButton 4 -> Word - LD affiche "salut"

Si quelqu'un a une solution, je suis preneur !

Merci d'avance

--
Céd / Lausanne

4 réponses

Avatar
LE TROLL
Salut, voici

sub choix()
option explicit
dim affiche as string
dim numero_message as byte
if option1.value = true then affiche = list1.list(numeo_message_0)
if option2.value = true then affiche = list1.list(numeo_message_1)
if option3.value = true then affiche = list1.list(numeo_message_2)
if option4.value = true then affiche = list1.list(numeo_message_3)
msgbox affiche
end sub
---------

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
Salut à toutes et à tous.

Mon problème est le suivant :
A l'ouverture d'un document Word XP, l'utilisateur à une userform qui
s'affiche et doit choisir entre 4 cercles d'option. S'il coche le No 4 (p.
ex), j'ai besoin que cela affiche automatiquement (lors de la fermeture de
la
userform et de retour dans Word) une des 2 valeurs de ma Liste déroulante
(LD) déjà insérée en mode formulaire sur mon document.
Exemple :
Valeurs de ma LD : bonjour et salut
Userform - OptionButton 3 -> Word - LD affiche "bonjour"
Userform - OptionButton 4 -> Word - LD affiche "salut"

Si quelqu'un a une solution, je suis preneur !

Merci d'avance

--
Céd / Lausanne


Avatar
LE TROLL
Salut,

Voici:

sub test()
dim i as byte
dim j as byte
for i = 1 to 4
select case i ' valeur à afficher pour la list1
case 1: j = a
case 2: j = b
case 3: j = c
case 4: j = d
end select
if option1(i).value = true then ' option1(4 fois) = 0,1,2,3
msgbox list1.list(j) ' affiche list suivant option
exit sub
en dif
next i
end sub
-----------

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
Salut à toutes et à tous.

Mon problème est le suivant :
A l'ouverture d'un document Word XP, l'utilisateur à une userform qui
s'affiche et doit choisir entre 4 cercles d'option. S'il coche le No 4 (p.
ex), j'ai besoin que cela affiche automatiquement (lors de la fermeture de
la
userform et de retour dans Word) une des 2 valeurs de ma Liste déroulante
(LD) déjà insérée en mode formulaire sur mon document.
Exemple :
Valeurs de ma LD : bonjour et salut
Userform - OptionButton 3 -> Word - LD affiche "bonjour"
Userform - OptionButton 4 -> Word - LD affiche "salut"

Si quelqu'un a une solution, je suis preneur !

Merci d'avance

--
Céd / Lausanne


Avatar
Congelator
Salut Le Troll et merci pour tes réponses. Malheureusement, étant débutant en
VBA, j'ai de la peine à voir où incroporer ce code dans le mien. De plus, à
1ère vue, j'ai l'impression qu'il va "m'afficher" qqch alors que j'ai besoin
qu'il sélectionne qqch dans la liste. Je me suis sûrement mal expliqué dans
ma question. Alors j'essaie différemment :

1ère phase : un document Word fait sous forme formulaire avec des cases à
cocher (CAC).
2ème phase (maintenant) :
- ouverture du doc et affichage d'une form avec 4 optionbutton (OBT).
- dans le doc, j'ai dû remplaçer 2 CAC "A" et "B" (qui se cochaient
automatiquement en fonction du OBT sélectionné) par un menu déroulant avec A
et B comme valeurs.

Donc, comment faire pour que si OBT1 = true (fermeture de la form) ma liste
ait sélectionné "A" une fois de retour dans le doc ou si OBT2 = true
(fermeture de la form) ma liste ait sélectionné "B" ?
Voici le code que j'utilisais quand j'utilisais les CAC et que je dois
remplacer par une Listbox :

If optbt_2.Value = True Then
ActiveDocument.Bookmarks("CAC_2").Select
With Selection.FormFields(1)
.Name = "CAC_2"
.Enabled = True
With .CheckBox
.AutoSize = True
.Size = 10
.Default = True
End With
End With


Merci encore !

Céd

"LE TROLL" wrote:

Salut,

Voici:

sub test()
dim i as byte
dim j as byte
for i = 1 to 4
select case i ' valeur à afficher pour la list1
case 1: j = a
case 2: j = b
case 3: j = c
case 4: j = d
end select
if option1(i).value = true then ' option1(4 fois) = 0,1,2,3
msgbox list1.list(j) ' affiche list suivant option
exit sub
en dif
next i
end sub
-----------

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
> Salut à toutes et à tous.
>
> Mon problème est le suivant :
> A l'ouverture d'un document Word XP, l'utilisateur à une userform qui
> s'affiche et doit choisir entre 4 cercles d'option. S'il coche le No 4 (p.
> ex), j'ai besoin que cela affiche automatiquement (lors de la fermeture de
> la
> userform et de retour dans Word) une des 2 valeurs de ma Liste déroulante
> (LD) déjà insérée en mode formulaire sur mon document.
> Exemple :
> Valeurs de ma LD : bonjour et salut
> Userform - OptionButton 3 -> Word - LD affiche "bonjour"
> Userform - OptionButton 4 -> Word - LD affiche "salut"
>
> Si quelqu'un a une solution, je suis preneur !
>
> Merci d'avance
>
> --
> Céd / Lausanne





Avatar
LE TROLL
Pour sélectionner une ligne de la liste:

On teste, si Option.value=true 'un seul possible
Tu fais en fonction de celui que tu as à true (option)

List1.listindex = index ' n° que tu veux

Ta liste porte un index (listindex) de 0 à n, correspondant à chaque ligne
de celle-ci...
----------

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
Salut Le Troll et merci pour tes réponses. Malheureusement, étant débutant
en
VBA, j'ai de la peine à voir où incroporer ce code dans le mien. De plus,
à
1ère vue, j'ai l'impression qu'il va "m'afficher" qqch alors que j'ai
besoin
qu'il sélectionne qqch dans la liste. Je me suis sûrement mal expliqué
dans
ma question. Alors j'essaie différemment :

1ère phase : un document Word fait sous forme formulaire avec des cases à
cocher (CAC).
2ème phase (maintenant) :
- ouverture du doc et affichage d'une form avec 4 optionbutton (OBT).
- dans le doc, j'ai dû remplaçer 2 CAC "A" et "B" (qui se cochaient
automatiquement en fonction du OBT sélectionné) par un menu déroulant avec
A
et B comme valeurs.

Donc, comment faire pour que si OBT1 = true (fermeture de la form) ma
liste
ait sélectionné "A" une fois de retour dans le doc ou si OBT2 = true
(fermeture de la form) ma liste ait sélectionné "B" ?
Voici le code que j'utilisais quand j'utilisais les CAC et que je dois
remplacer par une Listbox :

If optbt_2.Value = True Then
ActiveDocument.Bookmarks("CAC_2").Select
With Selection.FormFields(1)
.Name = "CAC_2"
.Enabled = True
With .CheckBox
.AutoSize = True
.Size = 10
.Default = True
End With
End With


Merci encore !

Céd

"LE TROLL" wrote:

Salut,

Voici:

sub test()
dim i as byte
dim j as byte
for i = 1 to 4
select case i ' valeur à afficher pour la list1
case 1: j = a
case 2: j = b
case 3: j = c
case 4: j = d
end select
if option1(i).value = true then ' option1(4 fois) = 0,1,2,3
msgbox list1.list(j) ' affiche list suivant option
exit sub
en dif
next i
end sub
-----------

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message
de
news:
> Salut à toutes et à tous.
>
> Mon problème est le suivant :
> A l'ouverture d'un document Word XP, l'utilisateur à une userform qui
> s'affiche et doit choisir entre 4 cercles d'option. S'il coche le No 4
> (p.
> ex), j'ai besoin que cela affiche automatiquement (lors de la fermeture
> de
> la
> userform et de retour dans Word) une des 2 valeurs de ma Liste
> déroulante
> (LD) déjà insérée en mode formulaire sur mon document.
> Exemple :
> Valeurs de ma LD : bonjour et salut
> Userform - OptionButton 3 -> Word - LD affiche "bonjour"
> Userform - OptionButton 4 -> Word - LD affiche "salut"
>
> Si quelqu'un a une solution, je suis preneur !
>
> Merci d'avance
>
> --
> Céd / Lausanne