Se connecter avec
S'enregistrer | Connectez-vous

pb liste déroulante sous VBA Word

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

considérant que ta liste s'appele liste1 :

  1. Sub truc()
  2.  
  3. Dim myRef
  4. Dim myStr
  5. ' ouvre le fichier de données !
  6. Open "c:\test.txt" For Input As #1
  7. ' vide le controle de liste
  8. ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries.Clear
  9. While Not EOF(1)
  10. Input #1, myStr
  11. ' ajout de myStr à liste1
  12. ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries.Add (CStr(myStr))
  13. Wend
  14. ' ferme le fichier
  15. Close #1
  16. End Sub


je souhaiterais synchroniser la deuxieme liste en fonction de la premiere liste en VBA WORD svp merci. ceci est la structure des listes non synchroniser :

Code :

Sub truc()

Dim myRef
Dim myStr
' ouvre le fichier de données !
Open "c:\test.txt" For Input As #1
' vide le controle de liste
ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries.Clear
While Not EOF(1)
Input #1, myStr
' ajout de myStr à liste1
ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries.Add (CStr(myStr))
Wend
' ferme le fichier
Close #1
End Sub

Sub truc2()

Dim myRef
Dim myStr
' ouvre le fichier de données !
Open "c:\test.txt" For Input As #1
' vide le controle de liste
ActiveDocument.FormFields.Item("liste2").DropDown.ListEntries.Clear
While Not EOF(1)
Input #1, myStr
' ajout de myStr à liste2
ActiveDocument.FormFields.Item("liste2").DropDown.ListEntries.Add (CStr(myStr))
Wend
' ferme le fichier
Close #1
End Sub

SIRMAX a dit :
je souhaiterais synchroniser la deuxieme liste en fonction de la premiere liste en VBA WORD svp merci. ceci est la structure des listes non synchroniser :


1- Ya pas de quoi

2- si liste1=liste2 tu devrais pouvoir faire un truc du style :


solution sympa poour les perfs mais je sais pas si VBA accepte :
  1. sub truc()
  2. Dim myRef
  3. Dim myStr
  4. ' ouvre le fichier de données !
  5. Open "c:\test.txt" For Input As #1
  6. ' vide le controle de liste
  7. ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries.Clear
  8. While Not EOF(1)
  9. Input #1, myStr
  10. ' ajout de myStr à liste1
  11. ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries.Add (CStr(myStr))
  12. Wend
  13. ' ferme le fichier
  14. Close #1
  15. ' met à jour liste2
  16. ActiveDocument.FormFields.Item("liste2").DropDown.ListEntries=ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries
  17. End Sub



solution bourrin
  1. sub truc()
  2. Dim myRef
  3. Dim myStr
  4. ' ouvre le fichier de données !
  5. Open "c:\test.txt" For Input As #1
  6. ' vide le controle de liste
  7. ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries.Clear
  8. While Not EOF(1)
  9. Input #1, myStr
  10. ' ajout de myStr à liste1
  11. ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries.Add (CStr(myStr))
  12. ' ajout de myStr à liste2
  13. ActiveDocument.FormFields.Item("liste2").DropDown.ListEntries.Add (CStr(myStr))
  14. Wend
  15. ' ferme le fichier
  16. Close #1
  17. ' met à jour liste2
  18. ActiveDocument.FormFields.Item("liste2").DropDown.ListEntries=ActiveDocument.FormFields.Item("liste1").DropDown.ListEntries
  19. End Sub

bonjour moi j ai à peu prés le même pb
je vous explique
j ai créé une form avec 4 listes deroulantes
1 nom
2 premon
3 n ° telephone
4 adresse
le tous relier a des champs dans le document word.
lorsque que l utilisateur ouvre le document l userform s ouvre et il va chercher son nom puis le reste.
donc ma question est
est ce qu il existe un code pour que lorsque l utilisateur trouve son nom dans la premiere liste deroulante les autres listes se mettent a jour en fonction du nom de la personne entre autre prenom, n° telephone, adresse.

merci d avance
Expert Programmation

Tu n'amènes rien à ce topic, laisse-le mourir en paix.

Tu as un problème, à peu près le même que quelqu'un d'autre, alors soit tu t'inspires de la solution donnée, soit ce n'est pas assez et tu es tout à fait en droit de créer ton propre topik à toi ;) 

C'est facile, clique sur ce beau bouton :
Lassé par la pub ? Créez un compte