Copier signet PDF/Word vers un nouveau doc PDF/Word via VBA Excel

Bonjour,

Je viens vers vous pour m'aider à résoudre ce casse tête. J'ai un document PDF de 900 pages remplit de signet et un doc Excel avec le nom des personnes ayant besoin de certaines infos dans ce PDF. J'aimerais pouvoir créer un PDF ou Word automatiquement, avec uniquement les Signets dont ils ont besoin.

N'ayant trouvé aucune solution pour le PDF, je me suis rabattu sur la VBA Word via Excel, mais il faut croire que j'ai beaucoup de mal à comprendre la logique de construction qui n'est apparemment pas la même que la VBA Excel (je ne suis que débutant).

Voici la construction que j'aimerais réaliser :

J'encode les différents nom des signets à reprendre et excel les copies du PDF/Word vers un nouveau PDF/Word

Je vous mets le fichier crash test avec le tableau de référence.

Je vous mets aussi le code que j'ai essayé d'élaborer.

Le PDF étant privé, je ne saurais pas vous en donner.

Merci pour votre aide,

Devoriis.

Sub TESTSIGNET()

Dim oTarDoc As Document, oSourceDoc As Document
Dim oRng As Word.Range
Dim oRngSource As Word.Range

Set oSourceDoc = Documents.Open("E:\Documents\Norbert\signet.docx")
Set oTarDoc = Documents.Open("E:\Documents\Norbert\test2.docx")

With oTarDoc
'box 1
    Set oRng = .Bookmarks("BigBang").Range
    Set oRngSource = oSourceDoc.Bookmarks("bigbang").Range
    oRngSource.End = oRngSource.End - 1
    oRng.Text = oRngSource.Text
    .Bookmarks.Add "bigbang", oRng
End With

End Sub
33testing-series.xlsm (21.65 Ko)

Bonjour Devoriis,

Voir ci dessous.

Pour ouvrir un fichier pdf à une page précise il suffit d'ajouter à ce fichier pdf en page souhaitée un signet.

Exemple: Pour aller en page 3 du pdf ExcelDocs, j'ajoute un signet nommé Page3 sur sa troisième page. Puis je l'indique dans le chemin comme ci-dessous.

=Lien_Hypertexte("C:\Users\Untel\DossierExcel\ExcelDocs.pdf#Page3","Mapage")

Si les signets sont déjà présents sur le document PDF de 900 pages. On les reprends avec le bon chemin pour chacun des personnes avec leurs signets propres.

Exemple: Le sieur a besoin des signets Page3, Page45, Page122, etc... il faudra modifier le lien Hypertext et remplacer Page3, par les autres Pages.

Si ceux sont des signets titrés. Par exemple: Procédure_Truc. Ce sera ......#Procédure_Truc","Procédure Truc").

J'utilise des PDF d'environ 450 pages sans souci. Et depuis Excel je lance le PDF à la bonne page ou titre.

Bonsoir X Cellus,

Déjà, merci pour votre réponse qui correspond exactement à ce que je recherche !

J'ai essayé d'imbriquer votre solution dans mon code mais cela ne fonctionne pas. Pourriez -vous me montrer un exemple de code dans lequel vous l'utilisez ? Cela m'aiderait à mieux comprendre.

Merci d'avance !

A nouveau,

=Lien_Hypertexte(...) est une formule du Menu général d'Excel (Menu Formules puis Recherche & Références)

Il n' y a pas à l'insérer dans un code VBA. Il s'insère dans une cellule d'une feuille d'Excel.

Suite,

Il est possible de créer une liste déroulante pour chaque personne utilisant le PDF.

Cette liste déroulante aurait uniquement la partie Signet. Comme Page3... etc...

Et une seule cellule aurait le lien Hypertexte mais incomplet. avec pour terme final le choix fait par la personne.

Comme ci-dessous.

=Lien_Hypertexte("C:\Users\Untel\DossierExcel\ExcelDocs.pdf#" & C10 &",Suivre")

Ou C10 est la cellule de la liste déroulante.

Bonjour,

Je vois, mais dans mon cas j'ai beosin de créer un PDF avec uniquement les signet qui sont dans le PDF général dont ils n'ont pas l'accès.

Bonjour Devoriis,

Cela va dépendre des propres signets dont une personne peut consulter. Donc d'une liste de signets affectés seulement à une personne donnée

Car dans ce cas ce sera une boucle VBA qui va aller chercher les signets autorisées. Et créer un PDFperso, si sa liste de signets est fixe.

Exemple: En première colonne la liste des personnes et en colonne suivantes tous leurs signets.

Je vais faire un test sur un de mes PDF et te redis.

Bonsoir Devoriis,

Après téléchargement de ton fichier, il y a uniquement des essais de macro pour récupérer des signets Word.

Donc voilà ci-dessous une manière de procéder.

Sub wordsignet()
''Récupération de signets Word sur la 1ière colonne d'une feuille Excel
Dim wrd As Object
Dim i As Integer, aBookmark as Bookmark
Set wrd = CreateObject("Word.Application")
'Adapter selon le bon chemin du fichier Word
wrd.Documents.Open FileName:="C:\Users\Untel\dossier\fichier.docx"
'wrd.Visible = True
If wrd.ActiveDocument.Bookmarks.Count >= 1 Then
i=1
'Début des signets à partir de la deuxième ligne
For Each aBookmark In wrd.ActiveDocument.Bookmarks
Worksheets("Feuil1").Range("a1").Offset(i, 0) = aBookmark.Name
i = i + 1
Next aBookmark
End If
wrd.Quit
Set wrd = Nothing
End Sub

Faire un essai sur un document Word de quelques pages avec plusieurs signets.

Ensuite ils peuvent être triés en fonction de critères particuliers.

Bonjour,

Désolé pour cette réponse assez tardive, j'ai eu un gros contre temps avec le boulot.

Comme dis dans mon explication, je souhaite le faire à partir d'un doc PDF vers un autre doc PDF. Mais n'y arrivant pas, je m'étais tourné vers Word.

Le problème avec votre solution, c'est que les signets sont copié sur Excel, donc sans format, hors j'ai besoin que le format soit identique que sur le PDF original.

Bonsoir Devoriis,

Je ne vois pas l'intérêt de copier le format des signets. Ceux-ci sont destinés essentiellement à cibler une page ou une section particulière d'un document.

Si effectivement pour certains lecteurs PDF ou créateurs PDF on peut formater les signets par des couleurs et/ou des styles.

Sur Word, on peut jouer sur les caractères, en majuscules ou minuscules et/ou en y ajoutant des codes spécifiques pour signifier une hiérarchie.

Lorsqu'on exporte (créer un pdf/xps) le document et non l'imprimer en utilisant l'imprimante PDF. On gardera intacte les signets en passant par Options puis

Inclure les informations non imprimables (en cochant signets Word).

Après il faut se tourner sur Adobe pro DC (mais payant) pour accéder aux fonctions permettant l'ensemble de la gestion des signets.

Rechercher des sujets similaires à "copier signet pdf word nouveau doc via vba"