Vba insérer une pièce jointe dans un mail, qui diffère selon le destinataire
Résolu
axll6
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaite créer une macro vba qui permette d'envoyer un mail à différentes personnes avec une pièce jointe différente pour chaque personne.
Pour l'instant, mon code est :
la ligne .Attachments.Add = Range("c3") & Range("a" & Ligne) ne fonctionne pas (message d'erreur : 'échec de l'opération'). Les fichiers à insérer se trouvent dans un même dossier dont le chemin est écrit en cellule c3, puis le nom de chaque fichier est écrit dans la colonne "a" et "Ligne" servirait à traiter les différentes lignes de la colonne "a" 'cela fonctionne pour "Subject" et "To"
Comment faut il faire pour que cela fonctionne?
Je souhaite créer une macro vba qui permette d'envoyer un mail à différentes personnes avec une pièce jointe différente pour chaque personne.
Pour l'instant, mon code est :
Sub AddAttachment() Dim Lemail As Variant Dim Ligne As Integer Set Lemail = CreateObject("outlook.application") For Ligne = 3 To 4 With Lemail.CreateItem(olmailitem) .to = Range("d" & Ligne) .Subject = Range("c9") & Range("b" & Ligne) .body = Range("j3") .Attachments.Add = Range("c3") & Range("a" & Ligne) .display End With Next Ligne End Sub
la ligne .Attachments.Add = Range("c3") & Range("a" & Ligne) ne fonctionne pas (message d'erreur : 'échec de l'opération'). Les fichiers à insérer se trouvent dans un même dossier dont le chemin est écrit en cellule c3, puis le nom de chaque fichier est écrit dans la colonne "a" et "Ligne" servirait à traiter les différentes lignes de la colonne "a" 'cela fonctionne pour "Subject" et "To"
Comment faut il faire pour que cela fonctionne?
Configuration: Windows / Edge 84.0.522.52
A voir également:
- Vba attachments.add
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
as-tu envisagé de nous donner des informations utiles, par exemple le contenu des deux cellules ("c3") & ("a" & Ligne)?
as-tu essayé ceci:
en cas d'erreur, il te suffit alors d'examiner le contenu de la variable nomfichier.
as-tu envisagé de nous donner des informations utiles, par exemple le contenu des deux cellules ("c3") & ("a" & Ligne)?
as-tu essayé ceci:
dim nomfichier as string nomfichier=Range("c3") & Range("a" & Ligne) .Attachments.Add = nomfichier
en cas d'erreur, il te suffit alors d'examiner le contenu de la variable nomfichier.
Cela fait la même erreur que précédemment : "Echec de l'opération" sur la ligne ".Attachments.Add = nomfichier"
En passant sur "nomfichier" cela indique le nom de mon fichier qui doit être inséré en PJ dans le mail "C:\Users\213AE\Desktop\Envoi\fichier1.xls" où "C:\Users\213AE\Desktop\Envoi\" est contenu en "c3" et "fichier1.xls" en cellule a2
En passant sur "nomfichier" cela indique le nom de mon fichier qui doit être inséré en PJ dans le mail "C:\Users\213AE\Desktop\Envoi\fichier1.xls" où "C:\Users\213AE\Desktop\Envoi\" est contenu en "c3" et "fichier1.xls" en cellule a2
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
ceci semble mieux fonctionner:
Dim Lappli As outlook.Application Dim Lemail As outlook.MailItem Dim Ligne As Integer Set Lappli = New outlook.Application For Ligne = 3 To 4 Set Lemail = Lappli.CreateItem(olMailItem) With Lemail ' ...
Oui dans mon premier message, j'ai indiqué que la cellule "c3" contient le chemin d'accès aux différents fichiers (tous les fichiers se trouvent dans ce dossier); la colonne a contient le nom de chaque fichier, et "ligne" permet de traiter la demande pour chaque ligne
Ainsi, colonnes A : Nom du fichier , B: complément de l'objet du mail; C: chemin du dossier où se trouvent les fichiers (et "c9" le début d'objet du mail), D: Email destinataire
Votre code envoie le message d'erreur "Echec de l'opération" et renvoi à la ligne ".Attachments.Add = nomfichier". Pourtant, en cliquant dessus, le "nomfichier" correspond bien à la cellule c3 et "a" donc au nom du fichier existant
tu peux éventuellement ajouter :
que contient la variable fichiertrouve?