Bonjour.
J'ai un certain nombre de document MS Word qui ont tous la même mise en page.
Je souhaite :
1- ouvrir chaque document
2- parcourir dans chaque document l'ensemble des listbox
3-Pour chaque listbox :
je souhaite récupérer la valeur qui est sélectionnée
Pour l'instant j'ai réussi à programmer la première partie : Boucler sur plusieurs document Word :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Public wordApp As New Word.Application Public Sub Ouvrir_Tout_Les_Fichiers() Dim Fichier_Objet As String titre = "Ouvrir le(s) fichier(s)" Filt = "Fichier(s) a integrer (*.docm;*.doc;*.docx),*.docm;*.doc;*.docx" fileToOpen = Application.GetOpenFilename(FileFilter:=Filt, Title:=titre, MultiSelect:=True) For I = LBound(fileToOpen) To UBound(fileToOpen) FilePath = Left(fileToOpen(I), InStrRev(fileToOpen(I), "\")) Fichier_Objet = Mid(fileToOpen(I), InStrRev(fileToOpen(I), "\") + 1) Set wordApp = CreateObject("Word.Application") wordApp.Documents.Open fileToOpen(I) wordApp.Visible = True File_Name = UBound(fileToOpen) Call _2_parcourir_dans_chaque_document_l_ensemble_des_listbox(I, Fichier_Objet) wordApp.Documents.Close wordApp.Quit Next I End Sub
Dans chaque document j'essaie de parcourir l'ensemble des listbox !
Apparemment les listbox sont des objets "ContentControlListEntry" ...
https://docs.microsoft.com/fr-fr/off...ntrollistentry
... qui sont contenus dans des objets "ContentControl"
https://docs.microsoft.com/fr-fr/off...ntent-controls
j'essaie ainsi de parcourir toutes les listbox (objCc.DropdownListEntries) et extraire la valeur qui a été sélectionnée. Mais impossible de trouver la bonne propriété !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Public Sub _2_parcourir_dans_chaque_document_l_ensemble_des_listbox(I, Fichier_Objet) Dim objCc As ContentControl Dim objLe As ContentControlListEntry Debug.Print Fichier_Objet For Each objCc In wordApp.ActiveDocument.ContentControls For Each objLe In objCc.DropdownListEntries Debug.Print objLe.Text Debug.Print objLe.Index Debug.Print objLe.Value 'Debug.Print objLe.Creator Next Next End Sub
J'ai réussi à extraire objLe.Text ; objLe.Index ; objLe.Value ... mais je ne trouve rien qui ressemblerais à la valeur qui a été choisie dans la listbox. (peut-être la propriété visible = true ... ou quelque chose comme ça ??)
...
j'ai réussi à extraire avec succès les valeurs des "checkbox" et les valeurs des "champs utilisateurs" ... mais je bloque vraiment sur ces "listbox" :
Est-ce que quelqu'un aurait une idée sur la façon de procéder ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Public Sub Extraire_champs_utilisateurs_et_checkbox(I, Fichier_Objet) Dim ch As Field Dim Ctrl As ContentControl Debug.Print Fichier_Objet For Each ch In wordApp.ActiveDocument.Fields If ch.Type = "70" Then Debug.Print "Index ", ch.Index Debug.Print "Result ", ch.Result Debug.Print "Type ", ch.Type End If Next ch For Each Ctrl In wordApp.ActiveDocument.ContentControls If Ctrl.Type = "8" Then If Ctrl.Checked = True Then Debug.Print Ctrl.Tag Debug.Print Ctrl.ID Debug.Print "True" Else Debug.Print Ctrl.Tag Debug.Print Ctrl.ID Debug.Print "False" End If End If Next End Sub
Merci beaucoup
Partager