désolé si le sujet a déjà été abordé,
j'ai un document word avec plusieurs tableaux, chaque tableau a un titre dans la première ligne du tableau et chacun de ces titres commence toujours par Table XXX . j'ai créer des index {XE...} pour récupérer les titres des tableaux afin de former un sommaire des tableaux. seulement je me rends compte que les titres de mes tableaux sont tronqués dans mon index

Table 14.1-1 Subject Disposition { XE “Table 14.1-1 Subject Disposition”}
(All Subjects)

l'index ne prend en compte que la première ligne et s’arrête au retour chariot or j'aimerai récupérer tour le texte pour avoir :

Table 14.1-1 Subject Disposition { XE “Table 14.1-1 Subject Disposition (All Subjects) ”}

quelqu'un aurait-il une solution svp?

voici le code pour créer mes index:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
Sub IndexTables()
 
    Dim strTable As String
    Dim strPrevTable As String
 
    strTable = ""
    strPrevTable = ""
 
    Selection.HomeKey Unit:=wdStory
 
    Selection.HomeKey Unit:=wdStory
    Selection.EndKey Unit:=wdStory, Extend:=wdExtend
    tot = Selection.End
 
    Selection.HomeKey Unit:=wdStory
    posit = 1
    oldposit = 0
 
    Do While posit >= oldposit
        oldposit = posit
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = " Table "
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute
        posit = Selection.End
        Debug.Print oldposit; posit; tot
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        strTable = Selection.Text
        If posit >= oldposit And strTable <> strPrevTable Then
            ActiveWindow.ActivePane.View.ShowAll = True
            ActiveDocument.Indexes.MarkEntry Range:=Selection.Range, Entry:= _
                strTable, EntryAutoText:= _
                strTable, CrossReference:="", _
                CrossReferenceAutoText:="", BookmarkName:="", Bold:=False, Italic:=False
        End If
        Debug.Print strPrevTable; strTable
        strPrevTable = strTable
         Debug.Print posit;
    Loop
 
End Sub
merci d'avance de votre aide