Envoi Mail PDF VBA
Bonjour à tous ,
Pouvez vous svp m'aider à finaliser le code du fichier joint.
Le but du document est de transmettre un fichier PDF à partir des informations de l'onglet PDF.
Actuellement j'arrive à créer le mail avec en pièce jointe le pdf, seulement je n'arrive à alimenter les champs destinataires , Cc et Objet. Il y a visiblement une erreur dans mon code (debutant) et cela fait 2 jours je bute sur le problème.
J'espère vraiment que vous pourrez m'aider.
Bonjour rpascal60,
Voici le code fonctionnel et optimisé (absolument éviter les select et copier/coller quand on peut)
Sub Mail_Auto_Fin_Procédure()
Dim DerLig As Long, L As Long
Dim OutApp As Object, OutMail As Object
Dim QuelMois As String, NomFic As String, strbody As String
Dim MaFeuille As Worksheet
QuelMois = InputBox("Quel mois souhaitez-vous ?")
If QuelMois = "" Then
MsgBox "Saisie du mois impératif! Recommencez...", vbCritical
Exit Sub
End If
Set MaFeuille = Sheets(QuelMois)
' Avec ma feuille
With MaFeuille
' Dernière ligne
DerLig = Range("AE" & Rows.Count).End(xlUp).Row
For L = 3 To DerLig
If Range("AE" & L) = "x" Then
Sheets("pdf").Range("B3").Value = .Range("B" & L).Value
Sheets("pdf").Range("B5").Value = .Range("C" & L).Value
Sheets("pdf").Range("B7").Value = .Range("D" & L).Value
Sheets("pdf").Range("E7").Value = .Range("E" & L).Value
Sheets("pdf").Range("B9").Value = .Range("J" & L).Value
Sheets("pdf").Range("E11").Value = .Range("Z" & L).Value
Sheets("pdf").Range("G14").Value = .Range("AA" & L).Value
Sheets("pdf").Range("E18").Value = .Range("AB" & L).Value
' Nom du fichier
NomFic = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "pdf"
' exporter la feuille
Sheets("pdf").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & NomFic, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
' Créer une instance d'Outlook en late binding
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
' Préparer le texte
strbody = ""
strbody = "Bonjour, " & vbCrLf & vbCrLf _
& "Nous vous prions de trouver ci-joint les informations relatives à l'installation de votre materiel " & vbCrLf & vbCrLf _
& "Cordialement " & vbCrLf _
& "PS : Pour toutes informations complémentaires, veuillez-vous adresser à notre Service Installation " & vbCrLf
' Créer le mail
With OutMail
.Display
.To = Range("AC" & L)
.CC = Range("AD" & L)
.BCC = ""
.Subject = " Planning d'installation - materiel : " & Range("B" & L) & " " & "- " & Range("E" & L)
.Body = strbody & .Body
.Attachments.Add ActiveWorkbook.Path & "\" & NomFic
'.Send ' pour l'envoi du @mail
End With
'.Range("AE" & L) = "x" & " Transmis" 'modification pour eviter x envoi
On Error GoTo 0
End If
Set OutMail = Nothing
Set OutApp = Nothing
Next L
End With
Set MaFeuille = Nothing
End Sub@+
Bonjour BrunoM45
C'est vraiment top.
Merci beaucoup pour ton analyse et conseil. Il est clair que j''ai encore beaucoup de progrès à faire mais en pratiquant et avec l'aide de ce forum je devrait arriver à mes fins. En tout cas je l'espère.
Merci encore et bon dimanche.