Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupération des champs de formulaire dans excel- Problème avec liste déroulante et case à cocher

1 réponse
Avatar
didier.urli
Bonjour,

J'ai r=E9cup=E9r=E9 r=E9cemment une macro qui permet de lire les champs d'un
formulaire word dans excel. Elle fonctionne bien hormis pour les
champs de type FormCkeckBox et FormDropDown qui n'affichent pas le
contenu (la valeur retenue) dans la liste d=E9roulante ou la case =E0
cocher.

Je vous joins le r=E9sultat que j'obtiens (annexe 1) et la macro
utilis=E9e (annexe 2).

Si quelqu'un peut me d=E9panner, j'en serais ravi.

Merci d'avance.
Didier

Annexe 1:
ligne1: CaseACocher1
ligne 2: FORMCHECKBOX 


ici je devrais avoir normalement "projet interne" par exemple qui est
le choix retenu par l'int=E9ress=E9.

Annexe 2:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistr=E9e le 2007-02-15 par Didier
Dim wrd As Object
Dim i As Integer, aBookmark

Set wrd =3D CreateObject("Word.Application")

wrd.Documents.Open Filename:=3D"C:\FC- 2005-JOUVE-1.doc"
'// pas obliger de voir
'wrd.Visible =3D True
If wrd.ActiveDocument.Bookmarks.Count >=3D 1 Then
For Each aBookmark In wrd.ActiveDocument.Bookmarks
Worksheets("Feuil1").Range("a1").Offset(1, i) =3D aBookmark.Name
Worksheets("Feuil1").Range("a1").Offset(2, i) =3D aBookmark.Range
i =3D i + 1
Next aBookmark
End If

wrd.Quit
Set wrd =3D Nothing
End Sub

1 réponse

Avatar
Anacoluthe
Bonjour !

'' nous a écrit ...
J'ai récupéré récemment une macro qui permet de lire les champs d'un
formulaire word dans excel. Elle fonctionne bien hormis pour les
champs de type FormCkeckBox et FormDropDown qui n'affichent pas le
contenu (la valeur retenue) dans la liste déroulante ou la case à
cocher.


Votre macro énumère les /signets/ du document
et non les champs de formulaire.

Il est vrai que chaque champ de formulaire est repérable aussi par un signet.

Si vous souhaitez conserver l'exploration de votre document par signets
il faudrait remplacer
= aBookmark.Range
par
= aBookmark.Range.Formfields(1).Result

Vous obtiendrez le /résultat/ du champ de formulaire contenu dans
votre signet. Pour une case à cocher vous obtiendrez 0 ou 1

Il aurait été préférable d'explorer le formulaire par ses FormFields
au lieu de ses Bookmarks. M'enfin, c'est vous qui voyez...

Anacoluthe
« Bienheureux les travailleurs des champs. »
- VIRGILE