Impression automatique lien hypertexte pdf sous word

jmmourlot Messages postés 1 Date d'inscription mardi 20 mars 2012 Statut Membre Dernière intervention 20 mars 2012 - 20 mars 2012 à 15:43
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 23 mars 2012 à 12:23
Bonjour,

Je travail sous Word 2010, amateur de vba, je cherche un code qui me permettrait d'imprimer des liens hypertextes (ficher pdf dans un dossier sur le bureau) dans mon document Word sur simple clique, en évitant si possible d'ouvrir le document pdf. (Avec Shell Execute)
Je suis tomber sur plusieurs codes, et certains répondent à ma requête, mais sur Excel. J'avais cela sous Excel, comment l'adapter pour que ça marche sous Word.


Dans Module1
Code :
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Dans ThisWorkbook
Code :
Option Explicit

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim Ret As Long, hwnd As Long
Dim sNom As String
sNom = Target.Address
Ret = ShellExecute(hwnd, "Print", sNom, 0&, 0&, 1)
End Sub

Merci à l'avance de votre aide

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
23 mars 2012 à 12:23
Bonjour,
Je ne pense pas que l'on puisse le faire de la même manière que sous Excel. Par contre je peut te donner une piste.
Inserer un UserForm dans lequel tu ajoutes une listBox. Tu n'auras qu'a cliquer sur le lien qui s'affichera dans la listBox. Voici le code dans l'UserForm:

Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
Private Sub UserForm_Initialize()
ListeLiens
End Sub
Sub ListeLiens()
    Dim nomlien As String
    Dim hlien As Hyperlink
    For Each hlien In ActiveDocument.Hyperlinks
        With hlien
            nomlien = .Address
        ListBox1.AddItem (nomlien)
        End With
    Next
   End Sub
Private Sub ListBox1_Click()
Dim Ret As Long, hwnd As Long
Dim Address As String
If ListBox1.Value = "" Then Exit Sub
Address = ListBox1.Value
ThisDocument.FollowHyperlink Address 'affiche l'aperçu des images et des télécopies Windows
Ret = ShellExecute(hwnd, "Print", Address, 0&, 0&, 1)
End Sub


et le code dans ThisDocument:

Private Sub Document_Open()
UserForm1.Show
End Sub

Le Pivert
Rejoignez-nous