Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoi automatique d'un mail avec PJ - Message d'erreur Outlook

4 réponses
Avatar
edhelbereth
Bonjour,

Je souhaite envoyer un fichier excel en tant que pièce jointe d'un mail. Voici le code que j'ai trouvé en farfouillant dans l'entraide :

Sub EnvoiMailSPM()

Dim Obj As String
Obj = ActiveWorkbook.Name

Dim ol As New Outlook.Application
Dim olmail As MailItem

Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = "destinataire1@mail.com"
.cc = "destinataire2@mail.com"
.Subject = "PROJECT FOLLOW UP / " & Range("B5").Value & " " & Range("B3").Value & " / WKS " & Range("H5").Value & ""
.Attachments.Add (ThisWorkbook.Path & "\" & Obj)
.Send
End With

End Sub

Telle quelle, la macro fonctionne très bien. le problème est que je souhaiterais ajouter un texte dans le corps du mail avant de l'envoyer.
En remplaçant le .Send par un .Display, le mail s'ouvre, avec les bons destinataires, le bon Subject, la bonne pièce jointe, sauf que, quand je clique sur "envoyer", j'ai le message d'erreur suivant : "Impossible d'effectuer cette fonction, l'objet ayant été supprimé" (message de Microsoft Office Word)

Quelqu'un aurait'il un idée sur la résolution (ou le contournement) de ce problème ?

Par avance merci pour votre aide

4 réponses

Avatar
David
Bonjour,

Un copier/coller qui fonctionne chez moi :

CORP="texte du message"

.HTMLBody = CORP
.Display
.Send

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"edhelbereth" a écrit dans le message de news:

Bonjour,

Je souhaite envoyer un fichier excel en tant que pièce jointe d'un mail.
Voici
le code que j'ai trouvé en farfouillant dans l'entraide :

Sub EnvoiMailSPM()

Dim Obj As String
Obj = ActiveWorkbook.Name

Dim ol As New Outlook.Application
Dim olmail As MailItem

Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = ""
.cc = ""
.Subject = "PROJECT FOLLOW UP / " & Range("B5").Value & " " &
Range("B3").Value & " / WKS " & Range("H5").Value & ""
.Attachments.Add (ThisWorkbook.Path & "" & Obj)
.Send
End With

End Sub

Telle quelle, la macro fonctionne très bien. le problème est que je
souhaiterais ajouter un texte dans le corps du mail avant de l'envoyer.
En remplaçant le .Send par un .Display, le mail s'ouvre, avec les bons
destinataires, le bon Subject, la bonne pièce jointe, sauf que, quand je
clique
sur "envoyer", j'ai le message d'erreur suivant : "Impossible d'effectuer
cette
fonction, l'objet ayant été supprimé" (message de Microsoft Office Word)

Quelqu'un aurait'il un idée sur la résolution (ou le contournement) de ce
problème ?

Par avance merci pour votre aide


Avatar
edhelbereth
David a écrit le 20/02/2009 à 18h32 :
Bonjour,

Un copier/coller qui fonctionne chez moi :

CORP="texte du message"

.HTMLBody = CORP
.Display
.Send

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"edhelbereth" a écrit dans
le message de news:

Bonjour,

Je souhaite envoyer un fichier excel en tant que pièce jointe d'un
mail.
Voici
le code que j'ai trouvé en farfouillant dans l'entraide :

Sub EnvoiMailSPM()

Dim Obj As String
Obj = ActiveWorkbook.Name

Dim ol As New Outlook.Application
Dim olmail As MailItem

Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = ""
.cc = ""
.Subject = "PROJECT FOLLOW UP / " & Range("B5").Value
& " " &
Range("B3").Value & " / WKS " &
Range("H5").Value & ""
.Attachments.Add (ThisWorkbook.Path & "" & Obj)
.Send
End With

End Sub

Telle quelle, la macro fonctionne très bien. le problème est que
je
souhaiterais ajouter un texte dans le corps du mail avant de l'envoyer.
En remplaçant le .Send par un .Display, le mail s'ouvre, avec les bons
destinataires, le bon Subject, la bonne pièce jointe, sauf que, quand
je
clique
sur "envoyer", j'ai le message d'erreur suivant : "Impossible
d'effectuer
cette
fonction, l'objet ayant été supprimé" (message de
Microsoft Office Word)

Quelqu'un aurait'il un idée sur la résolution (ou le
contournement) de ce
problème ?

Par avance merci pour votre aide





Merci pour ta réponse David. Ta solution fonctionne efffectivement.

Mon problème est que je voudrais adapter le corps du mail à chaque envoi... Ce qui n'est pas possible. J'ai aussi essayé avec la commande InputBox, mais la saisie ne se fait que sur une ligne (mise en forme est bof bof...)

Si vous avez d'autres idées, elles sont les bienvenues !!

Thx :)
Avatar
David
Bonjour,

Oui, j'expédie tous les jours des e-mail automatiquement.
Il doit bien y avoir une solution que vous conviendra.
J'expédie avec visual basic 6 qui permet adapter le corps du mail à chaque
envoi.
J'en expédie d'autres avec Excel 2003.

saisie ne se fait que sur une ligne (mise en forme est bof bof...)






sous voila ce que j'utilise
'Il faut utiliser les codes hexadécimales suivant pour améliorer
'la chaîne de caractères
'Espace " " = %20
'Virgule "," = %2C
'Point d 'interrogation "?" =%3F
'Point "." = %2E
'Point d 'exclamation "!" =%21
'Deux point ":" = %3A
'Point virgule ";" = %3B
'Saut de ligne "equivalent à chr(10)"= %0A ''avec ce programme fonctionne
TRES BIEN
'touche 'ENTRER' "equivalent à vbcrlf" = %0D 'avec ce programme ne
fonctionne pas chez moi
'Ex: "Visual%20Basic%20%21%21%21" '= Visual Basic !!!

Et sous Excel en macro vous devez pouvoir visonner mon classeur
"envoyer e-mail" tout en bas de la page :
http://users.skynet.be/DAVID/Fichiers_Tempo.htm

Je veux bien vous faire un copier/coller de mon programme en visual basic 6.

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"edhelbereth" a écrit dans le message de news:

David a écrit le 20/02/2009 à 18h32 :
Bonjour,

Un copier/coller qui fonctionne chez moi :

CORP="texte du message"

.HTMLBody = CORP
.Display
.Send

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"edhelbereth" a écrit dans
le message de news:

Bonjour,

Je souhaite envoyer un fichier excel en tant que pièce jointe d'un
mail.
Voici
le code que j'ai trouvé en farfouillant dans l'entraide :

Sub EnvoiMailSPM()

Dim Obj As String
Obj = ActiveWorkbook.Name

Dim ol As New Outlook.Application
Dim olmail As MailItem

Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = ""
.cc = ""
.Subject = "PROJECT FOLLOW UP / " & Range("B5").Value
& " " &
Range("B3").Value & " / WKS " &
Range("H5").Value & ""
.Attachments.Add (ThisWorkbook.Path & "" & Obj)
.Send
End With

End Sub

Telle quelle, la macro fonctionne très bien. le problème est que
je
souhaiterais ajouter un texte dans le corps du mail avant de l'envoyer.
En remplaçant le .Send par un .Display, le mail s'ouvre, avec les bons
destinataires, le bon Subject, la bonne pièce jointe, sauf que, quand
je
clique
sur "envoyer", j'ai le message d'erreur suivant : "Impossible
d'effectuer
cette
fonction, l'objet ayant été supprimé" (message de
Microsoft Office Word)

Quelqu'un aurait'il un idée sur la résolution (ou le
contournement) de ce
problème ?

Par avance merci pour votre aide





Merci pour ta réponse David. Ta solution fonctionne efffectivement.

Mon problème est que je voudrais adapter le corps du mail à chaque
envoi... Ce
qui n'est pas possible. J'ai aussi essayé avec la commande InputBox, mais
la
saisie ne se fait que sur une ligne (mise en forme est bof bof...)

Si vous avez d'autres idées, elles sont les bienvenues !!

Thx :)


Avatar
Vincent Guichard
edhelbereth a écrit :
J'ai aussi essayé avec la commande InputBox, mais la
saisie ne se fait que sur une ligne (mise en forme est bof bof...)

Si vous avez d'autres idées, elles sont les bienvenues !!

Thx :)



Tu peux toujours créer ta propre boite de dialogue pour entrer le corps
du message (une simple feuille avec un bouton OK, un bouton Cancel et un
RichTextBox par exemple).

Vincent Guichard