Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 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

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
788
Compte Supprimé 979
C
Réponses
2
Affichages
640
Réponses
2
Affichages
120
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…