Excel VBA Enregistrer Sous (Imprimer) Vers PDF

Retour aux exemples de code VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on décembre 23, 2021

Ce tutoriel montre comment enregistrer/imprimer en format PDF en Excel VBA.

Imprimer en format PDF

Cette procédure simple permet d’imprimer la feuille active au format PDF.

Sub SimpleImpressionEnPDF() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="demo.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub

J’ai également créé une fonction avec gestion des erreurs, etc. qui imprimera la feuille active dans un nouveau document PDF :

Sub ImprimerPDF() Call Enregistrer_PDF End Sub Function Enregistrer_PDF() As Boolean ' Copie les feuilles dans un nouveau PDF pour pouvoir les envoyer par courriel Dim CetteFeuille As String, CeFichier As String, NomRépertoire As String Dim EnrSous As String Application.ScreenUpdating = False ' Obtention du nom de sauvegarde du fichier CetteFeuille = ActiveSheet.Name CeFichier = ActiveWorkbook.Name NomRépertoire = ActiveWorkbook.Path EnrSous = NomRépertoire & "\" & CetteFeuille & ".pdf" 'Définition de la qualité d'impression On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 Err.Clear On Error GoTo 0 ' Explique à l'utilisateur comment envoyer le fichier On Error GoTo ErreurRefLib ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=EnrSous, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 EnregistrerSeulement: MsgBox "Une copie de cette feuille a été sauvegardée avec succès en format .pdf " & vbCrLf & vbCrLf & EnrSous & _ " Révisez le document .pdf. Si le document ne s'affiche pas correctement, ajustez vos paramètres d'impression et ré-essayez." Enregistrer_PDF = True GoTo FinMacro ErreurRefLib: MsgBox "Impossible de sauvegarder en pdf. Référence introuvable ou manquante." Enregistrer_PDF = False FinMacro: End Function

La fonction renvoie VRAI ou FAUX en fonction du succès de l’opération de sauvegarde du document PDF.

Fonction de sauvegarde et d’envoi de PDF par courriel

Cette fonction permet d’enregistrer la feuille active au format PDF et (optionnellement) de joindre le PDF à un e-mail (en supposant que Outlook soit installé) :

Sub EnvoyerPDF() Call Envoyer_PDF("EnvoyerCourriel") End Sub Function Envoyer_PDF(Optional action As String = "EnregistrerSeulement") As Boolean ' Copies sheets into new PDF file for e-mailing Dim CetteFeuille As String, CeFichier As String, NomRépertoire As String Dim EnrSous As String Application.ScreenUpdating = False ' Obtention du nom de sauvegarde du fichier CetteFeuille = ActiveSheet.Name CeFichier = ActiveWorkbook.Name NomRépertoire = ActiveWorkbook.Path EnrSous = NomRépertoire & "\" & CetteFeuille & ".pdf" 'Définition de la qualité d'impression On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 Err.Clear On Error GoTo 0 ' Explique à l'utilisateur comment envoyer le fichier On Error GoTo ErreurRefLib ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=EnrSous, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 ' Création du courriel If action = "EnvoyerCourriel" Then On Error GoTo EnregistrerSeulement Set olApp = CreateObject("Outlook.Application") Set olEmail = olApp.CreateItem(olMailItem) With olEmail .Subject = CetteFeuille & ".pdf" .Attachments.Add EnrSous .Display End With On Error GoTo 0 GoTo FinMacro End If EnregistrerSeulement: MsgBox "Une copie de cette feuille a été sauvegardée avec succès en format .pdf " & vbCrLf & vbCrLf & EnrSous & _ " Révisez le document .pdf. Si le document ne s'affiche pas correctement, ajustez vos paramètres d'impression et ré-essayez." Envoyer_PDF = True GoTo FinMacro ErreurRefLib: MsgBox "Impossible de sauvegarder en pdf. Référence introuvable ou manquante." Envoyer_PDF = False GoTo FinMacro FinMacro: End Function

Try our AI Formula Generator

Generate

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as Learn More! vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA

Automacro: complément VBA avec des centaines d'exemples de code VBA prêts à l'emploi et bien plus encore!

En Savoir Plus

Tag » Code Vba Pour Enregistrer Une Feuille Excel En Pdf