Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Nickal

XLDnaute Nouveau
Bonjour,

Après avoir discuté sur plusieurs forums et essayé plusieurs solutions, je n’arrive pas à faire fonctionner de A à Z une macro permettant d’enregistrer une feuille XLS en PDF avec Windows 2000 ou 2003.
Le nom de fichier est généré automatiquement dans une case (chez moi A2) mais j’ai toujours un bug pour l’enregistrer en PDF dans un dossier prévu à cet effet.
En parallèle j’ai une macro qui fait un enregistrement de la même feuille mais au format XLS dans un dossier prévu à cet effet et avec le nom automatique de ma case A2 et cela fonctionne parfaitement.

Avez-vous la solution ?

D’avance merci et je joints mon fichier XLS simplifié…
 

Pièces jointes

  • Planning macro save XLS et PDF.xls
    45 KB · Affichages: 293

fhoest

XLDnaute Accro
Re : Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Bonjour,
voici le code qui correspond à ta demande:
Code:
 Sub Archiver()
    'Macro par Dan
    Dim extension As String
    Dim chemin As String, nomfichier As String, monfichier_pdf
    Dim style As Integer
    Application.ScreenUpdating = False
    ThisWorkbook.ActiveSheet.Copy
    extension = ".xls"
    chemin = "D:\EXCEL\save planning xls\"
    nomfichier = ActiveSheet.Range("A2") & extension
    nomfichier_pdf = ActiveSheet.Range("A2").Text
    With ActiveWorkbook
        .ActiveSheet.DrawingObjects(1).Delete
        .ExportAsFixedFormat xlTypePDF, chemin & nomfichier_pdf
        .SaveAs Filename:=chemin & nomfichier
        '.Close
    End With
    
    End Sub
A bientôt.
 

kiki29

XLDnaute Barbatruc
Re : Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Salut, sous 2003 il faut utiliser Adobe Acrobat(payant) ou PDFCreator (gratuit) ou d'autres pour générer un fichier PDF. Le PDF est devenu natif à partir de la version 2007 SP2 d'Excel.
 

Nickal

XLDnaute Nouveau
Re : Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Merci pour la macro mais y'a un truc qui ne se passe pas bien...j'ai une erreur 483...
J'ai essayé plusieurs petits truc mais apparemment ce qui cloche c'est :.ExportAsFixedFormat xlTypePDF, chemin & nomfichier_pdf

???

Une solution ?
 

kiki29

XLDnaute Barbatruc
Re : Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Salut, lis le post 3, c'est suffisamment clair : c'est impossible si Excel 2003. Il te faut minimum Excel 2007 SP2, ou Adobe Acrobat, PDFCreator ou autres utilitaires.
 
Dernière édition:

Nickal

XLDnaute Nouveau
Re : Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Ok, je n'avais pas compris la phrase dans ce sens là mais effectivement maintenant c'est très clair.
Merci quand même pour la macro, je vais gauler XLS 2007 pour que tout fonctionne !
 

fhoest

XLDnaute Accro
Re : Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Bonsoir,
quelle est le texte du message erreur 483?
Apparemment Kiki29 c'est de quoi il parle,moi j'ai office 2007 donc je ne peux pas tester plus.
suis ce qu'il dit c'est le meilleur conseil que je peux te donner, désolé de ne pas pouvoir t'aider plus
A bientôt.
 
Dernière édition:

Nickal

XLDnaute Nouveau
Re : Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Ouais merci quand même ; le message d'erreur est "propriété ou méthode non gérée par cet objet"...mais j'attendrai d'avoir office 2007 pour faire fonctionner la macro ! En attendant je ferai du IMPRIMER avec PDF créator.

A+
 

kiki29

XLDnaute Barbatruc
Re : Macro enregistrement feuille excel en PDF dans un dossier avec nom prédéfini

Salut, si tu cherches sur le forum pour 2003 / PDFCreator tu trouveras qqch comme ceci

Code:
Option Explicit

Sub Tst_PdfCreator()
Dim JobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String

    sNomPDF = "Essai.pdf"
    sCheminPDF = ThisWorkbook.Path & "\"

    Set JobPDF = CreateObject("PDFCreator.clsPDFCreator")

    With JobPDF
        If .cStart("/NoProcessingAtStartup") = False Then
            MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
            Exit Sub
        End If
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sCheminPDF
        .cOption("AutosaveFilename") = sNomPDF

        .cOption("AutosaveStartStandardProgram") = 1
        .cOption("UpdateInterval") = 0

        '   0=PDF, 1=Png, 2=jpg, 3=bmp, 4=pcx, 5=tif, 6=ps, 7=eps, 8=txt
        .cOption("AutosaveFormat") = 0
        .cClearCache
    End With

    ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"

    'Fichier dans la file d'attente
    Do Until JobPDF.cCountOfPrintjobs = 1
        DoEvents
    Loop
    JobPDF.cPrinterStop = False

    'Attendre que la file d'attente soit vide
    Do Until JobPDF.cCountOfPrintjobs = 0
        DoEvents
    Loop

    JobPDF.cClose
    Set JobPDF = Nothing

End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87