Synchroniser une liste déroulante par rapport à une autre liste déroulante
11 réponses
Sandra
Bonjour,
J'ai trouvé une solution intéressante dans la faq ici :
http://faqword.fr/index.php/wfaq/champs/283-est-il-possible-de-synchroniser-les-champs-dun-formulaire-jai-un-formulaire-avec-une-liste-deroulante-de-noms-ld1-et-une-liste-deroulante-de-nd-de-tel-ld2-je-veux-quen-selectionnant-le-nom-il-maffiche-le-nd-de-tel-correspondant-au-nom-de-la-pers.html
Mais mon problème est légèrement différent :
Je suis en train de faire un formulaire avec Word 2007 mais l'utilisateur
final exécute Word 2003, donc je suis un peu limitée.
J'utilise 2 listes déroulantes : dans la première une liste de Thèmes, et
dans la seconde devrait s'afficher les sous-thèmes du thème choisi dans la
1ère liste. L'utilisateur doit dont choisir parmi une proposition de
sous-thèmes pour le thème précédemment sélectionné
Bon ben là je suis de corvée de courses... J'essaie plus tard et je te tiens au courant ! Merci beaucoup Circé
Sandra
"Circé" a écrit dans le message de news:
Sandra a écrit :
Merci de la réponse !!
Mais je n'y arrive pas :-( Etant donné mon niveau débutant en VBA, voilà comment j'ai cru bon d'adapter le code :
Effectivement, il y a quelques erreurs...
Set NoAction = ActiveDocument.FormFields("NoFiche").DropDown.ListEntries NoFiche = ActiveDocument.FormFields("NoAction").DropDown.Value
Tu as inversé pour les deux : Set NoAction = ActiveDocument.FormFields("NoAction").DropDown.ListEntries NoFiche = ActiveDocument.FormFields("NoFiche").DropDown.Value
N'oublie de refaire ta première liste (NoFiche) qui a dû être vidée !
Circé http://faqword.fr
Sub Synchro() Dim NoAction As ListEntries, NoFiche As Byte Set NoAction = ActiveDocument.FormFields("NoFiche").DropDown.ListEntries NoFiche = ActiveDocument.FormFields("NoAction").DropDown.Value
NoAction.Clear If NoFiche = 1 Then
With NoAction .Add Name:="1.1 Observation" .Add Name:="1.2 Soutien à la mise en oeuvre de PEE et PCT" .Add Name:="1.3 Incitation à des comportements citoyens et responsables" End With ElseIf NoFiche = 2 Then
With NoAction .Add Name:="2.0 Toutes actions confondues" End With ElseIf NoFiche = 3 Then
With NoAction .Add Name:="3.1 Accompagnement de l'efficacité énergétique et maîtrise de la demande d'électricité" .Add Name:="3.2 Accompagnement de la réhabilitation thermique des bâtiments" End With End If End Sub
En l'état : il me vide complètement la ld1 pour y mettre les 1.x, la ld2 reste à l'originale...
Merci de votre aide et explications
Sandra
"Circé" a écrit dans le message de news:%
Bonjour Sandra,
Voici le code que tu peux mettre :
Sub Synchro() Dim ld2 As ListEntries, ld1 As Byte Set ld2 = ActiveDocument.FormFields("ld1").DropDown.ListEntries ld1 = ActiveDocument.FormFields("ld2").DropDown.Value
ld2.Clear If ld1 = 1 Then
With ld2 .Add Name:="item1" .Add Name:="item2" .Add Name:="item3" End With ElseIf ld1 = 2 Then
With ld2 .Add Name:="item4" .Add Name:="item5" .Add Name:="item6" End With ElseIf ld1 = 3 Then
With ld2 .Add Name:="item7" .Add Name:="item8" .Add Name:="item9" End With End If End Sub
Mon hébergeur a un problème depuis ce matin, la faq est inaccessible ! :(
Circé http://faqword.fr
Sandra avait énoncé :
Bonjour,
J'ai trouvé une solution intéressante dans la faq ici : http://faqword.fr/index.php/wfaq/champs/283-est-il-possible-de-synchroniser-les-champs-dun-formulaire-jai-un-formulaire-avec-une-liste-deroulante-de-noms-ld1-et-une-liste-deroulante-de-nd-de-tel-ld2-je-veux-quen-selectionnant-le-nom-il-maffiche-le-nd-de-tel-correspondant-au-nom-de-la-pers.html
Mais mon problème est légèrement différent :
Je suis en train de faire un formulaire avec Word 2007 mais l'utilisateur final exécute Word 2003, donc je suis un peu limitée. J'utilise 2 listes déroulantes : dans la première une liste de Thèmes, et dans la seconde devrait s'afficher les sous-thèmes du thème choisi dans la 1ère liste. L'utilisateur doit dont choisir parmi une proposition de sous-thèmes pour le thème précédemment sélectionné
D'avance merci de vos lumières
Sandra
Génial ! Ca marche comme sur des roulettes !!!
Merci beaucoup !
Sandra
"Sandra" <sandra_lnadb@hotmail.com> a écrit dans le message de
news:%23nvV1myRJHA.5860@TK2MSFTNGP02.phx.gbl...
Ah d'accord...
Bon ben là je suis de corvée de courses... J'essaie plus tard et je te
tiens au courant ! Merci beaucoup Circé
Sandra
"Circé" <circe@aea.gr> a écrit dans le message de
news:ecprkWyRJHA.5408@TK2MSFTNGP04.phx.gbl...
Sandra a écrit :
Merci de la réponse !!
Mais je n'y arrive pas :-(
Etant donné mon niveau débutant en VBA, voilà comment j'ai cru bon
d'adapter le code :
Effectivement, il y a quelques erreurs...
Set NoAction = ActiveDocument.FormFields("NoFiche").DropDown.ListEntries
NoFiche = ActiveDocument.FormFields("NoAction").DropDown.Value
Tu as inversé pour les deux :
Set NoAction = ActiveDocument.FormFields("NoAction").DropDown.ListEntries
NoFiche = ActiveDocument.FormFields("NoFiche").DropDown.Value
N'oublie de refaire ta première liste (NoFiche) qui a dû être vidée !
Circé
http://faqword.fr
Sub Synchro()
Dim NoAction As ListEntries, NoFiche As Byte
Set NoAction = ActiveDocument.FormFields("NoFiche").DropDown.ListEntries
NoFiche = ActiveDocument.FormFields("NoAction").DropDown.Value
NoAction.Clear
If NoFiche = 1 Then
With NoAction
.Add Name:="1.1 Observation"
.Add Name:="1.2 Soutien à la mise en oeuvre de PEE et PCT"
.Add Name:="1.3 Incitation à des comportements citoyens et
responsables"
End With
ElseIf NoFiche = 2 Then
With NoAction
.Add Name:="2.0 Toutes actions confondues"
End With
ElseIf NoFiche = 3 Then
With NoAction
.Add Name:="3.1 Accompagnement de l'efficacité énergétique et
maîtrise de la demande d'électricité"
.Add Name:="3.2 Accompagnement de la réhabilitation thermique des
bâtiments"
End With
End If
End Sub
En l'état : il me vide complètement la ld1 pour y mettre les 1.x, la ld2
reste à l'originale...
Merci de votre aide et explications
Sandra
"Circé" <circe@aea.gr> a écrit dans le message de
news:%230QY6JwRJHA.1448@TK2MSFTNGP04.phx.gbl...
Bonjour Sandra,
Voici le code que tu peux mettre :
Sub Synchro()
Dim ld2 As ListEntries, ld1 As Byte
Set ld2 = ActiveDocument.FormFields("ld1").DropDown.ListEntries
ld1 = ActiveDocument.FormFields("ld2").DropDown.Value
ld2.Clear
If ld1 = 1 Then
With ld2
.Add Name:="item1"
.Add Name:="item2"
.Add Name:="item3"
End With
ElseIf ld1 = 2 Then
With ld2
.Add Name:="item4"
.Add Name:="item5"
.Add Name:="item6"
End With
ElseIf ld1 = 3 Then
With ld2
.Add Name:="item7"
.Add Name:="item8"
.Add Name:="item9"
End With
End If
End Sub
Mon hébergeur a un problème depuis ce matin, la faq est inaccessible !
:(
Circé
http://faqword.fr
Sandra avait énoncé :
Bonjour,
J'ai trouvé une solution intéressante dans la faq ici :
http://faqword.fr/index.php/wfaq/champs/283-est-il-possible-de-synchroniser-les-champs-dun-formulaire-jai-un-formulaire-avec-une-liste-deroulante-de-noms-ld1-et-une-liste-deroulante-de-nd-de-tel-ld2-je-veux-quen-selectionnant-le-nom-il-maffiche-le-nd-de-tel-correspondant-au-nom-de-la-pers.html
Mais mon problème est légèrement différent :
Je suis en train de faire un formulaire avec Word 2007 mais
l'utilisateur final exécute Word 2003, donc je suis un peu limitée.
J'utilise 2 listes déroulantes : dans la première une liste de Thèmes,
et dans la seconde devrait s'afficher les sous-thèmes du thème choisi
dans la 1ère liste. L'utilisateur doit dont choisir parmi une
proposition de sous-thèmes pour le thème précédemment sélectionné
Bon ben là je suis de corvée de courses... J'essaie plus tard et je te tiens au courant ! Merci beaucoup Circé
Sandra
"Circé" a écrit dans le message de news:
Sandra a écrit :
Merci de la réponse !!
Mais je n'y arrive pas :-( Etant donné mon niveau débutant en VBA, voilà comment j'ai cru bon d'adapter le code :
Effectivement, il y a quelques erreurs...
Set NoAction = ActiveDocument.FormFields("NoFiche").DropDown.ListEntries NoFiche = ActiveDocument.FormFields("NoAction").DropDown.Value
Tu as inversé pour les deux : Set NoAction = ActiveDocument.FormFields("NoAction").DropDown.ListEntries NoFiche = ActiveDocument.FormFields("NoFiche").DropDown.Value
N'oublie de refaire ta première liste (NoFiche) qui a dû être vidée !
Circé http://faqword.fr
Sub Synchro() Dim NoAction As ListEntries, NoFiche As Byte Set NoAction = ActiveDocument.FormFields("NoFiche").DropDown.ListEntries NoFiche = ActiveDocument.FormFields("NoAction").DropDown.Value
NoAction.Clear If NoFiche = 1 Then
With NoAction .Add Name:="1.1 Observation" .Add Name:="1.2 Soutien à la mise en oeuvre de PEE et PCT" .Add Name:="1.3 Incitation à des comportements citoyens et responsables" End With ElseIf NoFiche = 2 Then
With NoAction .Add Name:="2.0 Toutes actions confondues" End With ElseIf NoFiche = 3 Then
With NoAction .Add Name:="3.1 Accompagnement de l'efficacité énergétique et maîtrise de la demande d'électricité" .Add Name:="3.2 Accompagnement de la réhabilitation thermique des bâtiments" End With End If End Sub
En l'état : il me vide complètement la ld1 pour y mettre les 1.x, la ld2 reste à l'originale...
Merci de votre aide et explications
Sandra
"Circé" a écrit dans le message de news:%
Bonjour Sandra,
Voici le code que tu peux mettre :
Sub Synchro() Dim ld2 As ListEntries, ld1 As Byte Set ld2 = ActiveDocument.FormFields("ld1").DropDown.ListEntries ld1 = ActiveDocument.FormFields("ld2").DropDown.Value
ld2.Clear If ld1 = 1 Then
With ld2 .Add Name:="item1" .Add Name:="item2" .Add Name:="item3" End With ElseIf ld1 = 2 Then
With ld2 .Add Name:="item4" .Add Name:="item5" .Add Name:="item6" End With ElseIf ld1 = 3 Then
With ld2 .Add Name:="item7" .Add Name:="item8" .Add Name:="item9" End With End If End Sub
Mon hébergeur a un problème depuis ce matin, la faq est inaccessible ! :(
Circé http://faqword.fr
Sandra avait énoncé :
Bonjour,
J'ai trouvé une solution intéressante dans la faq ici : http://faqword.fr/index.php/wfaq/champs/283-est-il-possible-de-synchroniser-les-champs-dun-formulaire-jai-un-formulaire-avec-une-liste-deroulante-de-noms-ld1-et-une-liste-deroulante-de-nd-de-tel-ld2-je-veux-quen-selectionnant-le-nom-il-maffiche-le-nd-de-tel-correspondant-au-nom-de-la-pers.html
Mais mon problème est légèrement différent :
Je suis en train de faire un formulaire avec Word 2007 mais l'utilisateur final exécute Word 2003, donc je suis un peu limitée. J'utilise 2 listes déroulantes : dans la première une liste de Thèmes, et dans la seconde devrait s'afficher les sous-thèmes du thème choisi dans la 1ère liste. L'utilisateur doit dont choisir parmi une proposition de sous-thèmes pour le thème précédemment sélectionné