imprimer un fichier pdf depuis Excel

Y compris Power BI, Power Query et toute autre question en lien avec Excel
s
salhi_haithem
Jeune membre
Jeune membre
Messages : 25
Inscrit le : 29 mars 2015
Version d'Excel : 2007 FR

Message par salhi_haithem » 10 novembre 2015, 17:23

Bonjour a tous

J'ai une macro qui fonctionne bien cette macro elle

=> Contrôle Des Cellules
=> Charge Des Variables depuis une feuille excel
=> Verification Et Constitution d'un Dépôt (répertoire) si il n'existe pas
=> Constitution du Fichier et Le mettre dans Une Variable
=> Contrôle Si Le le fichier existe déjà dans le dépôt
=> Contrôle Si Le le fichier est Ouvert ou en cours d'utilisation
=> Exportation PDF
=> Impression
=> envoie par Mail

le problème c'est que je utilise ce code pour imprimer le fichier PDF
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 Valider()

Code ..........................................................

'------------------------------------------
'Exportation PDF
'------------------------------------------
        
    With ActiveSheet
    .ExportAsFixedFormat Type:=xlTypePDF _
    , filename:=Mon_Fichier _
    , Quality:=xlQualityStandard _
    , IncludeDocProperties:=True _
    , IgnorePrintAreas:=False _
    , OpenAfterPublish:=True 'Ouvrir Après Exportation
    End With
    
    
'------------------------------------------
'Impression
'------------------------------------------

Dim NomFichier As String
Dim x As Long
    
    x = FindWindow("XLMAIN", Application.Caption)
    NomFichier = Mon_Fichier & ".pdf"
    ShellExecute x, "print", NomFichier, "", "", 1
    'On ferme les fichiers Acrobat ouverts pour l'impression des plans
    Application.Wait (Now + TimeValue("0:00:10"))
    Shell "TASKKILL /IM AcroRd32.exe /F"


j'aimerai imprimé deux copie PDF comment Faire
est ce possible d'adapté le code suivant dans le code de dessus pour avoir plus d'option


Application.Wait Now + TimeValue("00:00:01")
    
    With 
        'impression centrée dans la page
        .PageSetup.CenterHorizontally = True
        .PageSetup.CenterVertically = True
        'impression noir et blanc ou couleur
        .PageSetup.BlackAndWhite = False
        'zoom
        .PageSetup.zoom = 100
        'impression  papier A4
        .PageSetup.PaperSize = xlPaperA4
        'impression portrait (xlportrait) ou paysage (xlLandscape)
        .PageSetup.orientation = xlPortrait
        .PrintOut Copies:=1
        '.PrintOut From:=1, To:=1
        
    End With


Merci d'avance
p
patrick1957
Passionné d'Excel
Passionné d'Excel
Messages : 3'122
Appréciations reçues : 32
Inscrit le : 24 août 2015
Version d'Excel : 2007-2010-2016 PC

Message par patrick1957 » 10 novembre 2015, 17:41

Bonjour,


.PrintOut Copies:=1 --> ça ne serait pas 2 (ou plus) ici ?

Je dis peut être une bêtise :D
Je fais du géocaching et vous ?
Indentez vos codes VBA, ---> http://www.oaltd.co.uk/Indenter/Default.htm
A lire pour les débutants: http://www.xlerateur.com/divers/2010/05 ... nnees-612/
s
salhi_haithem
Jeune membre
Jeune membre
Messages : 25
Inscrit le : 29 mars 2015
Version d'Excel : 2007 FR

Message par salhi_haithem » 10 novembre 2015, 20:39

patrick1957 a écrit :Bonjour,


.PrintOut Copies:=1 --> ça ne serait pas 2 (ou plus) ici ?

Je dis peut être une bêtise :D

Merci Mr patrick1957 pour ta réponse mais c'est pas ça que j'ai voulais dire j'ai ce code qui m'imprime comment faire pour imprimer deux copies
Dim NomFichier As String
Dim x As Long
   
    x = FindWindow("XLMAIN", Application.Caption)
    NomFichier = Mon_Fichier & ".pdf"
    ShellExecute x, "print", NomFichier, "", "", 1
    'On ferme les fichiers Acrobat ouverts pour l'impression des plans
   Application.Wait (Now + TimeValue("0:00:10"))
    Shell "TASKKILL /IM AcroRd32.exe /F"

Et est ce possible d'adapté le code suivant dans le code de dessus pour avoir plus d'option

Application.Wait Now + TimeValue("00:00:01")

With
'impression centrée dans la page
.PageSetup.CenterHorizontally = True
.PageSetup.CenterVertically = True
'impression noir et blanc ou couleur
.PageSetup.BlackAndWhite = False
'zoom
.PageSetup.zoom = 100
'impression papier A4
.PageSetup.PaperSize = xlPaperA4
'impression portrait (xlportrait) ou paysage (xlLandscape)
.PageSetup.orientation = xlPortrait
.PrintOut Copies:=1
'.PrintOut From:=1, To:=1

End With
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message