Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
    26.6 KB · Affichages: 56

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@Inconnu3
Les photos sont faites pour être ranger dans les albums photos.
Les fichiers Excel sont fait pour être joint par le demandeur pour illustrer sa question et pour permettre aux répondeurs de tester leur proposition dessus.
 

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
 

Staple1600

XLDnaute Barbatruc
Re

Moi je t'ai demandé de tester le code tel que fourni pour savoir si l'impression fonctionne.
Donc merci de faire le test tel que précédemment demandé!!!
Et de me redire si le PDF a bien été imprimé.
 

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…