Petite Macro VBA

j’inaugure une nouvelle catégorie de page de programmation : les pages VBA.

Ma première macro pratique : créer une une liste des titres ordonnées par ordre alphabétique.

Sub index_par_titre()
    Selection.EndKey Unit:=wdStory  
    With ActiveDocument
        .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
            True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
            LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
            UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _
            True
        Set aa = .TablesOfContents
        
        .TablesOfContents(1).TabLeader = wdTabLeaderDots
        .TablesOfContents.Format = wdIndexIndent
    End With
    Set aa = aa(aa.Count)
    aa.Range.Select
    Selection.Fields.Unlink
    Selection.Font.UnderlineColor = wdColorAutomatic
    Selection.Font.Underline = wdUnderlineNone
    Selection.Sort ExcludeHeader:=False, FieldNumber:="Titres", SortFieldType _
        :=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, FieldNumber2 _
        :="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
        wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
        wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
        wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
        :=wdFrench, SubFieldNumber:="Paragraphes", SubFieldNumber2:="Paragraphes" _
        , SubFieldNumber3:="Paragraphes"
    Selection.Font.ColorIndex = wdAuto
End Sub