Fonction insertbreak

Salut à tous,

Je cherche à utiliser la fonction insertbreak pour faire des sauts de lignes dans word après chaque signet que je crée.

N'ayant jamais utilisé la fonction, j'ai essayé sur le vba de word avant de l'incorporer dans celui de mon fichier principal. J'ai fais ce que j'ai voulu avec ce bout de code :

Sub test()
Dim signet As Variant
ActiveDocument.Bookmarks("cible").Select
Selection.InsertBreak Type:=wdPageBreak

For I = 1 To 5
Selection.InsertBreak Type:=wdLineBreak
ActiveDocument.Bookmarks.Add Name:="signet" & I
Next I

For x = 1 To 5
ActiveDocument.Bookmarks("signet" & x).Range = "ça marche" & x
Next x

End Sub

En gros, à partir d'un signet déjà présent dans le document word, ça me créée 5 autres signets sur 5 lignes différentes, ces 5 signets sont ensuite remplacé par du texte.

Mon problème est que quand je l'insère dans me code principal ça ne fonctionne plus, les signets sont créés au même endroit. Voici le code en question :

Sub Excel_vers_Word()
Dim WordApp As Object, WordDoc As Object
Dim Ndf As String, NDF2 As String, Rep As String
Dim vaData As Variant
Dim tbl As Word.table
Dim table As Variant

    Ndf = ActiveWorkbook.Path & "\TrameRetraite.docx"  ' le doc modèle est placé dans le même dossier que le xlsm
    Rep = ActiveWorkbook.Path & "\Compte rendus\"     ' pour enregistrer le doc résultat dans un sous-dossier

    If Not Exist_Fichier(Ndf) Then                  ' vérifie l'existence du doc modèle
        MsgBox "Document 'modeleword.docx' manquant", vbExclamation, "ERREUR"
    Else
        If Not Exist_Rep(Rep) Then MkDir Rep        ' vérifie l'existence du sous-dossier et le crée éventuellement
        NDF2 = Rep & InputBox("Quel est le nom de votre document ?", "Nom du document") & ".docx" ' pour enregistrer le résultat

        On Error Resume Next
        If Fichier_IsOpen(Ndf) Then                 ' vérifie si le modèle est déjà ouvert
           Set WordApp = GetObject(, "Word.Application")
           Set WordDoc = WordApp.Documents(Ndf)
        Else                                        ' sinon ouvre l'appli word et le modèle
            Set WordApp = CreateObject("Word.Application")
            Set WordDoc = WordApp.Documents.Open(Ndf, ReadOnly:=False)
        End If

'Sheets("Trimestres").Range("c:e").EntireColumn.Hidden = True
'Sheets("Trimestres").Range("i:i").EntireColumn.Hidden = True

        With WordApp
            .Visible = False

            'Ici il y a tout une autre partie du code

        End With

        WordDoc.Bookmarks("Spawn_hypothèse").Select
        table = Array("B24", "B17", "B4:J13", "B2")

        Selection.InsertBreak wdPageBreak

        For I = 9 To Worksheets.Count
            Selection.InsertBreak Type:=wdLineBreak

            For x = 0 To 3
                Selection.InsertBreak Type:=wdLineBreak
                WordDoc.Bookmarks.Add Name:="signet" & x
            Next x

            For y = 0 To 3
                Sheets(I).Range(table(y)).Copy
                WordDoc.Bookmarks("signet" & y).Range.PasteSpecial DataType:=wdPasteRTF
            Next y

        Next I

        WordDoc.Application.ActiveDocument.SaveAs NDF2  ' enregistre le doc complété

        WordApp.Visible = True ' ou bien : WordApp.Application.Quit ' pour fermer après remplissage
        Set WordDoc = Nothing
        Set WordApp = Nothing
        MsgBox "Document word prêt"

    End If
End Sub

Avec ce code les signets sont créés au même endroit que le signet original, je pense que c'est la fonction insertbreak qui ne fonction pas.

J'ai trouvé, il fallait que j'ajoute wordApp devant mon selection.

WordApp.Selection.InsertBreak Type:=wdLineBreak
Rechercher des sujets similaires à "fonction insertbreak"