Nommer et enregistrer un fichier PDF

Bonjour,

Je sais lancer une macro pour enregistrer un fichier via PDF creator, mais je dois saisir manuellement le nom du fichier et indiquer manuellement aussi l'emplacement de l'enregistrement.

Voici ma macro actuelle

Range("L3").Select

Selection.Copy 'copie du nom de fichier

Application.ActivePrinter = "PDFCreator sur Ne00:"

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

IgnorePrintAreas:=False

Peut-on automatiser ces commandes ?

Merci d'avance,

et bonne journée

Ciboulette

Bonjour ciboulette05;

Pour ma part, je fonctionne avec cette macro:

Sub EnregFichTechPdf()

    Dim Sauvegarde As Variant

     'a adapter si besoin d' une selection d' impression    
    ActiveSheet.PageSetup.PrintArea = "$A$1:$J$31"
    Sauvegarde = Application.GetSaveAsFilename(FileFilter:=" PDF Files (*.pdf), *.pdf")

  'Si, dans la boite de dialogue d' enregistrement, j' annule, je quitte la macro
    If Sauvegarde = False Then
    Exit Sub
    Else

'Sinon, si le nom de fichier que je donne dans la boite de dialogue n' existe pas, j' enregistre       
       If Dir(Sauvegarde) = "" Then

            ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=Sauvegarde, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, _
            OpenAfterPublish:=False

            'Si le nom de fichier existe déjà:
            Else
             If MsgBox("Un fichier existant porte déjà ce nom, voulez-vous le remplacer?", vbYesNo + vbExclamation, "demande de confirmation") = vbYes Then

                ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
                Filename:=Sauvegarde, Quality:=xlQualityStandard, _
                IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                OpenAfterPublish:=False

                Else: MsgBox ("Veuillez renommer le fichier")

                Exit Sub

            End If

     End If

   End If

MsgBox ("Ficher enregistré avec succès")

End Sub

Par cette méthode d' enregistrement par exportation, Excel ne prévient pas si un fichier portant ce nom existe déjà .

Il est important de vérifier si le fichier existe pour éviter un écrasement sauvage, par la ligne If Dir(Sauvegarde) = "" Then)

@++

Bonjour,

En effet, merci, ça fonctionne parfaitement, sauf que le nom de fichier et la destination de l'enregistrement ne sont pas automatiques ? Quand je lance ta macro, j'ai une boite de dialogue qui me demande le nom du fichier. Bon, OK, mais j'aimerais au moins qu'elle copie le contenu de la cellule O9 (afin d'éviter les erreurs) et qu'il ne me reste plus qu'à faire un CTRL V et que la macro aille enregistrer le fichier dans le dossier indiqué ????? (où?). Tous les enregistrements doivent se faire dans le même dossier.

Je comprends la nécessité de faire des contrôles pour ne pas écraser un fichier existant portant le même nom, mais windows ne préviendrait pas dans ce cas ?

Je continue à décordiquer ta macro pour essayer de bien comprendre.

Merci et bon après midi.

Ciboulette

Ok, j'ai degainé un peu vite, laisse tomber celle la, j'en ai une autre sous le coude qui fait exactement ce que tu veux,

J'ai zappé le fait que tu voulais un enregistrement automatique avec remplissage du nom et chemin.

Dès que je rentre chez moi, je l'envoie.

OK, super.

Merci par avance

@+

Ciboulette

Sub EnregistrerPdf()

Dim Chemin As String
Dim NomFichier As String

    Chemin = "C:\" ' A adapter
    NomFichier = Range("O9") ' Range à adapter

    'Message Box non obligatoire, mais confirme l' emplacement et le nom
    If MsgBox("Ce fichier sera enregistré sous le nom:" & Chr(10) & NomFichier & Chr(10) & Chr(10) & "Dans le dossier:" & Chr(10) & Chemin, vbOKCancel, "confirmation de l' enregistrement") = vbOK Then

    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & NomFichier & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

    'Message Box non obligatoire,
    MsgBox ("Fichier enregistré avec succés")

    Else: Exit Sub

    End If

End Sub

Je confirme, du moins sur ma configuration, qu ' avec la procédure d' enregistrement par "export"( obligatoire pour le Pdf), qu' il n' y a pas de message d' alerte de risque d 'écrasement fichier.

Pour avoir un message d' avertissement, insérer la ligne

 If Dir(Sauvegarde) = "" Then

Bonsoir,

et tu es génial car ça marche SUPER .... sauf que ça m'enregistre tout le fichier excel alors que je ne veux enregistrer qu'une feuille.

Je suis persuadée que ce ne doit pas être très compliqué à modifier.

Tu me lèves une sacrée épine !!!!

Ah j'oubliais, un détail : tous les fichiers portent bien le nom indiqué dans la cellule "O9", mais le nom est précédé de "excelMacronom de fichier". Ce n'est pas hyper gênant, mais si c'est possible, je préfèrerais le supprimer.

J'essaie d'y réfléchir toute seule et si je n'y arrive pas, je reviens te lancer un SOS

Très bonne soirée et encore merci.

Cordialement

Ciboulette

Si tu peux envoyer le fichier excel en pièce jointe, débarrassé de données confidentiel, ce sera plus clair selon nombre de feuille etc etc

Bonjour,

J'ai pratiquement tout réparé )))

En ce qui concerne le nom du fichier, j'avais tout simplement oublié le dernier anti-slash du chemin !

En ce qui concerne l'enregistrement de la feuille et non du dossier, j'ai modifié la ligne de ta macro en ajoutant ce que j'ai mis en rouge :

ThisWorkbook.Sheets("fact").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & NomFichier & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Il ne me reste plus qu'un problème : la zone de la feuille enregistrée en pdf ne correspond pas à la zone d'impression paramétrée. Autrement dit j'ai une facture tronquée à droite et en bas. Je ne vois pas où préciser ces informations.

Si quelqu'un a une idée ?????????????

Que signifie : IgnorePrintAreas = False

Cdlt

Ciboulette

Bonjour,

ça y est, tout fonctionne.

J'ai précisé ça : ActiveSheet.PageSetup.PrintArea = "$A$1:$L$45"

et c'est tout bon.

Encore merci

Bonne journée

Ciboulette

Voilà, c' est OK comme ça quand tu as plusieurs feuilles sur le classeur.

@++

Rechercher des sujets similaires à "nommer enregistrer fichier pdf"