IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro pour envoie par email avec piece jointe et liste diffusion


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Mai 2020
    Messages : 12
    Par défaut Macro pour envoie par email avec piece jointe et liste diffusion
    Bonjour,
    Je me permets de venir vers vous car je suis débutant sur VBA. D'après un document excel, j'ai crée une macro qui vient envoyer un document excel en pièce jointe d'un email au destinataire. J'utilise la fonction ActiveWorkbook.SendMail recipients mais elle a ces limites.
    Je souhaiterai un code assez simple car sur les forums je trouve du code très long et qui ne fonctionnent pas pour moi.
    Pouvez vous m'aiguiller via un exemple sur le code à utiliser?
    en vous remerciant et vous souhaitant un bon weekend.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Mai 2020
    Messages : 12
    Par défaut
    Bonjour je te remercie pour ton message mais la fonction me parait un peu compliqué.
    ci après mon code sans deux points pour lesquelles j'ai le besoin à savoir l'envoi à plusieurs destinataires selon une liste et le rajout d'un corps de message.
    Merci de votre aide.

    bon après midi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Sub Envoyer_par_email_test()
    'définition des variables
    Dim MaPieceJointe As String
     
     
    Feuil1.Activate
    Feuil1.Visible = xlSheetVisible
    Feuil2.Visible = xlSheetVeryHidden
    Feuil3.Visible = xlSheetVeryHidden
    Feuil4.Visible = xlSheetVeryHidden
    Feuil5.Visible = xlSheetVeryHidden
    Feuil6.Visible = xlSheetVeryHidden
     
    a = MsgBox("Voulez vous valider l'audit et l'envoyer par email (attention à la relecture du document) et quitter? ", vbYesNo)
    If a = vbNo Then
    Feuil1.Activate
    Feuil2.Activate
    Feuil3.Activate
    Feuil4.Activate
    Feuil5.Activate
    Feuil6.Activate
    Feuil2.Visible = xlSheetVisible
    Feuil3.Visible = xlSheetVisible
    Feuil4.Visible = xlSheetVisible
    Feuil5.Visible = xlSheetVisible
    Feuil6.Visible = xlSheetVisible
    Feuil1.Visible = xlSheetVisible
    End If
     
    MaPieceJointe = "c:\test\" & "test_n" & Feuil1.Cells(2, 25) & "__" & Feuil1.Cells(7, 24) & ".xls"
    Feuil1.SaveAs MaPieceJointe
     
    ActiveWorkbook.SendMail recipients:="toto@toto.com", _
    subject:="test_n_" & Feuil1.Cells(2, 25) & "__" & Feuil1.Cells(7, 24), _
    ReturnReceipt:=True
    End Sub

  4. #4
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Ta demande n'est pas si simple qu'il n'y paraît.

    La méthode d'envois de mail que tu utilises n'est pas la méthode à utiliser pour ton problème.

    Pour envoyer un mail par Outlook, la méthode la plus facilement exploitable est d'utiliser un object Outlook.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Sub Mail_Outlook()
     
        Dim OutApp As Object
        Dim OutMail As Object
        Dim strbody As String
     
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
     
        strbody = "Bonjour" & vbNewLine & _
                  "Ligne 1" & vbNewLine & _
                  "Ligne2" & vbNewLine & _
                  "Ligne3"
     
        With OutMail
            .To = "mfoxy@dvp.com"
            .CC = ""
            .BCC = ""
            .Subject = "Ici le sujet"
            .Body = strbody ' contient le corps du texte
            '.Attachments.Add ("C:\test.txt")  'ici on ajoute le fichier joint
            .Send   'or use .Display' send envois direct, display ouvre le mail sans envois
        End With
     
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub
    Pour envoyer à une liste de personne différentes, le mieux serait de créer une table ( listObject) contenant nom, prénom, mail des différentes personnes et de boucler sur chacuns des contacts pour envoyer le mail.

    C'est ce que fait, la macro de Marcel en mieux car plus élaboré.

    Bat

  5. #5
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Mai 2020
    Messages : 12
    Par défaut
    Merci!!!! cela fonctionne

Discussions similaires

  1. Envoi d' email avec piece jointe executable
    Par Cybercope dans le forum VBScript
    Réponses: 5
    Dernier message: 07/08/2014, 10h41
  2. [WD-2003] Macro pour envoi par email
    Par relenaheero dans le forum VBA Word
    Réponses: 11
    Dernier message: 22/11/2010, 20h42
  3. Envoie d'email avec piece jointe
    Par hid_dev dans le forum ASP.NET
    Réponses: 4
    Dernier message: 12/05/2010, 01h33
  4. Envoi email avec piece jointe
    Par Dos dans le forum MFC
    Réponses: 3
    Dernier message: 07/04/2010, 16h25
  5. erreur envoi email avec piece jointe.
    Par pinoccio dans le forum Outlook Express / Windows Mail
    Réponses: 4
    Dernier message: 06/09/2009, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo