VBA envoyer un mail outlook avec une pièce jointe

Bonjour ! :slight_smile:

Je suis assez désespérée à vrai dire car je ne connais rien au code et je n’arrive pas à trouver une solution malgré les nombreux tutos sur internet, j’ai un code pour envoyer des mails imbriquant des données différentes selon chaque destinataire qui fonctionne bien et j’aurais aimé ajouter dans celui-ci la possibilité de mettre les pièces jointes automatiquement pour ne pas avoir à le faire pour les 95 mails (pièces jointes qui sont toutes différentes).

Voici ci-dessous le code de base avec en gras la partie qui me pose problème, vous auriez une solution svp ?

Sub email()

Dim x As Byte

monNumero = Range(« A2 »).Value

Set ws = Worksheets(« Liste mails »)
ws.Select

For compteur = 2 To 171 Step 1
monNumroActuel = Cells(compteur, 1)
If monNumero = monNumroActuel Then

If Cells(compteur, 5) = « a » Then
leSujet = Cells(compteur, 2)
mesAA = mesAA & « ; » & Cells(compteur, 3)
pour = Cells(compteur, 3)
lecorp = " "

ElseIf Cells(compteur, 5) = « cc » Then
mesCC = mesCC & « ; » & Cells(compteur, 4)
End If

Else
Set leOutlook = CreateObject(« Outlook.Application »)
monNumero = monNumroActuel
With leOutlook.CreateItem(0)
.Subject = leSujet
.To = mesAA
.Body = lecorp
.cc = mesCC
.display

If contenu = «  » Then contenu = "vide"
modifier = MsgBox(contenu & vbCr & « Voulez vous choisir un fichier à joindre ? », vbYesNo, « Fichiers paramétrés »)
If modifier = vbYes Then
For i = 0 To 9
If i > 0 Then encore = MsgBox(« un autre ? », vbYesNo)
quest:
If encore <> vbNo Then
PJ = InputBox(« Emplacement du fichier joint au PUBLIPOSTAGE? », « Paramétrage du PUBLIPOSTAGE pour la session », publipostagePJ(i))

End With

mesCC = «  »
mesAA = «  »
If Cells(compteur, 5) = « a » Then

leSujet = Cells(compteur, 2)
mesAA = mesAA & « ; » & Cells(compteur, 3)
lecorp = " "

ElseIf Cells(compteur, 5) = « cc » Then

mesCC = mesCC & « ; » & Cells(compteur, 4)
End If

End If

Next

Set leOutlook = Nothing

End Sub

Merci d’avance pour votre aide ! :slight_smile:

Bonsoir

Si tu ne souhaites pas aller sélectionner les pièces jointes aux mail dans une boite de dialogue seule solution lister dans une colonne leur adresse et nom (c:\chemin\ma pièce jointe.xlsx)
Puis dans ton traitement venir chercher cette donnée pour l’envoi de cette pièce
A la place de tes lignes en gras mettre ceci pour une donnée à récupérer en colonne 5 :

fichier = Cells(Compteur,5)
If fichier <> «  » Then
.Attachments.Add fichier
End If

Maintenant il faut mettre dans toutes tes lignes colonne 5 ou une autre (à adapter ici Cells(Compteur,5)) le chemin et nom du fichier à joindre dans le mail

A toi de voir si cette solution est jouable pour toi

Merci beaucoup pour la solution !

De rien mais tu ne me dis pas grand chose sur son efficacité
Qu’en est il ?

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.