Enregistrer chaque page en tant que fichier PDF séparé avec des noms du doc
Bonjour à tous,
Je viens de m'inscrire et je demande votre aide.
J'ai un code qui me permet d'enregistrer les documents word microsoft en pdf séparément qui fonctionne très bien mais à la place ou en plus de "I" je voudrai avec des noms qui sont dans le paragraphe 18. (les noms sont dans la ligne du paragraphe 18)
Voici le code que j'ai:
Sub SaveAsSeparatePDFs()
'Updated by Extendoffice 20180906
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 de votre aide.
Bonjour,
Je crois que vous n'avez peut-être pas posté à la bonne rubrique...
Pour ma part, je ne connais rien à Word mais, en attendant une meilleure réponse, je propose quand même un essai :
P18 = Activedocument.paragraphs(18).range.text
Noms = split(P18)
Voici un exemple (en espérant que ça marche déjà) où P18 prendrait le texte du paragraphe 18 et Noms serait un tableau des tous les mots.
Ensuite, ce que vous en ferez, je n'ai pas compris...
Cdlt,
Bonjour 3GB,
Merci beaucoup d'avoir pris le temps de m'aider.
J'ai essayé mais j'ai eu un message " erreur d'exécution 13 incompatibilité de type".
Avec le code que j'ai mis dans mon premier message, lors de l'enregistrement du document word (avec plusieurs pages ) en pdf j'ai : page_1.pdf, pour la première page du document, page_2.pdf pour la deuxième page du document ect....
Et ce que je voudrai c'est avoir le texte qui est dans le paragraphe 18 en plus . Exemple : si dans la première page du doc au paragraphe 18, j'ai Mr Dupont, j'aimerai que lors de l'enregistrement en pdf j'ai : page_Mr Dupont_1.pdf
Si dans la deuxième page au paragraphe 18, j'ai Mr ALEX, j'aimerai avoir : page_Mr ALEX_2.pdf
Merci d'avance et bonne journée.
Bonjour,
J'ai tenté un essai comme ça au cas où mais honnêtement, je ne connais pas word.
Mais la logique, c'est qu'il y a des objets d'application (word en l'occurrence) qui en contiennent d'autres. Il faut trouver sur Microsoft Docs les embranchements (les objets contenus par chacun et leurs propriétés - NB : Une propriété renvoie souvent un objet ou une collection).
Il faut essayer de trouver un moyen de cibler pour chaque page le paragraphe 18. Par exemple (c'est juste un exemple), le contenu de la boucle devrait se rapprocher de ça :
With activedocument.activewindow.panes(1)
For each opage in .pages 'pour chaque page
I = .breaks(1).pageindex 'numero de page
nbparag = .document.paragraphs.count 'nb total de pragraphes
nbparagParPg = nbparag / .pages.count 'nb paragrpahes par pages
Nom = .document.paragraphs(18 + (I - 1) * nbparagParPg).range.text 'contenu paragraphe 18 de chaque page
.ExportAsFixedFormat xPathStr & "\Page_" & I & "_" & Nom &".pdf", _
wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportFromTo, I, I, wdExportDocumentWithMarkup, _
False, False, wdExportCreateHeadingBookmarks, True, False, False
Next
end with
Pour l'incompatibilité de type, je ne vois pas ce que ça peut être pour l'instant à part une mauvaise déclaration de type de la variable P18 (a priori de type string).
Cdlt,