Enregistrement pdf sur le bureau avant envoi par mail

Bonjour à tous!

J'ai trouvé un code super pour envoyer en pièce jointe un doc excel.

Le soucis, c'est que celui-ci n'enregistre pas le document avant l'envoi, il l'envoie vierge.

Voici mon code:

Sub Depots()

Set a = Outlook.CreateItem(olMailItem)

With a

.To = ""

.Attachments.Add ("chemin du document vierge")

.Subject = "Objet"

.BodyFormat = olFormatHTML

.Body = "Bonjour," & Chr(10) & "" & Chr(10) & "" & Chr(10) & "Vous trouverez, ci-joint, mon bon de commande... " & Chr(10) & "" & Chr(10) & "" & Chr(10) & "Cordialement"

.Display

End With

End Sub

Savez vous qu'est ce que je dois ajouter pour qu'il enregistre le document modifié sur le bureau de la personne, de façon à ce que ce document s'envoie par pièce jointes??

Je pense qu'il faudrait ajouter quelque chose entre .To = et .Attachments.Add// Ou plutot avant Set a = Outlook.CreateItem... ???

J'ai également trouvé ce code:

Sub Macropdf()

'

' Macropdf Macro

'

'

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"D:\Profiles_dupont\Users\gerard\Desktop\Haute saison v2.pdf", Quality:= _

xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=True

Application.WindowState = xlMinimized

Application.WindowState = xlNormal

End Sub

J'ai donc rééditer mon code par celui ci:

Sub Depots()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"D:\Profiles_dupont\Users\" & Environ("username") & "\Desktop\Haute saison v2.pdf"

xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=True

Application.WindowState = xlMinimized

Application.WindowState = xlNormal

Set a = Outlook.CreateItem(olMailItem)

With a

.To = ""

.Attachments.Add ("chemin du document vierge")

.Subject = "Objet"

.BodyFormat = olFormatHTML

.Body = "Bonjour," & Chr(10) & "" & Chr(10) & "" & Chr(10) & "Vous trouverez, ci-joint, mon bon de commande... " & Chr(10) & "" & Chr(10) & "" & Chr(10) & "Cordialement"

.Display

End With

End Sub

Mais ça ne marche pas... Une idée svp??

Merci d'avance pour votre aide!

Faten

J'ai réussi!!

Je partage mon code si un jour ça peut intéresser qqn:

Sub Depots()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"C:\Users\" & Environ("username") & "\Desktop\Tapez le nom de votre doc.pdf", Quality:= _

xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=False

Set a = Outlook.CreateItem(olMailItem)

With a

.To = ""

.Attachments.Add ("C:\Users\" & Environ("username") & "\Desktop\Tapez le nom de votre doc.pdf")

.Subject = "Tapez l'objet"

.BodyFormat = olFormatHTML

.Body = "Bonjour," & Chr(10) & "" & Chr(10) & "Vous trouverez ci-joint mon bon de commande. " & Chr(10) & "" & Chr(10) & "Cordialement,"

.Display

End With

End Sub

Je me demande juste si: le C:\ n'est pas gênant, qu'en pensez vous???

Voici le code résolu! Merci aux participants du forum pour m'avoir aidé à compléter ce code!

Sub Depots()

Dim sNomFic As String, sRep As String, WshShell As Object

' Créer une instance Windows Script pour retrouver le chemin du bureau

Set WshShell = CreateObject("WScript.Shell")

sRep = WshShell.SpecialFolders("Desktop")

Set WshShell = Nothing

' Définit le nom du fichier à enregistrer

sNomFic = "Nom de mon doc.pdf"

' Enregistrer la feuille en PDF

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _

Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=False

Set a = Outlook.CreateItem(olMailItem)

With a

.To = ""

.Attachments.Add (sRep & "\" & sNomFic)

.Subject = "Bon de commande"

.BodyFormat = olFormatHTML

.Body = "Bonjour," & Chr(10) & "" & Chr(10) & "Vous trouverez ci-joint mon bon de commande. " & Chr(10) & "" & Chr(10) & "Cordialement, "

.Display

End With

End Sub

Rechercher des sujets similaires à "enregistrement pdf bureau envoi mail"