Evoyer un mail sous EXCEL

Résolu
Bonjour à tous,

Surtout 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

Résumé de la discussion

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.

Bobot (l’IA à votre service)
  1. 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 à +++++++++++++++
    5
    1. J'étais au travail et en lisant ton post, tu m'a fait exploser de rire haha
      0
  2. 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 +++++++++++++++++++++++
    0
    1. 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.
      0
      1. 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++++++++++
        0
        1. grrrrrrrrrrrrrrrrr,

          il y a des posts qui se perdent pfffffffffffffff.
          0
          1. Contributeur
            mais 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 ;-)
            0
            1. 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 ++++++++++++++++++++
              0
              1. Contributeur
                Bonjour 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
                0
                1. 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 +++++++++++++++
                  0
                  1. 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
                    0
                    1. 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 !
                      0
                  2. Contributeur
                    bonjour

                    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;";&qu­ot;)


                    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 feuille
                    Sub 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.
                    0
                    1. , ou ; dans les adresses ça dépend de la config outlook, non ?
                      0
                  3. workbook est le nom du classeur
                    worksheet est le nom de la feuille

                    alors on met workbook("le nom du calsseur").worksheet("planning").sendmail ...
                    0
                    1. 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...
                      0
                      1. 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 à ++++++++++
                        0
                        1. 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.
                          0
                          1. 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...
                            0
                            1. 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 ++++++++++++
                              0
                              1. le code c'est le contenu de la macro !
                                0
                                1. 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 +++++++++++++
                                  0
                                  • 1
                                  • 2