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 :

Envoi de plusieurs fichiers par mail via une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut Envoi de plusieurs fichiers par mail via une macro
    Bonjour à tous,

    J'ai trouvé sur le net la macro ci-dessous qui permet d'envoyer plusieurs fichiers excel à plusieurs destinataires :

    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
    38
    39
    40
    41
    42
    43
    44
    Sub envoimail()
    'test sur plusieurs agences
     
    Dim Outlook As Object
    Dim Mail As Object
    Dim Objet As String
    Dim Corps As String
    Dim fichiers, dest As Variant
    Dim i As Integer
    Dim path As String
     
    path = "C:\Mes Documents\FD\"
    fichiers = Array("PARIS.xls", "BORDEAUX.xls", "NANTES.xls", "MARSEILLE.xls" )
    dest = Array("Xxxx@ddsf.com", "yyyy@ddsf.com", "zzzz@ddsf.com", "wwww@ddsf.com" )
     
    Objet = "Rapport d'appels du mois d'"
    'Exemple de corps de texte avec texte et sauts de ligne
    Corps = "Bonjour, " & _
    vbCrLf & vbCrLf & _
    "Ci-joint le fichiers des appels du mois passé pour votre agence." & _
    vbCrLf & vbCrLf & _
    "Nous restons bien entendu à votre disposition pour tout renseignement complémentaire." & _
    vbCrLf & vbCrLf & _
    "Cordialement." & _
    vbCrLf & vbCrLf
     
     
    Set Outlook = CreateObject("Outlook.Application" )
     
    For i = LBound(fichiers) To UBound(fichiers)
        Set Mail = Outlook.CreateItem(0)
     
        With Mail
            .To = dest(i)
            .CC = ""
            .BCC = ""
            .Subject = Objet
            .Body = Corps
            .Attachments.Add (path & fichiers(i))
            .Display
        End With
    Next i
     
    End Sub
    Mais lorsque je l'utilise, cela bug à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Attachments.Add (path & fichiers(i))
    Et pourtant j'ai très bien nommé le chemin.

    Du coup je ne comprends pas d'où vient le problème.

    Est ce que quelqu'un peut m'aider svp ?

    Merci par avance

    Cordialement

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

    qu'est ce qui te fait dire qu'il y as un bug ? un message ?

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonjour Bbil,

    Merci pour ton retour,

    Oui au moment de lancer la macro, elle s'arrête. Et quand je vais voir où ça bloque, ben le trait jaune se met à cet emplacement alors que j'ai bien nommé le chemin ....

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bbil Voir le message
    un message ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ta question est ambigu, tu veux envoyer plusieurs classeurs a plusieurs destinataires ,'ou comme dans la macros un classeur par par destinataire, ou un classeur pour plusieurs destinataires?

    http://www.developpez.net/forums/d14...t/#post7968025

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Bbil : un message lorsque je lance la macro

    Ddurupt: ce que je souhaite via cette macro, c'est pouvoir envoyer plusieurs classeurs à plusieurs destinataires en même temps.

    Merci par avance pour votre aide

    Cordialement

  7. #7
    Invité
    Invité(e)
    Par défaut
    dans le lien que je t'es fourni c'est possible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mail "Sujet", "Message", "Destinataire1@gmail.com;Destinataire2@gmail.com;Destinataire3@gmail.com", Pj:="C:\MyTest\Classeur1.xlsm;C:\MyTest\Classeur2.xlsm;C:\MyTest\Classeur3.xlsm"
    les trois destinataire recevrons les trois classeur en un fois!

  8. #8
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Merci beaucoup Ddurupt,

    Je vais tester cette macro

    Cordialement

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Mathsdeb Voir le message
    ....
    Bbil : un message lorsque je lance la macro
    ...
    Ben alors ? il dit quoi ce message ?

  10. #10
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonsoir,

    Bbil, faudrait que je relance la macro pour te dire exactement ce que dit le message.

    Ddurupt,

    Ta macro marche très très bien, par contre lorsque je lance la macro dans le corps du message tout s'affiche en une seule ligne comme ci-dessous :

    "Bonjour Ci-joint le fichiers des appels du mois passé pour votre agence. Nous restons bien entendu à votre disposition pour tout renseignement complémentaire. Cordialement

    J'ai tenté d'introduire des comme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Mail "Sujet", ""Bonjour, " & _
    vbCrLf & vbCrLf & _
    "Ci-joint le fichiers des appels du mois passé pour votre agence." & _
    vbCrLf & vbCrLf & _
    "Nous restons bien entendu à votre disposition pour tout renseignement complémentaire." & _
    vbCrLf & vbCrLf & _
    "Cordialement." & _
    vbCrLf & vbCrLf
    ", "Destinataire1@gmail.com;Destinataire2@gmail.com;Destinataire3@gmail.com", Pj:="C:\MyTest\Classeur1.xlsm;C:\MyTest\Classeur2.xlsm;C:\MyTest\Classeur3.xlsm"
    Mais le résultat reste le même : le corps du message est toujours en une seule ligne

    Merci pour votre retour

    Cordialement

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonsoir, et oui on est en html il convient donc de placer de balise "<br>" à la place du vbcrlf!

  12. #12
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Merci Ddurupt pour ton retour rapide.

    Comme ci-dessous c'est correct?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Mail "Sujet", ""Bonjour, " & _
    <br>  & <br>   & _
    "Ci-joint le fichiers des appels du mois passé pour votre agence." & _
    <br>  & <br>  & _
    "Nous restons bien entendu à votre disposition pour tout renseignement complémentaire." & _
    <br>   & <br>   & _
    "Cordialement." & _
    <br>   & <br>  
    ", "Destinataire1@gmail.com;Destinataire2@gmail.com;Destinataire3@gmail.com", Pj:="C:\MyTest\Classeur1.xlsm;C:\MyTest\Classeur2.xlsm;C:\MyTest\Classeur3.xlsm"
    Merci encore pour ton retour

    Cordialement

  13. #13
    Invité
    Invité(e)
    Par défaut
    non les balise font parties tu texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mail "Sujet", "Bonjour,<br><br>"   & _
    si tu veux avoir un aperçue de l'intérêt de l'envoi en HTML dans les mail plutôt que texte!

    tu peux même utiliser l'éditeur dans le classeur pour rédiger ton texte et récupérer les script HTML pour le coller dans ta macro!


    http://www.developpez.net/forums/d15...s/#post8419125
    Fichiers attachés Fichiers attachés

  14. #14
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonjour Ddurupt,

    Merci beaucoup pour ton retour et désolée pour le grand retard au niveau de ma réponse.

    C'est super le fchier excel que tu as envoyé mais je ne sais pas comment m'en servir.

    Oui dois-je écrire le texte pour que la macro me le retranscrive en mode HTML stp? Dans l'encadré qui se trouve à gauche du bouton "GO"

    Merci pour ton retour

    Cordialement

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tu écris ton texte dans le wisiwig, tu click sur envoi Html et te récupère le texte dans. La cellule A1. C'est ce texte qui vas dans le bodyhtml de cdo.

  16. #16
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonjour Ddurupt,

    Tout simplement excellent et super pratique.

    Maintenant, j'ai un autre souci.

    Le fichier que j'envoie comporte des type de complexité. Je remplis pour cela un tableau excel et je coche en fonction du fichier envoyé le type de complexité.

    Je voudrai lorsque j'envoie le fichier excel via la macro avec le corps du message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Mail "Sujet", <P>Bonjour,</P>
     
    <P>Veuillez trouvez ci-joint le fichier demande correspondant au types coches ci-dessous :</P>
    "
    etc......

    qu'apparaisse en HTML le tableau ci-dessous lorsque la personne ouvre le mail :

    Nom : tableau.JPG
Affichages : 1621
Taille : 16,8 Ko

    Sais tu si c'est possible stp?

    Merci pour ton retour

    Cordialement

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    comme tu l'as vue dans le lien que je t'es donné, l’idée est , avec Patrick, un gestion de type Word pour envoyer des mail!

    nous n'en somme pas à gérer la couleur et l'insertion de tableaux Excel!

    mais pour un simple envoi noir et blanc, c'est déjà top. en revanche pour préparer un texte standard, en faisant un copier collé de Word on peut géré également la couleur.

    pour insérer un tableau, il faut faire preuve d'ingéniosité! nous allons placer une "[variable Texte]" dans le wiwiwig et la replace par la suite par notre tableau!

    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
    Sub Test()
    HTML = "<Html><Head></Head><Body>[InertTableau]</Body></Html>"
     
    HTML = Replace(HTML, "[InertTableau]", RetournTable(ActiveSheet.Range("A1").CurrentRegion))
    Debug.Print HTML
    End Sub
    Function RetournTable(R As Range) As String
    Dim L As Integer, C As Integer, Styl As String
    Styl = " style='background-color: Silver' "
    RetournTable = "<Div align='center'><Table  border='1'  cellspacing ='0' width='60%'>" & vbCrLf
    For L = 1 To R.Rows.Count
        RetournTable = RetournTable & "<tr " & Styl & " > " & vbCrLf
     
        For C = 1 To R.Columns.Count
             RetournTable = RetournTable & "<td>" & R(L, C).Value & "</td>" & vbCrLf
        Next
         RetournTable = RetournTable & "</tr>" & vbCrLf
         Styl = ""
    Next
    RetournTable = RetournTable & "</Table></div>" & vbCrLf
    End Function

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonsoir J ai pourtant donné un module dans les contrib pour convertir un table xls(excel) en html et divers exemples reprennent le principe avec cdo ou Outlook
    ne simple recherche avec mon identifiant ou CDO OU TABLE ET CDO OU EXEL TO HTML T AURAIS AMMENE AU MEME ENDROIT

    ENFIN ON PEUT PAS TOUT FAIRE NON PLUS

    moi ce que j'en dis hein!!:!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonjour Ddurupt et patricktoulon

    Merci pour votre retour.

    Patricktoulon, je jetterai un œil sur le nom du topic que tu as cité.

    Ddurupt, je ne sais pas où coller la macro que tu m'as donné ?

    Je ne suis pas une pro en la matière.

    Est-ce après le code ci-dessous?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Mail "Sujet", <P>Bonjour,</P>
     
    <P>Veuillez trouvez ci-joint le fichier demande correspondant au types coches ci-dessous :</P>
    "
    Merci pour votre retour

    Cordialement

  20. #20
    Invité
    Invité(e)
    Par défaut
    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
     
    Sub Test()
    HTML ="<P>Bonjour,</P><P>Veuillez trouvez ci-joint le fichier demande correspondant au types coches ci dessous :</P>[InertTableau]"
    HTML = Replace(HTML, "[InertTableau]", RetournTable(ActiveSheet.Range("A1").CurrentRegion))
    Mail "Sujet",  HTML
    End sub
    Function RetournTable(R As Range) As String
    Dim L As Integer, C As Integer, Styl As String
    Styl = " style='background-color: Silver' "
    RetournTable = "<Div align='center'><Table  border='1'  cellspacing ='0' width='60%'>" & vbCrLf
    For L = 1 To R.Rows.Count
        RetournTable = RetournTable & "<tr " & Styl & " > " & vbCrLf
     
        For C = 1 To R.Columns.Count
             RetournTable = RetournTable & "<td>" & R(L, C).Value & "</td>" & vbCrLf
        Next
         RetournTable = RetournTable & "</tr>" & vbCrLf
         Styl = ""
    Next
    RetournTable = RetournTable & "</Table></div>" & vbCrLf
    End Function

Discussions similaires

  1. envoi automatique de fichier par mail
    Par ellewided dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/08/2009, 18h27
  2. Réponses: 5
    Dernier message: 24/07/2009, 22h19
  3. Envoi de plusieurs fichiers par émail !
    Par cincap dans le forum Débuter
    Réponses: 9
    Dernier message: 11/05/2009, 18h33
  4. Script d'envoie d'un fichier par mail
    Par cellendhyll dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 29/07/2007, 16h46

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