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