Impression de plusieurs onglets avec choix imprimante

ThunderPaT

XLDnaute Nouveau
[RESOLU] Impression de plusieurs onglets avec choix imprimante

Bonsoir tout le monde,
Je voulais savoir s'il était possible de sélectionner une partie des onglets contenus dans un classeur Excel et les imprimer en choisissant automatiquement une imprimante du type "PDFCreator" (Impression dans un fichier pdf).

Ensuite, comment faire pour imprimer ces onglets sous un nom et un répertoire prédéfini (infos contenues dans des cellules du classeur ouvert).

Merci d'avance pour votre aide ;)
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Impression de plusieurs onglets avec choix imprimante

Bonjour ThunderPat :),
Si tu fait une recherche sur "pdfcreator", tu devrais trouver un certain nombre de fils qui t'aideront. Personnellement, j'utilise Acrobat Distiller qui se distingue un peu dans sa syntaxe, ce qui fait que mes macros ne vont pas vraiment te satisfaire :eek:...
Maintenant, pour activer les onglets que tu souhaites imprimer:
Sheets("Mon onglet").Activate
Maintenant, quand tu génères un fichier, c'est le chemin complet dont tu va avoir besoin, avec le nom du fichier à la fin:
C:\Documents and Settings\UtilisateurX\Bureau\MonPdf.pdf
Enfin, si tu veux créer un répertoire, l'instruction "MkDir" (qui vient de DOS) devrait te servir.
Espérant t'avoir rendu service :cool:
 

ThunderPaT

XLDnaute Nouveau
Re : Impression de plusieurs onglets avec choix imprimante

Ok merci de tes conseils en faisant pas de recherche sur le web + forum j'ai finalement réussi à faire ma macro dont voici le code :

Code:
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub Impression_TdB() 
' Il faut activer la référence -> PDFCreator (Outils... -> References)

Dim PDFCreator1 As PDFCreator.clsPDFCreator
    
Sheets(Array("Page de garde", "Faits marquants", "Avancement objectifs")).Select
Sheets("Page de garde").Activate
 
Set PDFCreator1 = New PDFCreator.clsPDFCreator
    
If PDFCreator1.cStart("/NoProcessingAtStartup") = False Then
    'creation d'un fichier de log
End If
 
Dim nomfichier, corpsmessage As String
    nomfichier = "Test.pdf"
    nomreseau = "D:\"
With PDFCreator1
    .cOption("UseAutosave") = 1
    .cOption("UseAutosaveDirectory") = 1
    .cOption("AutoSaveDirectory") = nomreseau
    .cOption("AutoSaveFilename") = nomfichier
    .cOption("AutosaveFormat") = 0 ' 0 = PDF
    .cClearCache
End With
    
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
    Do Until PDFCreator1.cCountOfPrintjobs = 1
        DoEvents
        Sleep 100
    Loop
    PDFCreator1.cPrinterStop = False
    Do Until PDFCreator1.cCountOfPrintjobs < 1
        DoEvents
        Sleep 100
    Loop

    MsgBox ("Fichier PDF généré >> " & nomreseau & "" & nomfichier & "")

    Sheets("Page de garde").Select

End Sub

Encore merci ++ ;)
 
Dernière édition:

Discussions similaires

Réponses
23
Affichages
2 K

Statistiques des forums

Discussions
311 710
Messages
2 081 781
Membres
101 817
dernier inscrit
carvajal