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 :

envoyer un fichier par mail à plusieurs destinataires


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut envoyer un fichier par mail à plusieurs destinataires
    Bonjour à tous et toutes,

    Il y a quelques temps, sur ce forum, j'ai récuperé une macro qui permettait d'envoyer automatiquement un fichier par mail.
    Malheureusement, ce programme ne fonctionne pas. J'ai beau retourner le problème dans tous les sens, la macro me presente des d'erreurs d'executions comme par exemple : "erreur d'excution 438 : la propriété ou methode non gerée par cet objet.

    Je precise que le fichier que je souhaiterais envoyer par mail comporte 4 onglets dont celui intitulé "destinataires" qui regroupe la liste des personnes recevant le fichier.
    Je vous le fichier pour que vous aiez une idée.

    Voici la macro :

    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 envoiemail()
     
    Dim MonOutlook As New Outlook.Application
    Dim MonMessage As Outlook.MailItem
    Dim Wbk As Workbook
    Dim ListeDest As Worksheet
    Dim MonFichier As String
     
    Dim i As Long
     
     
    Set Wbk = ThisWorkbook
    ChDir "P:\Commun\Intranet PFC SLM\transport\REMORQUES VRAC\Archives\2009\septembre" 'chemin pour l'enregistrement
    MonFichier = Range("A4").Value & "-" & Format([A2].Value, "dddd-mm-yyyy")
     
    Wbk.SaveCopyAs Filename:=MonFichier
     
    Set ListeDest = Wbk.Worksheet("destinataire")
    Set MonMessage = MonOutlook.CreateItem(olMailItem)
     
    With MonMessage
    .Subject = "Fiche liaisons depart"
    .Body = "Cordialement "
    .BodyFormat = olFormatHTML
     
    For i = 2 To ListeDest.Range("A65536").End(xlUp).Row
    .Recipients.Add (ListeDest.Range("A" & i).Value)
    Next i
     
    .Attachments.Add Wbk.Path & "P:\Commun\Intranet PFC SLM\transport\REMORQUES VRAC\Archives\2009\septembre" & Wbk.Name
     
     
    .Attachements.Add ActiveWorkbook.Path & "P:\Commun\Intranet PFC SLM\transport\REMORQUES VRAC\Archives\2009\septembre" & ActiveWorkbook.Name
    .Send
    End With
     
    MonOutlook.Quit
     
    Set MonOutlook = Nothing
    Set MonMessage = Nothing
    Set ListeDest = Nothing
    Set Wbk = Nothing
     
    End Sub

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 226
    Points : 225
    Points
    225
    Par défaut
    Hello,

    Inspire-toi de ce code
    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
    '**********************************************************
    'Côcher la référence Microsoft Outlook 11.0 Object Library
    '**********************************************************
    Sub Envoi_mail()
     
        Dim Ol As New Outlook.Application
        Dim Olmail As MailItem
        Dim CurrFile As String
     
        Set Ol = New Outlook.Application
        Set Olmail = Ol.CreateItem(olMailItem)
     
        PathName = ThisWorkbook.FullName 'Pour joindre ce classeur.
     
        'Ou pour joindre un autre classeur, chemin à modifier.
        'PathName = "C:\Documents and Settings\" & Environ("UserName") & "\Mes documents\Chaîne de caractère.xls"
     
        With Olmail
            .To = "xxxxxxxx@xxxxx.xx" ' A...
            .CC = "xxxx@xxxx.xx;xxxxxxx@xxxxxxx.xx" ' Cc... (Notes qu'il y a deux destinataires pour la copie, et tu peux en rajouter autant que tu veux mais en y séparant du point virgule ";"
            .Subject = "Coucou"
            .Body = "Voici le fichier..."
            .Attachments.Add PathName
            .Display '"Display" pour afficher la fenêtre Outlook....  ou "Send" pour envoyer le mail directement.
        End With
     
    End Sub
    Je mets ce code, car j'ai brièvement essayé le tien, mais il bug sur la boucle pour les destinataires, apparemment c'est ça qui ne joue pas !

    Pour que tu voyes comment faire pour plusieurs destinataires.

    Tu peux aussi faire comme ceci si tu veux avec ta liste des destanataires en colonne B..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        With Olmail
            .To = [B1] ' A...
            .CC = [B2] & ";" & [B3] ' Etc...
            .Subject = "Coucou"
            .Body = "Voici le fichier..."
            .Attachments.Add PathName
            .Display 
        End With
    Bonne nuit, Antonio.

  3. #3
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    merci de m'avoir repondu Antoniom.
    Je verifie et te tien au courant ....

  4. #4
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    Aprés essai, ta macro fonctionne a merveille.
    Merci Antoniom;
    Je vais encore te poser une question; Lorsque OUTLOOK s'ouvre, il me demande mon mot de passe. ne pourrait on inserer dans la macro, le mot de passe pour OUTLOOK s'ouvre directement sans que je note le mot de passe.
    Merci

Discussions similaires

  1. Envoyer un fichier par mail
    Par kmaniche dans le forum C++Builder
    Réponses: 21
    Dernier message: 15/11/2009, 20h27
  2. envoyer un fichier par mail
    Par alsimbad dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/03/2008, 14h31
  3. Envoyer un fichier par mail sans Outlook
    Par kiki29 dans le forum Contribuez
    Réponses: 2
    Dernier message: 03/09/2007, 01h11
  4. [Mail] Envoyer un fichier par mail
    Par Oberown dans le forum Langage
    Réponses: 3
    Dernier message: 24/10/2005, 15h55

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