IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Impression PDF a l'aide de VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Impression PDF a l'aide de VBA
    Cher tous,

    je vous sollicite car je souhaiterais imprimer un pdf à partir d'excel, mon soucis est de pouvoir choisir le dossier dans lequel la sauvegarde doit etre effectuée.
    J'utilise Cute Writer pour l'impression.

    Merci par avance pour votre aide!

    Voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub pdf()
     
    Dim dat As String
    dat = "" & Cells(2, 6) & " Semaine # " & Cells(2, 5)
     
    'selection de l'imprimante cute pdf writer
    Application.ActivePrinter = "CutePDF Writer sur CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
    "CutePDF Writer sur CPW2:", Collate:=True
     
     
    SendKeys dat, [TRUE]
    SendKeys "{ENTER}", [TRUE]
     
    End Sub

  2. #2
    Membre averti Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 502
    Points : 319
    Points
    319
    Par défaut
    Bonjour,

    Regarde ce code, je l'ai utilisé pour enregistrer au format PDF à l'aide de PDF CREATOR avec EXCEL 2003...
    Il enregistre sous le nom de :
    Courrier + une date + un nom
    Sur le disque dur
    Les cellules porte des nom, exemple :
    Range("Date1")....Range("nom")
    Sheets Feuil1 = Courrier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Dim jobsPDF As Object
    Dim NomPDF As String
    Dim RepertoirePDF As String
    Dim ClientPDF As String
    Dim CheminPDF As String
    Date = Format(Sheets("Courrier").Range("date1") - Value, "DD-MM-YYYY")
    CheminPDF = "C:Note ici le chemin"
    ClientPDF = Sheets("Courrier").Range("nom").Value
    NomPDF = "Courrier" & " " & ClientPDF & " " & Date & ".pdf"
    RepertoirePDF = NomPDF
    If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
    Set jobsPDF = CreateObject("PDFCreator.clsPDFCreator")
    With jobsPDF
    'If .cStart("/NoProcessingAtStartup") = False Then
    'MsgBox "Impossibilité d'initialiser PDFCréator !", vbCritical + vbOKOnly, "PDFCreator"
    'Exit Sub
    'End If
    .cOption("UseAutosave") = 1
    .cOption("UseAutosaveDirectory") = 1
    .cOption("AutosaveDirectory") = CheminPDF
    .cOption("AutosaveFilename") = RepertoirePDF
    .cOption("AutosaveFormat") = 0
    .cClearCache
    End With
    ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
    Do Until jobsPDF.cCountOfPrintjobs = 1
    DoEvents
    Loop
    jobsPDF.cPrinterStop = False
    Do Until jobsPDF.cCountOfPrintjobs = 0
    DoEvents
    Loop
    jobsPDF.cClose
    Set jobsPDF = Nothing

    Bon courage

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    j'utilise aussi cutepdf, mais attention à ce qu'il produit.

    Le fichier output sera un fichier postscript et pas un pdf. Sauf si tu utilise un version payante de Cutepdf qui te permet de créer un PDf sans interface interactive.
    Il te faudra donc convertir le Postcript en PDF via par exemple Ghostscript.

    Par contre pas de problème pour choisir l'emplacement du fichier. (en gras dans mo code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    '*-------------------------------------------------------------------------
    '* Check Postscript temporary folder exists or create
    '*-------------------------------------------------------------------------
    ps_path = "C:\temp"
    SHCreateDirectoryEx 0&, ps_path, 0&
    '*-------------------------------------------------------------------------
    '* Full temporary postscript file is C:\temp\temp.ps
    '*-------------------------------------------------------------------------
    ps_fullname = Trim(ps_path) & "\temp.ps"
    '*-------------------------------------------------------------------------
    '* Scratch Full temporary postscript file if exists
    '*-------------------------------------------------------------------------
    On Error Resume Next
    Kill ps_fullname
    '*-------------------------------------------------------------------------
    '* Print Selection Using CutePDF Writer producing temporary postscript file
    '*-------------------------------------------------------------------------
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="CutePDF Writer", _
          PrintTofile:=True, Collate:=True, PrToFilename:=ps_fullname

    En résumé, j'ai une solution perso pour utiliser CutePdf via excel et produire un PDF automatiquement qui se place a l'endroit même du XLS avec le même nom

    mais c'est enfantin de faire une Name pour le déplacer et/ou renommer.

    Si tu veux ma solution développé pour Excel 2003, donne moi ton mail par MP.

    Bonne journée.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] VBA - Impression pdf avec sélection depuis un Slicer
    Par imslux dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2014, 14h39
  2. Impression pdf et VBA
    Par tom0ne dans le forum VBA Word
    Réponses: 39
    Dernier message: 07/01/2012, 23h04
  3. Réponses: 2
    Dernier message: 01/06/2011, 00h22
  4. Impression PDF en VBA
    Par divayg dans le forum Général VBA
    Réponses: 0
    Dernier message: 27/11/2009, 13h24
  5. [AIDE] Impression PDF+ActiveX
    Par Diablo_22 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/12/2007, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo