Impression automatique lien hypertexte pdf sous word
jmmourlot
Messages postés1Date d'inscriptionmardi 20 mars 2012StatutMembreDernière intervention20 mars 2012
-
20 mars 2012 à 15:43
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 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
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 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