Gérer les changements de page dans word depuis une macro Excel

Bonjour à tous,

Je suis nouveau sur le forum, et en programmation vba également! Et je viens solliciter... votre lumière!

Dans le cadre de mon travail je réalise une macro pour générer des étiquettes sous word, mises en forme grâce a des textboxes. Je souhaite faire un fichier qui soit intégralement automatisé ou personne n'a besoin de revenir paramétrer quelque chose.

L'objectif est donc: Excel génère les données a mettre sur étiquettes, puis copie chaque ligne avec mise en forme sur une page word, saute une page et copie la ligne suivante.

J'ai déjà réalisé la partie génération des données a copier sur les étiquettes dans Excel, puis l'ouverture de Word. Dans Word la mise en forme se déroule comme souhaité... Puis viens la partie changer de page pour copier la ligne suivante.

L'insertion de la nouvelle page word fonctionne. Mais je n'arrive pas à lui faire reprendre depuis cette nouvelle page. En gros soit il me copie toutes les lignes sur la 1ère page (en m'insérant des pages vides derrière), soit il s'arrête quand mes nombreux essais de code ne sont pas bons. Fait amusant, cela fonctionne parfaitement quand je retire mon code "qui tente de selectionner la page suivante" et que je place une Msgbox a cet endroit, et que je place le curseur sur la page suivante pendant la msgbox! C'est donc bien cette sélection de page suivante qui pose problème, mais je n'ai pas envie de devoir cliquer 30 000 fois sur la page suivante puis faire ok sur la msgbox...

Question donc: Comment, depuis ma macro excel placer ce curseur sur la page word suivante (qui accessoirement est aussi la dernière a chaque fois)?

C'est peut être tout bête mais je m'arrache les cheveux dessus lol!

Voici le code :

            'Test de la ligne suivante pour continuer ou pas
            With fichierexcel
                test = ActiveCell
            End With
            If Len(test) < 5 Then
                keeplooping = False

            Else 'Sinon ajout d'une page, et c'est reparti.

                Set myRange = fichierword.Paragraphs(1).Range
                With myRange
                    .Collapse Direction:=wdCollapseEnd
                    .InsertBreak Type:=wdPageBreak
                End With
                MsgBox ("Hello once")
                Selection.Goto What:=wdGoToPage, Which:=wdGoToLast
                MsgBox ("Hello again")

                'ActiveDocument.Range.Select
                'Selection.Goto What:=wdGoToPage, Which:=wdGoToAbsolute, _
                        Count:=numpage
                'numpage = numpage + 1
            End If

        'Fin de boucle
        Wend

Tout marche jusqu'à "Hello once".

Merci pour votre aide!

Bonjour,

Pour insérer un saut de page dans un doc depuis excel, c'est du genre :

Worddoc.Paragraphs(.Paragraphs.Count - 1).Range.InsertBreak Type:=wdPageBreak

(nb, si liaison tardive => wdPageBreak=7)

Pierre

Hello,

Merci pour la réponse.

Ce que tu proposes ressemble à ce que j'ai déjà non?

                Set myRange = fichierword.Paragraphs(1).Range
                With myRange
                    .Collapse Direction:=wdCollapseEnd
                    .InsertBreak Type:=wdPageBreak
                End With
                MsgBox ("Hello once")
                Selection.Goto What:=wdGoToPage, Which:=wdGoToLast
                MsgBox ("Hello again")

Et cette partie là (copiée depuis docs.microsoft.com), fonctionne déjà en soi, l'insertion de la page a bien lieu, c'est sa sélection pour la mise en forme suivante qui pose problème.

J'ai quand même testé avec ta formulation, mais cela revient au même dans le sens ou le curseur reste sur la première page et l'insertion des données suivantes continue sur cette page (les cadres se superposent). Le but est de trouver comment sélectionner la page suivante. Quand je regarde à "Hello again" le curseur reste sur la 1ère.

Une idée?

Merci!

Rechercher des sujets similaires à "gerer changements page word macro"