Vba insérer une pièce jointe dans un mail, qui diffère selon le destinataire
Résolu
axll6
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
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
- Dépassement de capacité vba ✓ - Forum Excel
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
3 réponses
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
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?