Imprimer fichier PDF

Inconnu3

XLDnaute Nouveau
Bonjour à tous
J'aimerai créer un bouton qui permet d'ouvrir le fichier pdf selon une question "quel fichier voulez vous ouvrir?" puis de demander si il veut l'imprimer ou pas
est il possible ?
ci joint en photo ma base
Merci par avance pour votre aide
cordialement
Julie
 

Pièces jointes

  • base.png
    base.png
    26.6 KB · Affichages: 56

Staple1600

XLDnaute Barbatruc
Re

Comme je n'ai pas d'imprimante, peux-tu déjà tester ce code?
(en adaptant le nom du dossier contenant un pdf de test)
VB:
Option Explicit
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

Public Function Impression(a&, FileName$)
On Error Resume Next
Dim b&
b = ShellExecute(a, "Print", FileName, 0&, 0&, 3)
End Function

Sub Imprimer()
Dim result, Fichier$, Q
Fichier = "C:\Temp\test.pdf" ' adapter le chemin
Q = MsgBox("Voulez-vous-imprimer" & vbCrLf & Fichier, vbQuestion + vbOKCancel, "Impression document")
If Q = 1 Then
result = Impression(0, Fichier)
Else
Exit Sub
End If
End Sub
 

Inconnu3

XLDnaute Nouveau
C’est sur la dernière partie que je bloque
Car je voudrais faire ça : ( c’est écrit en italique )

Sub Imprimer()
Dim result, Fichier$, Q
Nom as string
Fichier = "E:\VBA\base VBA. » ' adapter le chemin
Nom = inputbox(« quel fichier voulez vous imprimer »)
Q = MsgBox("Voulez-vous-imprimer" & vbCrLf & Fichier, vbQuestion + vbOKCancel, "Impression document")
If Q = 1 Then
result = Impression(0, Fichier)
Else
Exit Sub
End If
End Sub


Cordialement
Julie
 

Inconnu3

XLDnaute Nouveau
Bonjour à tous
j'ai effectué des recherches mais malheuresement cela ne fonctionne toujours pas

Cordialement
Julie

Code:
    Option Compare Text 'permet de ne pas faire de distinction entre minuscule et majuscule
    Option Explicit

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
        (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    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
Sub ImprimerFichier()
Dim chemin As String
Dim x As Long
Dim nom As String
Dim Cellule As Range
Dim firstAddress As String
Dim format As String


nom = InputBox(" Quel est le nom du fichier que vous voulez imprimer? ")
           Application.ScreenUpdating = False

With ActiveSheet.Range("A7:A45")
    Set Cellule = .Find(nom, Lookat:=xlWhole)
    If Not Cellule Is Nothing Then
        firstAddress = Cellule.Address
        Do
            Exit Sub
            Set Cellule = .FindNext(Cellule)
        Loop While Not Cellule Is Nothing And Cellule.Address <> firstAddress
    End If
End With
    MsgBox "Le fichier n'existe pas"
        x = FindWindow("XLMAIN", Application.Caption)
        chemin = "E:\vba\base VBA\"
        format = ".pdf"
       
        ShellExecute x, "print", chemin & "nom" & format, "", "", 1
    End Sub
 

Pièces jointes

  • Classeur1.xlsx
    11.8 KB · Affichages: 51

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@Inconnu3
Le code proposé au message #4 fonctionne!
Je l'ai testé ce matin au boulot et le pdf est bien imprimé.
As-tu vraiment fait le simple test demandé dans mon précédent message?
En ne modifiant que le chemin et nom du fichier?

Exemple de test:
Tu places un PDF nommé test.pdf dans le dossier Mes Documents
Donc il faudra avant de tester changer ainsi le code VBA
On remplace cette ligne
Fichier = "C:\Temp\test.pdf" ' adapter le chemin
par
Fichier="C:\Users\Staple\Documents\test.pdf"

A la place de Staple, mettre le nom utilisateur de la session Windows active.

Si déjà, tu suis rigoureusement ce mode opératoire, ça doit marcher !!

Ensuite on avisera pour la suite ;)
 

Discussions similaires

Réponses
9
Affichages
378

Membres actuellement en ligne

Statistiques des forums

Discussions
314 144
Messages
2 106 357
Membres
109 563
dernier inscrit
sylla121