Envoi Email

yorrickb

XLDnaute Nouveau
Bonjour,

Malgré plusieurs recherche sur le forum et google je n'arrive pas à modifier la macro suivante, je cherche à envoyé
la feuille active par mail à une liste de destinataire. Sachant qu'elle fonctionne pour l'envoi d'un seul utilisateur.

L'aide de vba me dit :

Recipients
Obligatoire
Variante
Spécifie le nom du destinataire sous la forme de texte ou, s'il y a plusieurs destinataires, d'un tableau de chaînes de caractères. Vous devez spécifier au moins un destinataire et tous les autres sont ajoutés dans la liste « À ».

Et je ne comprend pas ce que je doit faire concernant la partie "s'il y a plusieurs destinataires, d'un tableau de chaînes de caractères. "

Sub EnvoiFeuil()
Dim var
Dateval = ActiveSheet.Range("C175").Value

Destinataire = "xxxxx@xxx.fr"
Object = "HILAIRE - Suivi journalier au " & Dateval
Body = "Veuillez trouver ci-joint le suivi journalier au " & Dateval
ActiveSheet.Copy
With ActiveWorkbook
.SendMail Recipients:=Destinataire, Subject:=Object
Application.DisplayAlerts = False
.Close
Application.DisplayAlerts = True
End With
End Sub

Merci d'avance de votre aide.
 

karakoman1

XLDnaute Occasionnel
Re : Envoi Email

Bonjour à tous,
J'ai vu de la lumiere allumée sur ce fil et j'en profite pour m'infiltrer et poser une question.
Après mainte recherche sur l'envoi de mail avec une macro, je viens de tomber sur le code ci-dessus qui fonctionne "presque".
En fait, le mail part bien avec son fichier joint, mais le corp du message lui n'est pas envoyé.
Une idée pour éclairer ma lanterne?
Merci d'avance pour mon cerveau qui commence à entrer en ébullition
 

karakoman1

XLDnaute Occasionnel
Re : Envoi Email

Bonjour le forum un petit up pour relancer la discution
Petit rappel, J'ai utilisé le fichier du post #2.
Le mail part bien avec son fichier joint, mais le corp du message "Veuillez trouver ci-joint le suivi journalier au " & Dateval
lui n'est pas envoyé.
Je coince!!
 

Gdal

XLDnaute Nouveau
Re : Envoi Email

Bonjour,

Je ne pense pas que l'on puisse spécifier un message à l'envoi du mail. Cf. Aide
Workbook.SendMail, méthode
Cette méthode envoie le classeur en utilisant le système de messagerie installé.

Syntaxe
expression.SendMail(Destinataires, Objet, AccuséRéception)

expression Variable qui représente un objet Workbook.

Paramètres

Destinataires
Obligatoire Variante Spécifie le nom du destinataire sous la forme de texte ou, s'il y a plusieurs destinataires, d'un tableau de chaînes de caractères. Vous devez spécifier au moins un destinataire et tous les autres sont ajoutés dans la liste « À ».
Objet
Facultatif Variante Spécifie l'objet sujet du message. Si vous ne spécifiez pas cet argument, le nom du document est utilisé.
AccuséRéception
Facultatif Variante Affectez à cet argument la valeur True pour exiger un accusé de réception et la valeur False dans le cas contraire. La valeur par défaut est False.

Voici une fonction pour envoyer un mail:
Code:
' DATE:     23/10/2010, 11h42
' AUTEUR:   Simplifi
' SOURCE:   http://www.developpez.net/forums/d990658/logiciels/microsoft-office/access/vba-access/envoyer-mails-cdo/
Function fctEnvoiMail(strExpediteur As String, strDestinataires As String, _
                             strSujet As String, strMessage As String, strPiecesJointes As String, _
                             strSmtpAuthenticate As String, strSendUsername As String, strSendPassword As String, strSendUsing As String, _
                             strSmtpServer As String, strSmtpServerPort As String)
'
' ENVOYER UN MAIL
'
' strExpediteur [STRING] = Adresse mail de l'expéditeur
' strDestinateurs [STRING] = Adresses mails des destinataires (espacées par une virgule, à vérifier!)
' strSujet [STRING] = Sujet du mail
' strMessage [STRING] = Message du mail
' strPiecesJointes [STRING] = Chemins des pièces jointes (espacées par une virgule, à vérifier!)
' strSmtpAuthenticate [STRING] = 0 pas d'authentification, 1 authentification demandée
' strSendUsername [STRING] = Login du serveur
' strSendPassword [STRING] = Mot de passe
' strSendUsing [STRING] = Type de serveur. Ex.: 2 = smtp
' strSmtpServer [STRING] = Adresse du serveur. Ex.: free.smtp.fr
' strSmtpServerPort [STRING] = N° du port. Ex.: 25
'
' RETOUR : pas de retour
'

    ' Gestion des erreurs
    On Error GoTo ErrorHandler
    
    Const cdoBasic = 1
    With CreateObject("CDO.Message")
        If err Then
            MsgBox "Problème de CDO non installé sur le serveur WEB": Exit Function
        Else
            .From = strExpediteur       'Expéditeur
            .To = strDestinataires      'Destinataire
            .BCC = strExpediteur        'Copie
            .Subject = strSujet         'Sujet
            .TextBody = strMessage      'Message
            .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = strSmtpAuthenticate
            .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = strSendUsername
            .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strSendPassword
            .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = strSendUsing
            .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmtpServer
            .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = strSmtpServerPort
            .Configuration.Fields.Update
            .AddAttachment strPiecesJointes
            .Send
            If err Then
                If i = 1 Then MsgBox err.Number & "***" & "Le message n'a pas pu être expédié."
            Else
                MsgBox "Message envoyé." & _
                        Chr(10) & _
                        "Une copie devrait vous parvenir dans quelques instants.", _
                        vbInformation, _
                        "Message envoyé"
            End If
        End If
        On Error GoTo 0
    End With

' Gestion des erreurs
ErrorHandler:
    
    If err.Number <> 0 Then
        ' Message
        MsgBox "Oupss !" & _
                Chr(10) & _
                "Erreur N°: " & err.Number & _
                Chr(10) & _
                "Description: " & err.Description, vbCritical, err.Number
    End If

End Function

Pour l'utiliser:

Code:
'> Envoyer mail
    Call fctEnvoiMail(strExpediteur, strDestinataire, strSujet, strMessage, strPJAEnvoyer, _
                      strSmtpAuthenticate, strSendUsername, strSendPassword, strSendUsing, strSmtpServer, strSmtpServerPort)

Gdal
 

karakoman1

XLDnaute Occasionnel
Re : Envoi Email

Merci Gdal pour ta réponse
Je vais me pencher sur ce code un peu plus tard.
Je ne suis pas "spécialiste" du VBA et il faut que je puisse un peu comprendre son fonctionnement. Et pour l'instant... pas trop le temps. ;-)
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 947
Membres
103 681
dernier inscrit
Lafite84