VBA word imprimer en word page par page
kingso
-
m@rina Messages postés 23908 Date d'inscription Statut Contributeur Dernière intervention -
m@rina Messages postés 23908 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous
j'ai trouvé un code VBA pour Word que j'utilise tout les jours,mais j'aimerai améliorer ce code .
Il permet d'enregistrer page par page un document word en pdf (plusieurs lettre individuel dans un seul doc word).
aujourd’hui je voudrai que ce code enregistre en Word et que je puisse renommer chaque page (si possible par rapport a une ligne précise (M.DUPONT HENRY) car ce sont des lettres individuel.
ci-dessous le code :
merci d'avance .
cordialement.
j'ai trouvé un code VBA pour Word que j'utilise tout les jours,mais j'aimerai améliorer ce code .
Il permet d'enregistrer page par page un document word en pdf (plusieurs lettre individuel dans un seul doc word).
aujourd’hui je voudrai que ce code enregistre en Word et que je puisse renommer chaque page (si possible par rapport a une ligne précise (M.DUPONT HENRY) car ce sont des lettres individuel.
ci-dessous le code :
Sub SaveAsSeparatePDFs()
Dim I As Long
Dim xStr As String
Dim xPathStr As Variant
Dim xDictoryStr As String
Dim xFileDlg As FileDialog
Dim xStartPage, xEndPage As Long
Dim xStartPageStr, xEndPageStr As String
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
If xFileDlg.Show <> -1 Then
MsgBox "Please chose a valid directory", vbInformation, "Kutools for Word"
Exit Sub
End If
xPathStr = xFileDlg.SelectedItems(1)
xStartPageStr = InputBox("Begin saving PDFs starting with page __? " & vbNewLine & "(ex: 1)", "Kutools for Word")
xEndPageStr = InputBox("Save PDFs until page __?" & vbNewLine & "(ex: 7)", "Kutools for Word")
If Not (IsNumeric(xStartPageStr) And IsNumeric(xEndPageStr)) Then
MsgBox "The enterng start page and end page should be number format", vbInformation, "Kutools for Word"
Exit Sub
End If
xStartPage = CInt(xStartPageStr)
xEndPage = CInt(xEndPageStr)
If xStartPage > xEndPage Then
MsgBox "The start page number can't be larger than end page", vbInformation, "Kutools for Word"
Exit Sub
End If
If xEndPage > ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) Then
xEndPage = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
End If
For I = xStartPage To xEndPage
ActiveDocument.ExportAsFixedFormat xPathStr & "\Page_" & I & ".pdf", _
wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportFromTo, I, I, wdExportDocumentWithMarkup, _
False, False, wdExportCreateHeadingBookmarks, True, False, False
Next
End Sub
merci d'avance .
cordialement.
A voir également:
- VBA word imprimer en word page par page
- Supprimer une page word - Guide
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Espace insécable word - Guide
- Word et excel gratuit - Guide
5 réponses
Bonjour,
Il s'agit du résultat d'un publipostage ?
Parce que Dupont Thierry, ou Duschmoll Jules, ça ne va rien dire à Word !
Il faut donc donner à Word un critère de coupure.
Exemple de macro ici pour couper par section :
https://faqword.com/index.php/word/publipostage/552-comment-couper-un-gros-fichier-en-autant-de-petits-fichiers-quil-y-a-de-sauts-de-section
m@rina
Il s'agit du résultat d'un publipostage ?
Parce que Dupont Thierry, ou Duschmoll Jules, ça ne va rien dire à Word !
Il faut donc donner à Word un critère de coupure.
Exemple de macro ici pour couper par section :
https://faqword.com/index.php/word/publipostage/552-comment-couper-un-gros-fichier-en-autant-de-petits-fichiers-quil-y-a-de-sauts-de-section
m@rina
bonjour,
merci pour votre réponse.
j'ai utilisé votre code qui fonctionne parfaitement . j'ai vu qu'il était possible de l'enregistrer sous un nom spécifique. comment puis-je le rajouter à la macro ?
merci d'avance.
cordialement .
merci pour votre réponse.
j'ai utilisé votre code qui fonctionne parfaitement . j'ai vu qu'il était possible de l'enregistrer sous un nom spécifique. comment puis-je le rajouter à la macro ?
merci d'avance.
cordialement .
m@rina,
il s'agit de ses 2 macro :
http://faqword.com/index.php/word/publipostage/552-comment-couper-un-gros-fichier-en-autant-de-petits-fichiers-quil-y-a-de-sauts-de-section
http://faqword.com/index.php/word/environnement/736
mes lettres sont toujours écrite de la même manière et le nom prénom de la personne se trouve toujours à la même place .
peux-tu m'aider s'il te plait .
merci d'avance.
cordialement .
il s'agit de ses 2 macro :
http://faqword.com/index.php/word/publipostage/552-comment-couper-un-gros-fichier-en-autant-de-petits-fichiers-quil-y-a-de-sauts-de-section
http://faqword.com/index.php/word/environnement/736
mes lettres sont toujours écrite de la même manière et le nom prénom de la personne se trouve toujours à la même place .
peux-tu m'aider s'il te plait .
merci d'avance.
cordialement .
Bonjour,
Dans la première macro, ajoute au début toutes la déclaration de la variable "nom".
Evidemment, il faut que tu mettes bien le bon numéro de paragraphe, et du ou des mots.
Puis à la place de
tu mets :
m@rina
Dans la première macro, ajoute au début toutes la déclaration de la variable "nom".
Evidemment, il faut que tu mettes bien le bon numéro de paragraphe, et du ou des mots.
Puis à la place de
.SaveAs FileName:=chemin & DocNum & ".docx"
tu mets :
.SaveAs FileName:=chemin & nom & ".docx"
m@rina
Super merci,
Jai réussi à faire fonctionner la macro parcontre il m'enregistrer tout les fichier sous le même nom prénom ,ce qui fait que jai qu'un 1 seul document d'enregistrer sur 5 .
Peux tu m'aider ? Je voudrais que quand il passe à la page 2 il enregistre le document sous ce nom. Car la boucle ne prend en compte que le 1er enregistrement.
Merci d'avance.
Cordialement.
Jai réussi à faire fonctionner la macro parcontre il m'enregistrer tout les fichier sous le même nom prénom ,ce qui fait que jai qu'un 1 seul document d'enregistrer sur 5 .
Peux tu m'aider ? Je voudrais que quand il passe à la page 2 il enregistre le document sous ce nom. Car la boucle ne prend en compte que le 1er enregistrement.
Merci d'avance.
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui, désolée, mais effectivement la variable Nom doit bien sûr être mise dans la boucle.
m@rina
For x = 1 To ActiveDocument.Sections.Count - 1
Set R = ActiveDocument.Sections(x).Range: R.End = R.End - 1
R.Copy
Documents.Add Template:="...monmodele.dotx"
Selection.Paste
'Mettez ici le nom complet du dossier où vous souhaitez récupérer les documents
chemin = "C:\..."
nom = ActiveDocument.Paragraphs(2).Range.Words(3)
With ActiveDocument
.SaveAs FileName:=chemin & nom & ".docx"
.Close
End With
Next x
m@rina