Evoyer un mail sous EXCEL
RésoluSurtout ne m’incendiez pas mdrrrrrrrrrrr
Ne me répondez surtout pas « fais une recherche une le forum ou sur Google », c’est déjà fait lollllll
En effet on dirait même que le net ne traite que de ca, tout le monde demande comment faire pour envoyer un mail sous Excel, avec pour chacun des particularités, et tout le monde y va de sa réponse, des macros, des boutons, du vba, j’en passe et des meilleurs, et tout le monde galère, moi ca fait 2 jours que j’essaye de trouver THE SOLUTION et je craque.
Donc moi aussi je voudrai envoyer un ou des mails sous Excel en utilisant le logiciel de messagerie Outlook.
Je possède un classeur Excel (classique mdrrrr) avec 3 feuilles (classique aussi mdrrrrr).
Dans une feuille « références » je possède la liste des adresses email à envoyer. J’ai également des adresses de diffusion compatible Outlook. j'ai aussi en référence "l'objet du message" et le "texte du message" s'il le faut.
J’ai aussi une autre feuille Excel, c’est celle que je voudrai envoyer.
Je voudrai avoir 2 fonctions qui soient totalement automatiques, j’ai lu des tas de galère entre Excel et Outlook, j’appuie sur un bouton et hop le mail est construit et envoyé sans autre forme de procès.
Une première fonction qui puisse me permettre d’envoyer « Le classeur Excel » en entier vers une liste de diffusion ou liste d’adresse mail, par exemple en cliquant sur un beau bouton (mdrrrrrrr) « envoie Classeur ».
Une deuxième fonction qui puisse me permettre d’envoyer simplement « la feuille active » à soit une liste de diffusion ou liste d’adresse mail, par exemple en cliquant sur un beau bouton (mdrrrrrrr) « envoie Feuille ».
Serait-il possible de pouvoir remplir les champs suivants :
CCI :
OBJET :
Le champ corps du message : avec un petit texte, toujours identique bien sur.
Bon j’attends vos réponses et votre aide précieuse.
Je vous souhaite une bonne journée.
A +++++++++++++++
Configuration: Windows XP Internet Explorer 7.0
27 réponses
Un utilisateur cherche à automatiser l'envoi d’emails depuis Excel via Outlook, visant soit le classeur entier, soit la feuille active, avec des champs CCI, objet et corps prédéfinis et des listes de diffusion. Plusieurs intervenants suggèrent d'utiliser une macro VBA, par exemple une fonction EnvoiMail, pour envoyer soit le classeur, soit la feuille, en précisant les destinataires et le sujet. Des échanges évoquent que la méthode SendMail peut ne pas intégrer le corps du message, et certains proposent d'utiliser Outlook pour composer le message avec une liste de diffusion séparée par des points-virgules. D'autres nuances ajoutent la nécessité de tester l'automatisation via bouton et d'adapter les paramètres spécifiques à la version Windows et à Outlook.
-
Re tout le monde,
bon il faut que je reste coolllllllllllll,
j'ai lu sur ce forum concernant cette macro permettant d'envoyer un mail :
En pièce jointe, c'est le classeur précisé devant Sendmail qui est envoyé.
Ça peut être le classeur contenant la macro (ThisWorkbook), ou le classeur actif (ActiveWorkbook),
moi j'ai ca comme macro
Sub EnvoiMail()
Workbooks("Planning").SendMail Recipients:=Range("Références!F1").Value, _
Subject:="Test envoi classeur", _
ReturnReceipt:=True
End Sub
pkoi j'ai Workbooks, j'ai essayé de mettre Thisworkbook, Excel m'a mis une giffle lollllllllllllllllllllll
moi je veux envoyer la feuille Excel qui s'appelle "Planning" et qui est dans mon classeur ou j'ai ma macro et mon bouton
tainnnnnnnnn il va partir ce mail mdrrrrrrrrrrrrrrrrrrrrrrr
allez à +++++++++++++++ -
re hellooooooooooo tout le monde,
voilà ce que j'ai trouvé sur le net
la méthode sendmail permet l'envoi du classeur actif,_
'mais vous ne pouvez pas spécifier de texte dans le message,'
'juste un sujet et si oui ou non vous voulez un accusé de réception
'l'envoi est direct, l'utilisateur n'a pas besoin d'appuyer sur un bouton envoyer
donc cette Méthode (sendmail) que j'utilise actuellement ne permet pas d'envoyer de texte dans le mail grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Sub EnvoiMail()
Dim Dest As String
Dest = Range("Références!G2").Value
Worksheets("planning").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SendMail Recipients:=Dest, _
Subject:=Range("Références!L2:M2"), _
ReturnReceipt:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
tainnnnnnnn il existe pas une solution pour envoyer par mail soit "une feuille d'un classeur" et ou "un classeur entier" au choix et pouvoir mettre un texte dans le message ?????
merci de votre aide.
a +++++++++++++++++++++++ -
re la fouleeeeeeeeeeeee,
Bon alors personne ne sait envoyer des mails avec Excel via outlook ????
on fait comment pour mettre quelque chose dans le corps du mail ????
merci de votre aide. -
Re tout le monde,
bon visiblement quand on utilise ce type de macro pour envoyer un mail
Sub EnvoiMailELOGES()
Dim Dest As String
Dest = Range("Références!G2").Value
Worksheets("planning").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SendMail Recipients:=Dest, _
Subject:=Range("Références!L2:M2"), _
ReturnReceipt:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
on ne peut pas utiliser ni Corps:= ni Body:= pour écrire un message dans le mail.
tainnnn mais c'est quoi alorsssss grrrrrrr
je craqueeeeeeeeeeeeee lollll
a++++++++++ -
grrrrrrrrrrrrrrrrr,
il y a des posts qui se perdent pfffffffffffffff. -
Contributeurmais oui, je sais bien que ce n'était pas la réponse à ta question,
c'était pour ne pas à avoir à taper
=CONCATENER(F2;";";F3;";";F4;";";F5;";";F6;";";F7;";";F8;";";F9;";";F10;";";F11)
mais
=ConcatPlage(F2:F11;",")
et pouvoir modifier plus rapidement si le nbre de destinataires change régulièrement
rhalalaaa, arrete l'apéro ;-) -
re ericcccccccccccccccccc,
anhhhhhhhhhhh lààààààààààààà tu me deçois tain moi qui disait à tout le monde Ericccccc c'est un Dieu.
pfffffffffffff un mythe qui vient de tomber pliéeeeeeeeeeeeeeeeee.
je deconneeeeeeeeeeeeeeeeee.
j'ai trouvé la solution concernnant l'automatisation ici
https://codes-sources.commentcamarche.net/
mais je vais pas faire
allez zouuuuuuuuuuuu merci pour tout
bon appppppppppppppppppppppppp
a ++++++++++++++++++++ -
ContributeurBonjour tout le monde,
J'avais créé une fonction personnalisée pour concatener une plage avec choix du séparateur.
Si le nombre de destinataires est amené à varier régulièrement ça peut t'interesser.
Function ConcatPlage(plage As Variant, separateur As String) As String Dim c As Range Dim rep As String For Each c In plage rep = rep & separateur & c.Value Next c ConcatPlage = Mid(rep, Len(separateur) + 1) End Function
à coller dans un module.et la syntaxe dans une cellule est
=ConcatPlage(A1:A6;",")
Si en plus si tu mets une plage dynamique avec decaler() la chaine s'ajuste automatiquement selon le nb de destinataire.
Dans ce cas il faut réserver une colonne complete pour les noms.
eric -
re a tous,
bon concernant l'automatisation de l'envoi du mail avec outlook j'ai trouvé sur le net et je laisse tomber
la solution ici mais je veux pas me lancer la dedans mdrrrrrrrrrrrrrrr
https://codes-sources.commentcamarche.net/
je ferai un ti Clic pour envoyer le mail
a +++++++++++++++ -
Re giheller,
yeahhhhhhhhhhhhhhhhhhhhh, ca marcheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
tain mes mails sont partis.
Quelques remarques quand meme lollllllllll
bon je sais pas pkoi mais avec la solution
=CONCATENER(F3;",";F4;",";F5;",";F6;",";F7;",";F8;",";F9;",";F10;",";F11;",";F12;",";)
j'avais tjr une erreur "erreur d'excution 1004" la liste des destinataires contient un nom de destinataire inconnu, utilisez un nom valide et reessayez.
je me suis prise la tete et je comprennez pas pkoi, pourtant dans ma cellule concaténée j'avais bien les bons noms enfin bref.
j'ai donc choisi de mettre comme destinataire une cellule qui référence une liste de destination de outlook et la miracleeeeeeeeeeeeeeeeee ca marcheeeeeeeeeeeeeeeeee yeahhhhhhhhhhhhh.
donc maintenant tites questions lolllllllllllllll
quand ca marche il y a une tite fenêtre de Outlook qui nous raconte "que quelqu'un tente d'envoyer du courrier en votre nom es ce qu'on l'autorise a poursuivre" peut etre qu'il faut faire quelque chopse dans outlook pour ne plus avoir cette fenêtre, surement meme je vais chercher lolllllll.
sinon :
si je veux utiliser une adresse dans CCI pour les copies cachée avec la macro, je fais comment.
si je veux mettre un texte dans mon message ???? je fais comment.
bon dernière question ????? pkoi la procédure creait elle un nouveau classeur ?????
bon là je sais j'abuse mdrrrrrrrrrrrr
mais je progresse et encoreeeeeeeeeeee merci a vous tous.
a +++++++++++++++
bon je suis sure le prochain post je pourrai mettre Problème résolu youpiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii-
dans la liste, le & quote; est peut être en trop.
le message d'envoi est normal puisque c'est excel qui tente d'envoyer un message par l'intermédaire d'outlook.
il existe peut être une solution pour annuler ce message dans le genre message.alert="false" : à vériier
pour le CCi c'est possible il faut trouver le paramètre de sendmail (le help de excel le donne peut être)
je ne connais pas tout par coeur !
-
-
Contributeurbonjour
Allez tu vas réussir à l'envoyer ce courriel !
et dans ma feuille "Réérences" en F1 j'ai mis
=CONCATENER(F2;";";F3;";";F4;";";F5;";";F6;";";F7;";";F8;";";F9;";";F10;";";F11;";")
Tu vas remplacer les ";" par "," car sinon tes courriers seront refusés.
Pour la macro tu mets ceci qui est fonctionnel pour l'envoi d'une feuilleSub EnvoiMail() Dim Dest As String Dest = Range("Références!F1").Value Worksheets("planning").Copy Application.DisplayAlerts = False ActiveWorkbook.SendMail Recipients:=Dest, _ Subject:="Test envoi classeur", _ ReturnReceipt:=True ActiveWorkbook.Close Application.DisplayAlerts = True End Sub
La procédure crée un nouveau classeur avec la seule feuille que tu veux envoyer et c'est pour cela qu'il faut avoir une variable pour les destinataires puis pour ton sujet et ton message si tu peaufines un peu. -
workbook est le nom du classeur
worksheet est le nom de la feuille
alors on met workbook("le nom du calsseur").worksheet("planning").sendmail ... -
Bonjour,
l'indice n'appartient pas à la sélection veut dire qu'il y a une erreur sur une référence.
woorkbooks veut dire classeur : le nom du classeur est sans doute woorkbook.xls ...
debogage donne la ligne où se trouve l'erreur, il faut donc trouver ce que l'on a codé et sui ne va pas... -
Re bonsoir,
merci bcp, j'avais fait exactement la meme chose j'avais collé le mode dans module1 et j'avais l'erreur
"Erreur d'excution "9" l'indice n'appartient pas à la sélection.
de plus quand je cliqie sur débogage j'ai tout ca en jaune
Workbooks("Planning").SendMail Recipients:=Range("Références!F1").Value, _
Subject:="Test envoi classeur", _
ReturnReceipt:=True
c'est grave docteur ?????? lolllll
merci de votre aide
pi etre à ++++++++++ -
le dossier excel avec le bouton et la macro est là
https://www.cjoint.com/?dhwC3IZdan -
re,
tu es super sympa,
tu prends du temps à répondre.
mais j'ai l'impression qu'on fait du ping pong là.
on laisse tomber.
Un grand merci pour ton aide. -
Une macro c'est un code qui est exécuté quand une action le déclanche.
dans excel on crée une macro en faisnat outil macro nouvelle macro, et on écrit le code.
ensuite (par exemple) on crée un bouton qui associé à la macro sera le déclancheur de l'action.
les réponses aux questions sont déjà dans les messages précédents.
Il y a un minumum à connaître avant de se lancer.
J'entends par minimum une expérience dans excel plus simple que déjà faire des macros...
-
re
voilà ce truc
Sub EnvoiMail()
Workbooks("Planning").SendMail Recipients:=Range("Références!F1").Value, _
Subject:="Test envoi classeur", _
ReturnReceipt:=True
End Sub
c'est quoi ? du code ? une macro ??? c'est je sais pas moi lollllllllllllllllll
je dois en faire quoi pour envoyer mon mail ?
grrrrrrrrrrrrrrrrrrrrrrrr
a ++++++++++++ -
le code c'est le contenu de la macro !
-
re,
bon je récapitule alors.
j'ai ce bout de code
Sub EnvoiMail()
Workbooks("Planning").SendMail Recipients:=Range("Références!F1").Value, _
Subject:="Test envoi classeur", _
ReturnReceipt:=True
End Sub
je fais outil, macro, macro nouvelle, je luis donne le nom de EnvoiMail et je fais ok.
sur le bouton je fais clic droit, associer une macro, et je lui affecte la macro EnvoiMail et je fais OK.
le code le doit le coller où ?
quand je fait outils, macro, visual basic editor, je vois des truc
feuille 1
feuille 2
feuille 3
module 1
module 2
Thisworkbook on j'ai déjà du code
j'ai essayé de le coller dans module 1, quand je clique sur le bouton ca fait "impossible d'excecuter VBA à cause d'une erreur de syntaxe
j'ai fait la meme chose de le coller dans thisworkbook
meme punition "impossible d'excecuter VBA à cause d'une erreur de syntaxe
donc voilà mes mails sont pas encore partis lolllllllll
a +++++++++++++
- 1
- 2