Insertion de saut de page dans word après copier/coller depuis Excel

thom02

XLDnaute Junior
Bonjour,

Je fais des copier/coller dans word depuis excel via des bookmarks.

Le problème est que le nombre de choses à copier/coller peut varier.
J'ai donc prévu dans mon code des bookmark qui s'incrémentent et dans mon word de nombreux bookmarks avec le meme nom incrémenté... maiiiis ce n'est pas très propre :confused:

Ces collés ont ceci en commun que je voudrais qu'ils soient chacun sur la premiere ligne d'une nouvelle page (saut de page).

Aussi, serait il possible de d'avoir un bookmark uniquement pour le premier signet et que dans ma boucle je colle tous les suivants à la page suivante au moyen d'un simple coller?

Voici mon code actuel qui copie colle tout à la suite...

Code:
Do While FeuilleExiste(Feuil49.Range("A" & i)) And i < 39
    nom = Feuil49.Range("A" & i)
    Set strTab = Sheets(nom)
    ThisWorkbook.Sheets(strTab.Range(RechercheCoordoneesFin(Feuil49.Range("A" & i)))).Copy
    LeDocWord.Bookmarks("TEST" & iBlock).Range.PasteSpecial Link:=False
    Call ViderLePressePapier
    Set strTab = Nothing
    i = i + 1
    iBlock = iBlock + 1
Loop

James007 m'a montré le code suivant mais je ne sais pas comment l'intégrer et ne suis meme pas certain qu'il fasse ce que je souhaiterais..

merci pour votre aide

Code:
With LeDocWord.Paragraphs(wdDoc.Paragraphs.Count).Range
            .InsertParagraphBefore
            .Collapse Direction:=wdCollapseEnd
            .InsertBreak Type:=wdPageBreak
End With
 

James007

XLDnaute Barbatruc
Re : Insertion de saut de page dans word après copier/coller depuis Excel

Bonjour,

Le code suggéré hier permet à Excel d'insérer des sauts de page pour des plages qui sont copiées vers Word en standard ( c-à-d Paragraphs dans Word )

Perso, je n'ai jamais utilisé les Bookmarks dans Word ... je sais simplement qu'il en existe plusieurs types, et que s'il faut les gérer, c'est un super casse-tête ...

Dans ton cas, puisque tu utilises les bookmarks, je te suggère d'accomplir toute ta première étape de copie, et ensuite, dans une seconde étape, de gérer l'insertion de tes sauts de page entre les bookmarks déjà générés ... en faisant une boucle dans la collection des bookmarks de ton document.
Code à tester :
Code:
For Each bkm in LeDocWord.Range.Bookmarks
   With bkm
        .Range.Collpase Direction:=wdCollapseEnd
        .Range.InsertBreak Type:=wdPageBreak
   End With
Next

A +
:)
 

thom02

XLDnaute Junior
Re : Insertion de saut de page dans word après copier/coller depuis Excel

J'ai trouvé dans l'aide vba ce code ci mais ca fonctionne toujours pas :(

avez vous d'autre idées?


Code:
Set myRange = ActiveDocument.Bookmarks("TEST" & iBlock).Range
    With myRange
    .Collapse Direction:=wdCollapseEnd
    .InsertBreak Type:=wdPageBreak
    End With


au final ma boucle fait ceci

Code:
Do While FeuilleExiste(Feuil49.Range("A" & i)) And i < 39
    nom = Feuil49.Range("A" & i)
    Set strTab = Sheets(nom)
    cordonnees = RechercheCoordoneesFin(Feuil49.Range("A" & i))
    strTab.Range(cordonnees).Copy
  
    .InsertParagraphAfter.Bookmarks ("TEST" & iBlock)
    LeDocWord.Bookmarks("TEST" & iBlock).Range.PasteSpecial Link:=False
    
    Set myRange = ActiveDocument.Bookmarks("TEST" & iBlock).Range
    With myRange
    .Collapse Direction:=wdCollapseEnd
    .InsertBreak Type:=wdPageBreak
    End With
     
    
    
    Call ViderLePressePapier
    
    Set strTab = Nothing
    i = i + 1
    iBlock = iBlock + 1
Loop

Autre possibilité serait d'insérer un point de repère juste avant ma boucle afin d'insérer le premier bloc de texte après mon point de rpère et puis creer un saut de page après chaque paragraphe.

J'ai essayé de simuler l'insertion de saut de page avec des raccourcis clavier ctrl+enter
Code:
LeDocWord.SendKeys "^{ENTER}", True

mais cela ne fonctionne pas non plus :)

snif... snif :)
 

James007

XLDnaute Barbatruc
Re : Insertion de saut de page dans word après copier/coller depuis Excel

Bonjour,


En lisant ton dernier message, je me demande si tu as lu le post #2 du fil ... :confused:
car je t'y explique que traiter des bookmarks ou des paragraphs dans Word sont vraiment deux choses très différentes ...

A +
:)
 

thom02

XLDnaute Junior
Re : Insertion de saut de page dans word après copier/coller depuis Excel

Bonjour,


En lisant ton dernier message, je me demande si tu as lu le post #2 du fil ... :confused:
car je t'y explique que traiter des bookmarks ou des paragraphs dans Word sont vraiment deux choses très différentes ...

A +
:)

Merci pour ta patience !!

J'ai bien lu mais et je fais de mon mieux :eek:

Devrais je aller plus dans cette direction?
Qui ne fonctionne toujours pas....

Code:
Dim bkm As Bookmark
Dim IndexBookmark As Integer
IndexBookmark = 1

Do While IndexBookmark < iBlock + 1


Set bkm = LeDocWord.Bookmarks("TEST" & IndexBookmark)
    LeDocWord.Bookmarks("TEST" & IndexBookmark).Range.Collapse Direction:=wdCollapseEnd
    LeDocWord.Bookmarks("TEST" & IndexBookmark).Range.InsertBreak Type:=wdPageBreak
   
    IndexBookmark = IndexBookmark + 1
   
Loop
 

James007

XLDnaute Barbatruc
Re : Insertion de saut de page dans word après copier/coller depuis Excel

Re,

Comme je te l'ai déjà indiqué, je n'ai jamais manipulé les bookmarks de Word depuis Excel VBA ...

Mais, avec le code partiel que tu joins, je n'ai pas la possibilité de deviner comment tu manipules l'object Word ... c-à-d l'application elle même ...
puisque je devine que ta variable LeDocWord est l'ActiveDocument ...

Or l'idée centrale reste que le VBA d'Excel contrôle le VBA de Word ...

A +
:)
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin