Aide mail avec pièce jointe
Bonjour à tous,
j'utilise actuellement cette macro pour un tableur (lancée lorsque je clic sur la cellule) et je souhaiterai qu'une pièce jointe soit ajoutée.
La condition c'est que le chemin de la pièce jointe est indiqué sur la ligne concernée.
J'ai testé plusieurs fonctions mais sans résultat, pourriez-vous m'aider svp ?
Merci d'avance
Sub new_mail_with_embedded()
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(olMailItem)
objMail.Attachments.Add "C:\Users\FR01060\Documents\logo.jpg"
On Error Resume Next
adresse = fmMail.txtMail.Value
For col = 0 To 5
With objMail
.Importance = olImportanceHigh
.To = ActiveCell.Value
.CC = ""
.BCC = ""
.Subject = contrôle$ & " véhicule immatriculé " & immat$
txt = txt & fmMail.listAttestations.List(0, col) & " / "
immat$ = ActiveCell.Offset(0, -7).Value
echeance$ = ActiveCell.Offset(0, -4).Value
contrôle$ = ActiveCell.Offset(0, 2).Value
objMail.HTMLBody = "<span style=""color: #365F91; font-size:15 ; font-family: Calibri ; "">Blabla etc...
objMail.Display
End With
Next col
'OutApp.Quit
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End SubBonjour,
Pour ajouter une pièce jointe à ton message outlook, il faut utiliser la propriété attachements : https://docs.microsoft.com/fr-fr/office/vba/api/outlook.attachments.add
Il faudra surtout travailler avec la Source en renseignant le chemin menant à la pièce jointe dans l'ordinateur, il y a un exemple de code et de nombreuses explications qui sont données, j'espère que cela servira.
Bonjour à tous,
Je propose une réorganisation du code avec un déclenchement lors d'un double-clic sur une cellule en colonne 8 (adapter) qui exécute la macro Envoimail, celle-ci dépendant de la cellule double-cliquée.
Il faut arriver à rendre le chemin variable (il devrait apparaitre sur la ligne de la cible).
J'ai laissé la propriété htmlbody en l'état pour l'instant mais elle est à définir correctement. Si j'ai bien compris, il faudra bien affecter la variable txt dont elle dépend.
'CODE A PLACER DANS UN MODULE NORMAL
Sub EnvoiMail(Cible as range)
if msgbox("Confirmez-vous l'envoi par mail ?", vbyesno + vbinformation) <> vbyes then exit sub
PJ = "C:\Users\FR01060\Documents\logo.jpg" '<<<< doit dépendre de la cellule cliquée (PJ = Cible.offset(0, 1) par ex)
if dir(PJ) = "" then
msgbox "Fichier inexistant", vbcritical, "Echec de l'envoi du mail"
exit sub
end if
immat$ = Cible.Offset(0, -7).Value
echeance$ = Cible.Offset(0, -4).Value
contrôle$ = Cible.Offset(0, 2).Value
dest$ = Cible.Value
adresse = fmMail.txtMail.Value '<<< ???
For col = 0 To 5
txt = txt & fmMail.listAttestations.List(0, col) & " / "
next col
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(olMailItem)
With objMail
.Importance = olImportanceHigh
.To = dest
.Subject = contrôle$ & " véhicule immatriculé " & immat$
'.HTMLBody = "<span style=""color: #365F91; font-size:15 ; font-family: Calibri ; "">Blabla etc...
.Attachments.Add PJ
.Display
'.send 'envoi
End With
'OutApp.Quit
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
'CODE A PLACER DANS LE MODULE DE FEUILLE CONCERNEE (CELLE DU DOUBLE CLIC)
private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)
if not intersect(target, columns(8)) is nothing then '<<<< ADAPTER COLONNE
cancel = true
call EnvoiMail(target)
end if
end subCdlt,