Je cherche à créer lors d'un enregistrement d'une feuille excel en pdf, l'ouverture automatique d'un mail avec ce pdf en pièce jointe de manière à ne plus qu'à appuyer sur envoyer du mail.
Mon classeur "Main courante modèle" onglet "MC vierge" est renseigné tous les jours et doit être envoyé à plusieurs destinataire en fin de journée.
En fin de journée, quand on valide "Clôturer la journée" celle ci est enregistrée automatiquement en pdf dans un dossier précis pour archive. Tout cela fonctionne très bien.
(Je pense avoir déactivé l'ensemble des protections, mais au cas ou le code est : 123)
Ce que j'aimerai améliorer, c'est l'envoi de ce pdf par mail automatiquement.
Le bouton "Clôturer la journée" contient la macro fin_service du module1 et pense que c'est la dedans qu'il faudrait un supplément de code pour cet envoi de mail.
Je n'arrive pas à adapter cette fonction la dedans malgré ce code trouvé en exemple ci après,
VB:
'Sub Mail()
Private Sub CommandButton1_Click()
Dim oOL As Object
Dim oOLMsg As Object
Dim oOLRecip As Object
Mail2 = Sheet("Destinataire mail").Range("B2:B4").Value
Set oOL = CreateObject("Outlook.Application")
Set oOLMsg = oOL.CreateItem(0)
Liste = ""
For Each c In Mail2
Liste = Liste & ";" & c
Next c
With oOLMsg
.To = Liste
.Subject = "Main Courante "
.Importance = 1
Texte = "<FONT face='Arial' size=2>Bonjour, "
Texte2 = "<br><br><FONT face='Arial' size=2>Ci-joint la main courante du jour (" & Date & ")."
Texte3 = "<br><br><FONT face='Arial' size=2>Cordialement"
.HTMLBody = Texte
.HTMLBody = .HTMLBody & Texte2
.HTMLBody = .HTMLBody & Texte3
.Display
End With
Set oOLMsg = Nothing
Set oOLRecip = Nothing
Set oOL = Nothing
End Sub
et en y ajoutant le pdf enregistré en pièce jointe.
Cela est il possible et quelqu'un peut-il m'aider la dessus ?
Merci
Cdlt
Merci de ton interret à mon post.
Bien ajouté .Attachments.Add, tenté ta proposition mais n'arrive pas à l'adapter pour récupérer le pdf.
je reviens chercher de l'aide.
Merci
Je n'utilise pas de client mail sur le PC de tests où je fais mes "expériences" XLD, mais ce devrait passer sans problème...
Avant de vouloir ajouter une pièce jointe est-ce que ton code fonctionne pour simplement envoyer un mail Outlook ?
L'instruction .Attachment.add("C:\...") marche bien, je la'i testé.
Oui mon code fonctionne pour envoyer un simple mail.
Il fonctionne également si je met un Chemin d'une pièce jointe précise.
Dans mon cas, le classeur main courante contient un bouton (clôturer la journée) qui permet d'enregistrer l'onglet "MC Vierge" en pdf et le stocker dans un dossier.
Pour info, dans ce dossier, jour après jour, ces pdf sont stockés l'un en dessous de l'autre (en liste).
Si non, mon idée est de récupérer ce pdf au moment de l'enregistrement ou d'en créer un second juste pour l'attacher dans le mail.
Je bloque juste sur cet endroit de pouvoir faire.
Bien il faut que le nom complet (avec chemin) du fichier PDF soit dans une variable Public de type String... (en Top de Module°
Public MonPDFFullPath As String
Quand tu généres ton PDF dans une autre macro, tu dois le nommer et lui donner un nom, je suppose et son chemin ?
A ce moment tu mets tout ça dans la Variable... (extention .pdf comprise)
Ensuite dans la Macro Outlook, tu n'as plus qu'à faire ceci : .Attachments.Add (MonPDFFullPath)
Désolé, je coule , pour tant ça a l'air tout simple (pourquoi je bloque la dessus !!!)
En haut du module j'ai créé la variable public.
VB:
Public MonPDFFullPath As String
cela est le code qui génère le pdf dans l'autre macro
Code:
'Enregistrement en pdf
FileN = Format(Sh.Range("C2"), "dd-mm-yy") & " " & Format(Time, "hhmmss")
Sh.ExportAsFixedFormat xlTypePDF, Filename:=chemin & FileN & ".pdf"
MsgBox "Main courante clôturée.", vbInformation, "Enregistrement en PDF"
La ou je bloque : mets tout ça dans la Variable...
j'ai tenté,
MonPDFFullPath = Sh.ExportAsFixedFormat xlTypePDF, Filename:=chemin & FileN & ".pdf"
et dans la macro outlook j'ai mis
Soit en amont, le plus logique, tu peux faire ceci :
MonPDFFullPath = chemin & Format(Sh.Range("C2"), "dd-mm-yy") & " " & Format(Time, "hhmmss") & ".pdf"
Et en prime ré-utiliser la variable pour générer le PDF :
Sh.ExportAsFixedFormat xlTypePDF, Filename:=MonPDFFullPath
Après 2 ou 3 test cela à l'air de fonctionner correctement.
c'est super cool, je pensai ne pas y arriver.
Je te dis un GRAND merci pour ton aide et soutien.
Cdlt