Macro envoi PJ dans un mail suivant chemin d'accès d'une cellule
Jon40
-
Jon40 -
Jon40 -
Bonsoir,
J'aimerais ajouter deux pièces jointes dans un mail via une macro. Le chemin réseau de ces deux pièces jointes se trouve dans une cellule (lien hypertexte) en ajoutant à ce chemin \commande\commande.pdf et \commande\accuse%20reception.pdf.
J'ai essayé ce code qui ne fonctionne pas :
Auriez-vous une idée ?
Bonne soirée,
Jonathan
J'aimerais ajouter deux pièces jointes dans un mail via une macro. Le chemin réseau de ces deux pièces jointes se trouve dans une cellule (lien hypertexte) en ajoutant à ce chemin \commande\commande.pdf et \commande\accuse%20reception.pdf.
J'ai essayé ce code qui ne fonctionne pas :
Sub mail_envoi_commande()
Dim OutApp As Object
Dim OutMail As Object
Dim chemin As String
chemin = "ActiveSheet.Cells(ActiveCell.Row, 5).Value"
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ActiveSheet.Cells(ActiveCell.Row, 9).Value
.CC = ""
.BCC = ""
.Subject = "Commande pour la formation " & ActiveSheet.Cells(ActiveCell.Row, 5).Value & ""
.Body = "Bonjour, " _
& vbCrLf & vbCrLf & _
"Je vous remercie de bien vouloir trouver ci-joint la commande concernée." _
& vbCrLf & vbCrLf & _
"Cordialement," _
& vbCrLf & vbCrLf & _
"xxx xxx" _
& vbCrLf & _
"xxxxxx" _
& vbCrLf & _
"Tel : xxx"
.Attachments.Add ("chemin &"\commande\commande.pdf")
.Attachments.Add ("chemin &"\commande\accuse%20reception.pdf")
.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Auriez-vous une idée ?
Bonne soirée,
Jonathan
A voir également:
- Macro envoi PJ dans un mail suivant chemin d'accès d'une cellule
- Je n'ai plus acces a ma boite mail gmail - Guide
- Acces rapide - Guide
- Programmer envoi mail gmail - Guide
- Aller à la ligne dans une cellule excel - Guide
- Envoi mail cci - Guide
10 réponses
Re,
Devrait le faire. Remettez vos references vu que je n'ai pas le meme Office.
J'ai mis deux msgbox pour Chemin et subject pour visualiser
https://www.cjoint.com/c/KKoh5jVkuJf
Devrait le faire. Remettez vos references vu que je n'ai pas le meme Office.
J'ai mis deux msgbox pour Chemin et subject pour visualiser
https://www.cjoint.com/c/KKoh5jVkuJf
Re,
Auriez-vous une idée ?
Oui, vous devez rechercher quel fichier Accuse pdf est dans le repertoire Commande
Auriez-vous une idée ?
Oui, vous devez rechercher quel fichier Accuse pdf est dans le repertoire Commande
Bonjour,
Pas de " devant chemin lignes Attachments.Add
Pas de " devant chemin lignes Attachments.Add
Bonjour,
Je vous remercie mais ça ne marche pas. J'ai remarqué que lorsque je modifiais le chemin réseau de la cellule contenant le chemin il me tronque la partie serveur.
J'ai alors essayé de changer le chemin en mettant :
chemin = Workbooks(ActiveWorkbook.Name).Path
et
.Attachments.Add (chemin & "\" & ActiveSheet.Cells(ActiveCell.Row, 5).Value & "\COMMANDE\COMMANDE.pdf")
Ca n'a pas marché. J'ai essayé d'enlever au cas ou le "\", idem.
Je ne comprends pas pourquoi cela ne marche pas.
Pour une autre macro dans laquelle je mets un lien hypertexte vers la ressource cela fonctionne et j'ai inséré :
chemin = Workbooks(ActiveWorkbook.Name).Path
"" & "<a href=""" & chemin & "\" & ActiveSheet.Cells(ActiveCell.Row, 5).Hyperlinks(1).Address & """>" & ActiveSheet.Cells(ActiveCell.Row, 5).Value & "</a>" & "<br><br>" & _
Auriez-vous une idée ?
Bonne journée
Jonathan
Je vous remercie mais ça ne marche pas. J'ai remarqué que lorsque je modifiais le chemin réseau de la cellule contenant le chemin il me tronque la partie serveur.
J'ai alors essayé de changer le chemin en mettant :
chemin = Workbooks(ActiveWorkbook.Name).Path
et
.Attachments.Add (chemin & "\" & ActiveSheet.Cells(ActiveCell.Row, 5).Value & "\COMMANDE\COMMANDE.pdf")
Ca n'a pas marché. J'ai essayé d'enlever au cas ou le "\", idem.
Je ne comprends pas pourquoi cela ne marche pas.
Pour une autre macro dans laquelle je mets un lien hypertexte vers la ressource cela fonctionne et j'ai inséré :
chemin = Workbooks(ActiveWorkbook.Name).Path
"" & "<a href=""" & chemin & "\" & ActiveSheet.Cells(ActiveCell.Row, 5).Hyperlinks(1).Address & """>" & ActiveSheet.Cells(ActiveCell.Row, 5).Value & "</a>" & "<br><br>" & _
Auriez-vous une idée ?
Bonne journée
Jonathan
Bonjour,
le chemin est dans une cellule du classeur ou vous avez le code?
Apres relecture de votre code:
pourquoi vous mettez des "" partout?
Le cas present, Chemin a ce que vous avez ecrit entre "" pas la valeur de votre cellule.
Pour debugger et voir le contenu des variables, mettez des points d'arrets et passez le curseur souris sur les dites variables.
Vous auriez constate ligne
c'est ok. Virez le & "", sert a rien
le chemin est dans une cellule du classeur ou vous avez le code?
Apres relecture de votre code:
chemin = "ActiveSheet.Cells(ActiveCell.Row, 5).Value"
pourquoi vous mettez des "" partout?
Le cas present, Chemin a ce que vous avez ecrit entre "" pas la valeur de votre cellule.
Pour debugger et voir le contenu des variables, mettez des points d'arrets et passez le curseur souris sur les dites variables.
Vous auriez constate ligne
.Subject = "Commande pour la formation " & ActiveSheet.Cells(ActiveCell.Row, 5).Value & ""
c'est ok. Virez le & "", sert a rien
Bonsoir,
Dans le chemin sans les "" le chemin n'est pas trouvé pour prendre la pièce jointe. (j'ai inscrit :
chemin = ActiveSheet.Cells(ActiveCell.Row, 5).Value
et
.Attachments.Add (chemin & "\COMMANDE\COMMANDE.pdf")
Lorsque je fais le point d'arrêt la valeur qui ressort est le texte indiqué et non le chemin réseau.
pour la partie .subject elle ne fonctionne plus sans les & et les "". Le code fonctionne avec les & et "" sans la partie .attachments.Add.
J'ai essayé de modifier le code en mettant :
chemin = Workbooks(ActiveWorkbook.Name).Path & "\" & ActiveSheet.Cells(ActiveCell.Row, 5).Value & ""
.Attachments.Add (chemin & "\COMMANDE\COMMANDE.pdf")
Lors je passe la souris sur chemin il m'indique le raccourcis du lecteur réseau et le nom inscrit dans la cellule, mais pas la valeur réseau.
Auriez-vous une idée ?
Bon week-end
Dans le chemin sans les "" le chemin n'est pas trouvé pour prendre la pièce jointe. (j'ai inscrit :
chemin = ActiveSheet.Cells(ActiveCell.Row, 5).Value
et
.Attachments.Add (chemin & "\COMMANDE\COMMANDE.pdf")
Lorsque je fais le point d'arrêt la valeur qui ressort est le texte indiqué et non le chemin réseau.
pour la partie .subject elle ne fonctionne plus sans les & et les "". Le code fonctionne avec les & et "" sans la partie .attachments.Add.
J'ai essayé de modifier le code en mettant :
chemin = Workbooks(ActiveWorkbook.Name).Path & "\" & ActiveSheet.Cells(ActiveCell.Row, 5).Value & ""
.Attachments.Add (chemin & "\COMMANDE\COMMANDE.pdf")
Lors je passe la souris sur chemin il m'indique le raccourcis du lecteur réseau et le nom inscrit dans la cellule, mais pas la valeur réseau.
Auriez-vous une idée ?
Bon week-end
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
En reprenant votre code de depart et en faisant les simples modif que je vous ai indiquees plus un derniere: il manuqe un espace entre le & et ".
Je l'ai mis quand j'ai modifie votre code
.Attachments.Add chemin & "\commande\commande.pdf"
Maintenant, si vous passez la souris sur ActiveSheet.Cells(ActiveCell.Row, 5).Value que voyez vous.
En reprenant votre code de depart et en faisant les simples modif que je vous ai indiquees plus un derniere: il manuqe un espace entre le & et ".
Je l'ai mis quand j'ai modifie votre code
.Attachments.Add chemin & "\commande\commande.pdf"
Maintenant, si vous passez la souris sur ActiveSheet.Cells(ActiveCell.Row, 5).Value que voyez vous.
Bonjour,
Lorsque je passe la souris sur ActiveSheet.Cells(ActiveCell.Row, 5) il m'affiche le numéro de ma ligne, lorsque je passe la souris sur chemin il m'affiche ce qu'il a écrit dans ma cellule.
Est-ce que le fait que j'ai utilisé une mise en forme automatique peut poser problème ?
Pour info voici le code utilisé :
Merci pour votre patience, bon week-end
Jonathan
Lorsque je passe la souris sur ActiveSheet.Cells(ActiveCell.Row, 5) il m'affiche le numéro de ma ligne, lorsque je passe la souris sur chemin il m'affiche ce qu'il a écrit dans ma cellule.
Est-ce que le fait que j'ai utilisé une mise en forme automatique peut poser problème ?
Pour info voici le code utilisé :
Sub mail_envoi_commande()
Dim OutApp As Object
Dim OutMail As Object
Dim chemin As String
chemin = ActiveSheet.Cells(ActiveCell.Row, 5).Value
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ActiveSheet.Cells(ActiveCell.Row, 9).Value
.CC = ""
.BCC = ""
.Subject = "Commande pour la formation " & ActiveSheet.Cells(ActiveCell.Row, 5).Value & "" 'sans le ""et & ca ne marche pas
.Body = "Bonjour, " _
& vbCrLf & vbCrLf & _
"Je vous remercie de bien vouloir trouver ci-joint la commande concernée." _
& vbCrLf & vbCrLf & _
"Cordialement," _
& vbCrLf & vbCrLf & _
"xxx" _
& vbCrLf & _
"xx" _
& vbCrLf & _
"Tel : xx"
.Attachments.Add (chemin & "\Commande\COMMANDE.pdf")
.Attachments.Add (chemin & "\Commande\ACCUSE%20DE%20RECEPTION.pdf")
.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Merci pour votre patience, bon week-end
Jonathan
Bonjour,
Pouvez mettre votre fichier a dispo car y a un truc.
Pas de donnees confidentielles mais des donnees coherentes, ex votre mise en forme auto
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
www.grosfichiers.com
Pouvez mettre votre fichier a dispo car y a un truc.
Pas de donnees confidentielles mais des donnees coherentes, ex votre mise en forme auto
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
www.grosfichiers.com
Bonsoir,
Je vous remercie. Voici le lien du fichier réduit au strict nécessaire :
Merci pour le temps passé à essayer de m'aider.
Je vous remercie. Voici le lien du fichier réduit au strict nécessaire :
https://www.cjoint.com/c/KKnsGPAuabp.
Merci pour le temps passé à essayer de m'aider.
Mille merci !
Il avait encore du mal à repérer le chemin réseau, j'ai adapté en indiquant le Workbooks(ActiveWorkbook.Name).Path et ca fonctionne !!
Je suis un peu gêné d'abuser mais j'aurais une dernière question, je n'ai pas réussi à insérer de condition dans le choix de la pièce jointe. En gros j'aimerais éviter les erreurs d'enregistrement de fichier entre ACCUSE DE RECEPTION.PDF et ACCUSE RECEPTION.PDF. Du coup j'ai essayé des codes du genre :
If chemin & Lien & "\Commande\ACCUSE RECEPTION.pdf" <> "" then .Attachments.Add (chemin & Lien & "\Commande\ACCUSE RECEPTION.pdf") else .Attachments.Add (chemin & Lien & "\Commande\ACCUSE DE RECEPTION.pdf")
mais il me renvoie une erreur sur le WITH.
Auriez-vous une idée ?
Merci encore pour le temps passé.
Il avait encore du mal à repérer le chemin réseau, j'ai adapté en indiquant le Workbooks(ActiveWorkbook.Name).Path et ca fonctionne !!
Je suis un peu gêné d'abuser mais j'aurais une dernière question, je n'ai pas réussi à insérer de condition dans le choix de la pièce jointe. En gros j'aimerais éviter les erreurs d'enregistrement de fichier entre ACCUSE DE RECEPTION.PDF et ACCUSE RECEPTION.PDF. Du coup j'ai essayé des codes du genre :
If chemin & Lien & "\Commande\ACCUSE RECEPTION.pdf" <> "" then .Attachments.Add (chemin & Lien & "\Commande\ACCUSE RECEPTION.pdf") else .Attachments.Add (chemin & Lien & "\Commande\ACCUSE DE RECEPTION.pdf")
mais il me renvoie une erreur sur le WITH.
Auriez-vous une idée ?
Merci encore pour le temps passé.
Sub mail_envoi_commande2()
Dim OutApp As Object
Dim OutMail As Object
Dim chemin As String, Lien As String
chemin = Workbooks(ActiveWorkbook.Name).Path
Lien = Cells(ActiveCell.Row, 5).Hyperlinks(1).Address 'recupere le contenu complet du lien Hypertext
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ActiveSheet.Cells(ActiveCell.Row, 9).Value
.CC = ""
.BCC = ""
.Subject = "Commande pour la formation " & ActiveSheet.Cells(ActiveCell.Row, 5).Value & ""
.Body = "Bonjour, " _
& vbCrLf & vbCrLf & _
"Je vous remercie de bien vouloir trouver ci-joint la commande concernée." _
& vbCrLf & vbCrLf & _
"Cordialement," _
& vbCrLf & vbCrLf & _
"xx" _
& vbCrLf & _
"xx" _
& vbCrLf & _
"Tel : xx"
.Attachments.Add (chemin & Lien & "\Commande\COMMANDE.pdf")
.Attachments.Add (chemin & Lien & "\Commande\ACCUSE RECEPTION.pdf")
.Attachments.Add (chemin & Lien & "\Commande\ACCUSE DE RECEPTION.pdf")
.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub