Copier un pdf embeded depuis un word vers un autre via VBA
Salut les VB-Aficionados,
Je me permets de vous solliciter car je suis face à un petit challenge (sans doute rien de fou pour certains d'entre vous, mais moi je bloque ^^) et j'aurais besoin d'un coup de main:
Dans le but d'optimiser certaines taches dans mon travail, j'aurais besoin d'un petit code vba qui permet, lorsque 2 words sont ouverts sur le pc, de pouvoir copier coller les pdf qui se trouvent dans le word 1 vers le word 2. Quelqu'un aurait une idée/piste/code déjà ecrit incroyable?
Je ne peux malheureusement pas poster les fichiers words car ce sont des données entreprises que je n'ai pas le droit de sortir du réseau interne, mais le concept est assez simple je pense/ j'espère.
Pour un peu plus d'explications, j'ai des projets à gérer, toute la journée, et ces projets se ressemblent bien souvent mais concernent des machines différentes. J'ai donc à editer une documentation nouvelle pour chaque machine même si la documentation en elle-même reste la même globalement, seul quelques details changent. Ce que je cherche à faire, c'est donc d'ecrire du code qui prend la doc initiale, fait les modifs necessaires pour la nouvelle machine, et enregistre cette nouvelle doc au bon endroit. Tout ce qu'il me reste à automatiser, c'est de copier les fichiers .pdf qui se trouvent dans la doc intiale vers la doc finale...Et là, je séche ^^
Voilà, merci infiniment pour votre aide!
Bonne journée à tous .
Bonjour,
Il vous faudra sans doute créer un signet dans le document de destination pour positionner le fichier au bon endroit.
Dans le ci-dessous, on suppose qu'il n'y a qu'un seul objet de type InLineShape dans le document source, c'est à dire des objets de type image, fichier, etc...
Option Explicit
Sub Test()
Dim DocSource As Document, DocCible As Document
Dim I As Integer
If Documents.Count <> 2 Then
MsgBox "Le nombre de docs ouverts est différent de 2"
Exit Sub
End If
Set DocSource = ActiveDocument
For I = 1 To Documents.Count
If Documents(I) <> ThisDocument.Name Then Set DocCible = Documents(I)
Next I
With DocSource
.InlineShapes(1).Range.Select
Selection.Copy
DocCible.Activate
Selection.PasteAndFormat (wdPasteDefault)
' DocCible.Close savechanges:=True
End With
Set DocSource = Nothing: Set DocCible = Nothing
End Sub
Bonjour Erik,
Cela ressemble bien à ce dont j'ai besoin. Les sagnets sont déjà créés, je me doutius que j'en aurais besoin. Je testerai votre code plus tard, le boulot étant ce qu'il est, j'ai d'autres obligations pour l'instant :/
En tout ca, merci beaucoup, je pense que ça devrait le faire. Je reviendrai ici poster la solution finale le cas échéant.
Bonne journée !