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,

Rechercher des sujets similaires à "enregistrer chaque page tant que fichier pdf separe noms doc"