Imprimer un document en cliquant sur une image

bonjour

pour l'instant j'ai un fichier, quand je clique sur une image, le fichier que j'ai choisi s'ouvre. Via la commande activeworkbook.hyperlink.
Exemple:

Private Sub Image1_Cliquer()
Activeworkbook.Followhyperlink ("C:\Documents\test.pdf")
End Sub

va s'afficher devant moi le fichier "test.pdf" présent dans mes documents. J'ai trouvé ce code via un tuto sur le net.

Cependant je cherche comment, via un clic sur une image, le fichier renseigné peut s'imprimer, en y renseignant le chemin d'accès par exemple.

J'ai tenté ce code (trouvé aussi sur le net) suivant mais il ne fonctionne pas, rien ne se lance sur les différentes imprimantes que j'ai en réseau :

Private Sub Image2_Cliquer()
     Dim NomFichier As String
    Dim x As Long

    x = FindWindow("XLMAIN", Application.Caption)
    NomFichier = "C:\Documents\test.pdf"

    ShellExecute x, "print", NomFichier, "", "", 1
End Sub

Je dois sans doute m'y prendre très mal pour arriver à mes fins et les tutoriels trouvés sur internet ne fonctionnent pas ou n'est pas ce que je recherche.

Merci pour votre aide :)

Bonjour lucrob,

Normalement avec ce code, pas besoin pour moi de trouver le nom de la fenêtre

Private Sub Image2_Cliquer()
  Dim sFilePath As String
  sFilePath = "C:\Documents\test.pdf"
  ShellExecute 0, "print", sFilePath, vbNullString, vbNullString, 1
End Sub

A+

Hello Bruno,

Merci pour ton retour.

Je viens de tester ton code et pour le ShellExecute il me le souligne en mettant "Erreur de Compilation : Sub ou Function non définie".

Cela me l'indique autant avec un Sub qu'un Private Sub.

As-tu une idée ?

Merci

image

Bonjour Lucrob,

Une réponse 16 jours après, whouaou

Ceci dit, vous nous parliez sur le 1er post de l'utilisation de ShellExecute
j'ai donc pensé naturellement que vous la déclaration de l'API était faite, à priori, non

#If VBA7 Then
  Private Declare PtrSafe 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
#Else
  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
#End If

Private Sub Image2_Cliquer()
  Dim sFilePath As String
  sFilePath = "C:\Documents\test.pdf"
  ShellExecute 0, "print", sFilePath, vbNullString, vbNullString, 1
End Sub

A+

Bonjour,

J'ai été pris par d'autres priorités professionnelles que de tester l'actuel fichier.

Je vous remercie pour le retour. Je teste cela immédiatement.

Re,

Quoi qu'il arrive, la ligne après Else est rouge quand je la colle.

Merci

NB : J'ignorais que cela pouvait être aussi compliqué que de faire ce que je souhaite, autrement dit, simplement cliquer sur une image pour qu'un document défini par hyperlien s'imprime :( Sorry pour l'aide visiblement importante sollicitée

Re,

La ligne "Else" est en rouge c'est normal, c'est une déclaration API pour un système 32bits
c'est juste pour avertir que cette ligne ne peut fonctionner.

Mais c'est la 1ère qui sera utilisée, c'est ce qu'on appelle une déclaration conditionnelle

Sinon en informatique rien n'est forcément simple

A+

Bonjour,

Le code ne signale effectivement pas d'erreur mais quand je clique rien ne sort de l'imprimante.

Peut-être parce que c'est une imprimante en réseau dans mon entreprise ?

Re,

L'impression doit se faire sur l'imprimante définit par défaut sur votre poste

Je ne pourrais rien faire de plus pour vous

Rechercher des sujets similaires à "imprimer document cliquant image"