Word VBA Word : le code VBA pour automatiser l'envoi d'un document word en PDF par email Outlook

RJ85

XLDnaute Nouveau
Bonjour à tous,

j'ai crée un formulaire au format word.
Dans ce document word, j'ai crée un bouton afin que le rédacteur du document puisse, à l'aide de ce bouton, envoyer automatiquement ce document en pièce jointe PDF dans un email (Outlook) aux destinataires de son choix.
Malheureusement, je ne trouve pas le code VBA permettant à la fois la transformation du document word en PDF et l'envoi de ce document PDF en pièce jointe par email Outlook.

Pourriez-vous m'aider dans la rédaction du code VBA, compléter ce code:
Private Sub ENVOYER_Click()

End Sub


Je ne sais pas si ce renseignement est utile pour le code VBA est intitulé : rapport anomalie preconisation

En vous remerciant par avance pour votre aide :)
 

Staple1600

XLDnaute Barbatruc
Bonjour

Un petit tour par G..g.e, et lui trouve toujours ;)
Un exemple de code qui fait le job
VB:
Sub EmailPDF()
Dim strData As String
Dim ola As Outlook.Application
Dim maiMessage As Outlook.MailItem
Dim fs
strData = InputBox("Please Enter Filename")
strData = "h:\" & strData & ".pdf" 'Creates a PDF and stores it locally
ActiveDocument.ExportAsFixedFormat OutputFileName:=strData, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentWithMarkup, IncludeDocProps:=False, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=False
On Error Resume Next
'Start Outlook if it isn't running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
End If
'Create a new message
Set oItem = oOutlookApp.CreateItem(olMailItem)
oItem.Display
'Add attachment
oItem.Attachments.Add strData
'Create a file system object to delete temporary file
Set fs = CreateObject("Scripting.FileSystemObject ")
fs.deletefile strData
End Sub
PS: Evidemment, faire les adaptations nécessaires notamment au niveau du path et du nom du PDF
 

RJ85

XLDnaute Nouveau
Bonjour

Un petit tour par G..g.e, et lui trouve toujours ;)
Un exemple de code qui fait le job
VB:
Sub EmailPDF()
Dim strData As String
Dim ola As Outlook.Application
Dim maiMessage As Outlook.MailItem
Dim fs
strData = InputBox("Please Enter Filename")
strData = "h:\" & strData & ".pdf" 'Creates a PDF and stores it locally
ActiveDocument.ExportAsFixedFormat OutputFileName:=strData, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentWithMarkup, IncludeDocProps:=False, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=False
On Error Resume Next
'Start Outlook if it isn't running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
End If
'Create a new message
Set oItem = oOutlookApp.CreateItem(olMailItem)
oItem.Display
'Add attachment
oItem.Attachments.Add strData
'Create a file system object to delete temporary file
Set fs = CreateObject("Scripting.FileSystemObject ")
fs.deletefile strData
End Sub
PS: Evidemment, faire les adaptations nécessaires notamment au niveau du path et du nom du PDF


Bonjour JM,

D'abord merci pour avoir répondu dans des délais très courts:)
Malheureusement, je n'y arrive pas avec ce code. Il est probable que je ne sache pas l'adapter au path...

Ce code ci-dessous fonctionne mais cela reste un document word et lourd pour Outlook (parfois plus de 20MO) et non un PDF :(

Private Sub ENVOYER_Click()
Options.SendMailAttach = True
ActiveDocument.SendMail
End Sub

Merci quand même.

Raphaël
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

C'est ceci qu'il faut adapter à ta problématique
strData = "h:\" & strData & ".pdf"
Imaginons que tu stockes ton PDF dans un dossier nommé WordPDF dans tes Documents
Alors le chemin (ou Path en anglais) devra être
strData = "C:\Users\Staple1600\Documents\WordPDF\" & strData & ".pdf"

NB: Evidemment remplacer Staple1600 par le login de session Windows
 

RJ85

XLDnaute Nouveau
Re

C'est ceci qu'il faut adapter à ta problématique
strData = "h:\" & strData & ".pdf"
Imaginons que tu stockes ton PDF dans un dossier nommé WordPDF dans tes Documents
Alors le chemin (ou Path en anglais) devra être
strData = "C:\Users\Staple1600\Documents\WordPDF\" & strData & ".pdf"

NB: Evidemment remplacer Staple1600 par le login de session Windows

Je vais voir sur l'ordi du boulot et t 'en remercie.
J'espère que le chemin d'accès est identique pour l'ensemble des collègues car chacun a une session. je voudrais que ces collègues m'envoie le doc en PDF à partir de leur session windows
Bien à toi,
Raphaël
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Normalement (sur PC sous Windows), avec cette syntaxe, pas de problème de path
Ci-dessous une petite macro de test pour illustrer la chose.
VB:
Sub PourTest()
strData = InputBox("Saisir, svp, le nom du ficher à convertir en PDF.", "Export en PDF")
'Creates a PDF and stores it locally
strData = CreateObject("WScript.Shell").SpecialFolders("mydocuments") & "\" & strData & ".pdf"
MsgBox strData
End Sub
 

Discussions similaires

Réponses
15
Affichages
726
Compte Supprimé 979
C
Réponses
2
Affichages
625
Réponses
2
Affichages
111

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa