Numéroter automatiquement les paragraphes d'un document Word

La solution ci-dessous consiste simplement à remplacer le style "Normal" par le style "Liste à numéros".
On pourra ensuite modifier le style "Liste à numéros" pour améliorer le rendu, si on le souhaite.
Le programme saute les paragraphes vides (Parag.Range.Characters.Count > 1).

Sub MetLesNumeros()
Dim Parag As Paragraph
For Each Parag In ActiveDocument.Paragraphs
    If Parag.Style = "Normal" And Parag.Range.Characters.Count > 1 Then
        Parag.Range.Select
        Selection.Style = ActiveDocument.Styles("Liste à numéros")
    End If
Next Parag
ActiveDocument.Range(Start:=0, End:=0).Select
End Sub

Si on veut mettre les chiffres en gras, il suffit d'en sélectionner un, de le mettre en gras, et ils se mettent tous en gras automatiquement.


Pour affiner la présentation, vous pouvez modifier le style "Liste à numéros" : Paragraphe, rubrique Retrait, jouer sur Retrait et Suspendu
En Times New Roman 12, par exemple, on peut mettre : Retrait = 6 mm, Suspendu = 6 mm
Si vous êtes méticuleux, vous pouvez créer un autre style pour les numéros à deux chiffres (Retrait = 4mm, Suspendu = 8 mm) et encore un autre pour les numéros à 3 chiffres (Retrait = 2 mm, Suspendu = 10 mm)

Pour faciliter cette opération (surtout si vous avez des titres), voici une macro qui attribue un style différent en fonction du numéro de paragraphe. Si le paragraphe a un numéro qui va de 10 à 99, il aura le style "ListeNN", si le paragraphe a un numéro qui va de 100 à 999, il aura le style "ListeNNN" et si le paragraphe a un numéro qui va de 1000 à 9999, il aura le style "ListeNNNN".
Il suffira ensuite de modifier ces nouveaux styles (en jouant sur Retrait et Suspendu comme vu ci-dessus) pour obtenir une apparence satisfaisante.

Sub Test1()
ActiveDocument.Styles.Add ("ListeNN")
ActiveDocument.Styles.Add ("ListeNNN")
ActiveDocument.Styles.Add ("ListeNNNN")

Dim Num
Num = 1
Dim Total
Total = ActiveDocument.ListParagraphs.Count

If Total > 9 And Total < 100 Then
    For Num = 10 To Total
        ActiveDocument.ListParagraphs.Item(Num).Style = ActiveDocument.Styles("ListeNN")
    Next
End If

If Total > 99 And Total < 1000 Then
    For Num = 10 To 99
        ActiveDocument.ListParagraphs.Item(Num).Style = ActiveDocument.Styles("ListeNN")
    Next
    For Num = 100 To Total
        ActiveDocument.ListParagraphs.Item(Num).Style = ActiveDocument.Styles("ListeNNN")
    Next
End If

If Total > 999 And Total < 10000 Then
    For Num = 10 To 99
        ActiveDocument.ListParagraphs.Item(Num).Style = ActiveDocument.Styles("ListeNN")
    Next
    For Num = 100 To 999
        ActiveDocument.ListParagraphs.Item(Num).Style = ActiveDocument.Styles("ListeNNN")
    Next
    For Num = 1000 To Total
        ActiveDocument.ListParagraphs.Item(Num).Style = ActiveDocument.Styles("ListeNNNN")
    Next
End If

End Sub