Comment enregistrer une feuille de calcul au format PDF et l'envoyer en pièce jointe via Outlook ?
Dans le cadre du travail quotidien, vous pouvez souvent rencontrer des situations où vous devez partager une feuille de calcul spécifique avec des collègues ou des clients, tout en souhaitant garantir que le format du fichier reste fixe et sécurisé. Envoyer une feuille de calcul sous forme de fichier PDF via Outlook est une exigence courante, notamment pour documenter des rapports, envoyer des factures ou partager des données finalisées qui ne doivent pas être facilement modifiables. Traditionnellement, cela implique d'enregistrer manuellement la feuille de calcul au format PDF, d'ouvrir Outlook, de rédiger un e-mail, d'attacher le PDF, puis de l'envoyer – une tâche fastidieuse et chronophage, surtout si elle est répétée fréquemment ou lorsqu'il s'agit de gérer plusieurs feuilles.
Cet article vous guide étape par étape sur la façon d'automatiser le processus de conversion d'une feuille de calcul en PDF et de l'attacher immédiatement à un e-mail Outlook directement depuis Excel, vous permettant ainsi de gagner un temps précieux et d'éviter des tâches manuelles répétitives. Vous découvrirez une solution basée sur un code VBA, accompagnée de détails sur son fonctionnement, ses avantages, les scénarios d'application et des conseils pratiques.
Enregistrer une feuille de calcul au format PDF et l'envoyer en pièce jointe avec un code VBA
Enregistrer une feuille de calcul au format PDF et l'envoyer en pièce jointe avec un code VBA
Pour accélérer le processus d'exportation d'une feuille de calcul Excel au format PDF et de l'envoi par e-mail via Outlook, vous pouvez utiliser le code VBA suivant. Cette approche est particulièrement utile si vous devez régulièrement envoyer des rapports personnalisés, des factures ou d'autres instantanés de données directement depuis Excel, car elle automatise complètement les étapes d'enregistrement et d'envoi par e-mail.
Avant d'appliquer cette méthode, assurez-vous que Microsoft Outlook est installé et configuré comme votre client de messagerie par défaut. Le code fonctionne mieux lorsque les macros sont activées dans votre environnement Excel.
1. Ouvrez la feuille de calcul que vous souhaitez enregistrer et envoyer au format PDF. Appuyez simultanément sur Alt + F11 pour lancer l'éditeur Microsoft Visual Basic pour Applications (VBA).
2. Dans la fenêtre VBA, allez dans le menu et cliquez sur Insérer > Module. Cela créera un nouveau module de code. Ensuite, copiez et collez le code VBA suivant dans la fenêtre Code du module.
Code VBA : Enregistrer une feuille de calcul au format PDF et l'envoyer en pièce jointe
Sub Saveaspdfandsend()
Dim xSht As Worksheet
Dim xFileDlg As FileDialog
Dim xFolder As String
Dim xYesorNo As Integer
Dim xOutlookObj As Object
Dim xEmailObj As Object
Dim xUsedRng As Range
Set xSht = ActiveSheet
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
If xFileDlg.Show = True Then
xFolder = xFileDlg.SelectedItems(1)
Else
MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
Exit Sub
End If
xFolder = xFolder + "\" + xSht.Name + ".pdf"
'Check if file already exist
If Len(Dir(xFolder)) > 0 Then
xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _
vbYesNo + vbQuestion, "File Exists")
On Error Resume Next
If xYesorNo = vbYes Then
Kill xFolder
Else
MsgBox "if you don't overwrite the existing PDF, I can't continue." _
& vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro"
Exit Sub
End If
If Err.Number <> 0 Then
MsgBox "Unable to delete existing file. Please make sure the file is not open or write protected." _
& vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File"
Exit Sub
End If
End If
Set xUsedRng = xSht.UsedRange
If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then
'Save as PDF file
xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard
'Create Outlook email
Set xOutlookObj = CreateObject("Outlook.Application")
Set xEmailObj = xOutlookObj.CreateItem(0)
With xEmailObj
.Display
.To = ""
.CC = ""
.Subject = xSht.Name + ".pdf"
.Attachments.Add xFolder
If DisplayEmail = False Then
'.Send
End If
End With
Else
MsgBox "The active worksheet cannot be blank"
Exit Sub
End If
End Sub
3. Après avoir collé le code, appuyez sur F5 ou cliquez sur Exécuter dans l'éditeur VBA pour exécuter la macro. Une boîte de dialogue de sélection de dossier apparaîtra. Choisissez le dossier cible où le fichier PDF doit être enregistré, puis cliquez sur OK pour continuer.
Remarques et conseils pratiques :
4. Une fois le processus terminé, une nouvelle fenêtre d'e-mail Outlook est générée, avec le fichier PDF attaché. L'objet est prérempli avec le nom de la feuille de calcul se terminant par ".pdf" ; vous pouvez modifier le contenu de l'e-mail, ajouter des destinataires, puis l'envoyer selon vos besoins. Cela réduit les erreurs et augmente l'efficacité par rapport à l'ajout manuel de pièces jointes.
Cette approche basée sur VBA est la plus efficace lorsque vous devez régulièrement distribuer des feuilles de calcul finalisées en tant que pièces jointes PDF, tout en minimisant les étapes manuelles répétitives. Ses limites incluent la dépendance à Outlook, l'incapacité à traiter plusieurs feuilles en une seule fois et la nécessité d'activer les macros. Pour des flux de travail plus complexes, comme l'envoi de plusieurs feuilles en une seule opération ou une automatisation supplémentaire, envisagez d'utiliser des modules complémentaires Excel ou des fonctionnalités intégrées.
Solution alternative : Si les macros VBA ne conviennent pas à votre environnement, par exemple lorsque les macros sont restreintes, vous pouvez manuellement utiliser la fonction Exporter ou Enregistrer sous d'Excel pour enregistrer votre feuille de calcul au format PDF, puis l'attacher et l'envoyer dans Outlook. Bien que nécessitant plus d'étapes, cette méthode est universellement disponible sans autorisations spéciales ni connaissance en script.
Enregistrez facilement une feuille de calcul ou plusieurs feuilles de calcul en tant que fichiers PDF séparés en une seule fois :
L'utilitaire Diviser le classeur de Kutools pour Excel peut vous aider à enregistrer facilement une feuille de calcul ou plusieurs feuilles de calcul en tant que fichiers PDF séparés en une seule fois, comme illustré dans la démonstration ci-dessous. Téléchargez et essayez-le maintenant ! (30-jour d'essai gratuit)
Articles connexes :
- Comment enregistrer un fichier Excel avec un horodatage ?
- Comment utiliser la fonction Enregistrer sous pour écraser automatiquement un fichier existant dans Excel ?
- Comment enregistrer, exporter plusieurs/toutes les feuilles dans des fichiers CSV ou texte distincts dans Excel ?
- Comment désactiver ou ne pas autoriser les options Enregistrer et Enregistrer sous dans Excel ?
- Comment désactiver l'enregistrement du classeur mais uniquement autoriser Enregistrer sous dans Excel ?
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!