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