Envoi d'un email à partir d'un fichier Excel

Bonjour,

Je souhaiterai envoyer un mail à plusieurs destinataires à l'aide d'une macro à partir d'un fichier Excel.

J'ai un debut de macro mais ça ne fonctionne pas. J'ai regardé sur Internet mais je n'ai rien trouvé pour m'aider.

Mon fichier comprend 6 feuilles. Mon projet est le suivant :

Le demandeur complète la feuille 1 en créant une nouvelle ligne dans le tableau.

En cliquant sur un bouton, le demandeur renseigne son numéro de demande (count) et cela envoie un mail aux destinataires listés en feuille 5. Le demandeur fait parti des destinataires. Il s'agit donc d'un destinataire variable...

Le mail devra contenir un extrait du tableau de la feuille 1 soit un tableau de 2 lignes et 14 colonnes (A à N)

  • ligne 1 : titre des colonnes A à N de la feuille 1
  • ligne 2 : données des colonnes A à N correspondant à la demande du demandeur

Je m'aperçois que c'est assez compliqué à expliquer mais peut être que le fichier attaché sera plus explicite...

Merci d'avance pour votre aide.

Bonjour,

Excel va facilement pouvoir se charger de l'aspect mise en forme ... Mais ...

Ce qui peut rendre l'envoi d'email complexe ... dépend de ton environnement informatique ... et pas du tout d'Excel ...

Par exemple, quel logiciel utilises-tu pour tes emails ...???

Si c'est Outlook ... il existe déjà beaucoup de solutions sur le Forum ...

Travailles-tu sur un poste indépendant ou sur un réseau ...???

As-tu sur le dos un service informatique et des règles strictes à respecter ...???

Bonjour,

Merci pour ton message!

J'utilise effectivement Outlook comme messagerie et je travaille sur un réseau.

La macro que j'essaye d'utiliser est déja employé dans d'autre fichier excel que j'utilise quotidiennement mais je n'arrive pas à l'appliquer à mon besoin. Mon problem est surtout au niveau de l'adresse mail variable et du copier/coller du tableau.

J'ai essayé également avec la formule excel suivant mais il y a trop de paramètres variables donc je ne sais plus trop quoi faire...

=HYPERLINK("mailto:AAAA.BBBB@domaine.com;CCCC.DDDD@domaine.com?cc="&'Envoi Ordre de mission'!B4&"&subject=Demande approval Interimaire", "Send Email")

Merci

Re,

Puisque tu as une ossature de départ ... avec une macro Outlook ... qui fonctionne déjà avec d'autres fichiers ...

Je te propose de joindre cette macro dans ton prochain message avec ton fichier ... afin de ne procéder qu'aux adaptations nécessaires pour ton fichier ...

Re,

Je ne comprend pas trop ce que tu me demandes de joinder...

J'ai déja joint mon fichier dans mon premier message. La macro n'a pas suivie ?

Re,

Juste pour être sur la même longueur d'ondes ....

Dans ton fichier, il existe une macro CDO ...pour envoyer les emails ...

Pour ton info, cette macro est construite pour court-circuiter le logiciel de messagerie ... donc pour ne pas utiliser Outlook ...

Or, tu dis vouloir utiliser Outlook ...

hahaha!!!

Mais je ne savais pas ça moi!!

Moi tout ce que je veux c'est envoyer un mail... après peu importe le moyen...

Effectivement, réflexion faite, il n'est peu être pas utile d'utiliser outlook vu que tout se ferait à partir du fichier Excel....

Je ne sais pas si je t'aide beaucoup là!

Re,

Dans la mesure où ... comme je te l'ai dit ... il s'agit d'un sujet délicat ... qui dépend beaucoup de ta configuration personnelle ...

Peux-tu avoir la gentillesse de me confirmer que ta macro SendMailWithCDO() ... fonctionne en l'état ... sur ton ordinateur ...???

Car, cela ne servira à rien d'effectuer plusieurs adaptations spécifiques à ton fichier ... pour finir par découvrir, à la fin du processus, que cette macro n'est pas opérationnelle ...

Je m'excuse d'avance pour mon incompétence...

Oui la macro fonctionne sur mon ordinateur.

Par contre je l'ai déja modifiée pour essayer de l'adapter à mon fichier...

Tu trouveras en pièce jointe le fichier avec la macro originale (au cas où). J'ai juste retiré les données confidentielles...

Merci


46macro-originale.zip (31.27 Ko)

Re,

Merci pour ta macro originale ...

Dès que j'ai un moment ... je me plongerai dans l'adaptation de ta macro ...

Bonjour,

Ci-joint une proposition CDO ... à tester, et à adapter ...

Il suffit de double-clicker dans la Colonne A sur la ligne désirée pour que les éléments nécessaires à l'email soient préparés ...

30test-poybi.xlsm (94.78 Ko)

Merci pour la macro.

L'envoi de mail ne fonctionne pas mais ça me donne des pistes...

Je vais essayer de faire de l'adapter à nouveau on verra bien!

Merci

Re,

J'ai oublié de te dire que pour te faciliter les tests ... j'ai neutralisé la fonction d'envoi ...

Sur la ligne verte qui indique '.Send il te faut supprimer l'apostrophe devant le point ...pour que l'instruction puisse s'éxécuter ...

Bonjour,

Même en réactivant .send, ça ne fonctionne pas.

Alors depuis hier je bataille sur le fichier et je commence à arriver à quelque chose

J'oublie le copier/coller du tableau dans le mail et j'opte pour une liste de données.

J'ai toutefois besoin de ton aide pour quelques details (macro en pièce jointe):

- J'ai appliqué ton idée de double-clic dans 2 colonnes :

- en colonne O pour lancer la macro "demandeApproval" (mais ça ne marche pas )

- en colonne AH pour lancer la macro "Mission" (et ça marche!)

Peux-tu m'aider pour le code pour que ça fonctionne pour la colonne O?

  • J'arrive à envoyer les mails en mettant mon adresse mail donc la macro fonctionne. Cependant je suis toujours embetée concernant le destinataire variable... Peux-tu jeter un oeil aux commentaires que j'ai fait dans la macro stp?...
  • Le mail que je reçois ressemble à ça (voir pièce jointe Mail) mais je ne comprend pas pourquoi il manque des données. De plus je voudrais savoir si s'était possible de mettre les données fixes en gras comme "Demandeur :" ou "Horaire :"...
  • Pour finir, je ne peux pas mettre la totalité des données que je voudrais dans le mail car j'ai un message d'erreur en écrivant la macro :"too many line continuation"... Je me doute pourquoi vu la macro que j'ai écri mais je ne sais pas comment faire autrement...

Merci encore pour ton aide.

17mail.docx (155.69 Ko)

Bonjour,

Si tu es d'accord ... procédons étape par étape ... ... car .... tu as beaucoup de demandes ...

Avons-nous franchi une ou deux étapes ... avec le fichier joint ...???

Bonjour,

Concrètement ... tu devrais refaire de nouveaux tests ... cependant ...

1. Le double-click devrait fonctionner pour la Colonne O et la Colonne AH ...

2. Le problème du destinataire "variable" devrait aussi être réglé ...

3. Le code pour avoir des champs en gras a été ajouté ...

A mes yeux, il ne resterait donc deux points à finaliser ...

Le fait que certaines données manquent ... il faut individuellement reprendre champ après champ pour tout re-valider ... et,

Ensuite, le message d'erreur ... dont il faudra identifier la source ...

Bonjour,

C'est super!!!!!!

1. Le double-clic est résolu!!!

2. Le problème du destinataire variable est résolu aussi!!!

3. Les champs ne se mettent pas en gras mais j'ai mis montexte en CAPITALE donc ça ira.

4. J'ai résolu le problem des données manquantes du moins pour la macro DemandeApproval

5. En m'attaquant à la seconde macro "Mission" j'ai créé un bug : j'ai voulu copier/coller de l'option explicit de DemandeApproval dans Mission pour que la definition du destinataire variable y soit aussi mais du coup le double-clic de fonctionne plus...


Bon finalement :

  • le double-clic refonctionne
  • le destinatire variable fonctionne pour les 2 macro
  • il n'y a plus de données manquantes
  • les caractères en gras ont été remplacés par des lettres capitals.

Il ne reste qu'une seule chose : le message d'erreur lors de la creation du coprs de mail dans la macro Mission.

C'est parce qu'il y a plus de 25 lignes mais je ne sais pas comment faire autrement...

Merci

Bonjour,

Avant de passer au dernier problème .. Félicitations pour tous les progrès accomplis ...!!!

Concernant le message d'erreur de l'ordre de mission ... il aurait fallu que je puisse répliquer l'erreur ...

Malgré tout, puisqu'ill s'agit d'un problème de nombre de lignes , tu pourrais, dans la construction du corps de ton message,

supprimer, à chaque ligne : & vbCrLf ... dans le but d'avoir deux fois moins de lignes ... à tester

Bonjour,

Suite à tes conseils, je suis parvenue à supprimer le message d'erreur sur le nombre de ligne. Merci!!

Grâce à toi, le fichier est comme je l'espérai mais je me suis aperçue qu'une dernière amelioration pouvait être apportée...

Dans le code fonction email, il y a une message box.

Je voudrais pouvoir rajouter un bouton Cancel pour annuler l'envoi.

J'ai trouver qu'il fallait utilizer vbOKCancel mais je ne suis pas parvenue à l'appliquer...

Peux-tu m'aider encore une fois?

Option Explicit
Sub SendMailWithCDO(ByVal semailTO As String, ByVal semailCC As String, ByVal sSujet As String, ByVal sBody As String)
Dim iMsg As Object
Dim iConf As Object
Dim Flds As Variant
Dim sFrom As String

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

        iConf.Load -1    ' CDO Source Defaults
        Set Flds = iConf.Fields
        With Flds
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
                           = "mail.domaine.com"
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
            .Update
        End With

    With iMsg
        Set .Configuration = iConf
        .to = semailTO
        .CC = semailCC
        .BCC = ""
        If Environ("USERNAME") = "XXXXXX" Then sFrom = """XXXXXXx"" <XXXX@domaine.com>" Else sFrom = "<" & Environ("USERNAME") & "@domaine.com>"
        .From = sFrom
        .Subject = sSujet
        .TextBody = sBody
        MsgBox "Envoi TO " + semailTO + "  CC " + semailCC + " FROM " + sFrom
        .Send
    End With

End Sub

Merci

Rechercher des sujets similaires à "envoi email partir fichier"