Macro VBA - Envoi Mail Auto avec PJ
Bonjour à tous,
Et merci d'avance pour votre aide à tous ceux qui participerons.
Je vous explique mon soucis.
Dans le cadre de mon travail, je développe une macro qui:
- Explose en onglets mon portefeuille de suivi de commande par fournisseur (OK- Fonctionne)
- Chaque onglet est ensuite renommé et exporté en PDF puis enregistré dans un dossier (OK-Fonctionne)
Dans une seconde Macro sur un autre onglet:
- J'ai un tableau avec 2 colonnes (nom fournisseur et adresse mail fournisseur)
- Ma Macro prépare l'envoie automatique d'un mail de relance, le destinataire est bien appelé, le corps et le sujet du mail sont corrects (OK-Fonctionne)
- Mais je n'arrive pas à configurer l'attachement automatique du bon fichier PDF précédemment généré. (Ne fonctionne pas)
Avez vous une idée de comment appeler le bon fichier automatiquement dans le bon mail de relance fournisseur afin qu'il se rajoute automatiquement ?
Dans l'attente de vous lire.
Cordialement
Nicolas
Bonjour,
Sans fichier test / essai, il est difficile d'apporter une aide pertinente alors je vais rester très général...
Dans ta procédure d'envoi mail, tu dois avoir une instruction du style :
.Attachments.Add (repertoire & "\" & fichier)Tout en sachant que "repertoire" et fichier sont deux variables "string" à déclarer avant la procédure...
Peut-être ton problème, si j'ai bien compris est le fait que tous les onglets font l'objet d'un PDF, ta macro n'a peut-être pas l'instruction pour savoir quel fichier associer à quel fournisseur.
Voilà, je ne peux pas faire mieux :)
Bonne journée.
Joe
Bonjour,
Voici à quoi ressemble l'onglet ou j'ai ma macro d'envoi de mail auto.
Cela me génère l'ouverture de X emails, chaque email ayant pour destinataire l'adresse se trouvant en "B9:B"
Le fichier précédemment généré en PDF est déjà enregistré dans un dossier et s'appelle "NOM ENTREPRISE.PDF"
les noms des entreprises se trouvent dans la page A9:A
Dans l'idéal j'aimerais que le mail aillent chercher le bon PDF dans le "répertoire" indiqué.
Il faudrait pour cela que la macro reconnaisse le lien entre le nom du fichier fournisseur et l'adresse email de celui ci.
Vous voyez ?
J'imagine que cela doit donner quelque chose comme cela:
Dim Répertoire As String
Dim Fichier As String
Répertoire = "C:// XXX"
Fichier = ??? (comment définiriez vous cette variable)
..... (puis)
.Attachments.Add (repertoire & "\" & fichier)Merci d'avance pour votre aide
Nicolas
Bonjour à tous,
Voici un premier essai avec ce code :
Sub EnvoiMails()
dim fichier$, email$
with activesheet
dl = .cells(.rows.count, 1).end(xlup).row
for i = 9 to dl
fichier = "C\XXX\" & .Cells(i, 1).value & ".pdf"
email = .Cells(i, 2).value
if MailAuto(email, .[F8].value, .[F10].value, fichier) = false then msg = msg & vblf & "- Echec envoi : " & .Cells(i, 1) & " !"
next i
end with
if msg <> "" then msgbox "Problèmes :" & msg
end sub
function MailAuto(Destinataire as string, Sujet as string, Objet as string, optional PJ as string = "") as boolean
on error goto fin
with createobject("outlook.application")
with .createitem(olmailitem)
.to = Destinataire
.subject = Sujet
.body = Objet
if dir(PJ) <> "" then .attachments.add PJ
.display
'.send
end with
end with
fin:
if err.number = 0 then MailAuto = true
end functionCdlt,
Tout d'abord merci pour le code il fonctionne à merveille
Et c'est exactement ce que je voulais.
Merci vraiment beaucoup pour votre temps et votre aide !
Cordialement,
Nicolas