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 mail via Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Par défaut Envoi de mail via Excel
    Bonjour,

    Je cherche à piloter l'envoi de mail automatique depuis Excel. Pour le moment, je dispose de Thunderbird mais dans quelque mois nous allons passer à Outlook + OWA. Dans l'idéal, j'aurai aimer ne pas avoir à refaire dans quelque mois ce que j'ai à faire aujourd'hui. Pour le moment je galère à réaliser ce dont j'ai besoin et ne trouve pas de solution adéquate. J'ai trouvé plusieurs possibilités :

    1ère possibilité:


    en utilisant sendmail (mais le problème c'est qu'on ne peut pas utiliser de corps de message)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub EnvoiMail()
      ActiveWorkbook.SendMail Recipients:="titi@toto.com", _
                              Subject:="Test envoi classeur", _
                              ReturnReceipt:=True
     
    End Sub
    2ème possibilité :

    CDO mais je ne peux pas utiliser cette solution dans mon entreprise

    3ème possibilité :

    J'ai trouvé le code suivant mais il n'envoi pas le message directement. Il ouvre à chaque fois Thunderbird et j'ai environ 100 mails à envoyer à chaque fois.

    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
    Private Sub Bouton1_Cliquer()
    Dim destinataire, sujet, fichierjoint As String
    destinataire = "titi@toto.com,tata@toto.com"
    sujet = "Salut!"
     
    Body = "Comment ca va ?"
    fichierjoint = "C:\caisslog.txt"
     
    strcommand = "C:\Program Files\Mozilla Thunderbird\thunderbird"
    strcommand = strcommand & " -compose " & "to='" & destinataire & "'"
    strcommand = strcommand & "," & "subject=" & sujet & ","
    strcommand = strcommand & "body=" & Body
    strcommand = strcommand & "," & "attachment=file:///" & fichierjoint
    MsgBox strcommand
     
    Call Shell(strcommand, vbNormalFocus)
     
    End Sub
    4ème possibilité :

    Il semble exister des solutions spécifiques à Outlook mais nous n'utilisons pas encore cette solution.


    Connaitriez-vous une solution intéressante ?

    (J'ai besoin d'une solution qui me permette d'avoir un corps de message de quelques lignes. Je souhaiterai que le message s'envoi directement. Les destinataires et les fichiers à envoyer par mail peuvent être enregistrés dans un classeur Excel)

    Merci beaucoup pour l'aide que vous pourrez m'apporter.

  2. #2
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour Lumpys,
    Regardes ceci
    http://stephaneey.developpez.com/tut...php/phpmailer/
    Sinon voici un code développé par un membre éminent, Patrick Toulon

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Option Explicit
    Public ctrl As String    'variable qui va servir a enregistrer le nom du control sur la quelle la souris passe
    Public bouton() As New EFFET_waow    'initialisation de la classe
    Public ctrls As Variant    'variable qui va servir a memoriser tout les bouton
    Public maform As Object    'variable qui va servir a memoriser l'userform
    Public propriétés As Variant   'variable de type tableau pour manipuler les propriete avec le tag renseigne parles propriétés
    Public fois As Boolean
    '****************************************************
    '**Private Sub UserForm_Activate()                  *
    '** memo Me, vbRed, True, True, vbBlack, True, True *
    '**End Sub                                          *
    '****************************************************
     
     
     
     
    Sub memo(uf As Object, couleurboutonsurvolé As Variant, effetloupe As Boolean, text_en_gras As Boolean, _
             couleur_texte_bouton_survolé As Variant, grossissement_du_texte As Boolean, mettre_le_texte_en_majuscule As Boolean, en_italic As Boolean)
     
        If fois = False Then
     
        Set maform = uf        'dorénavant maform designera l'userform dans tout le classeur
        Dim e As Long
        'on boucle sur tout les controls dans l'userform
        For Each ctrls In uf.Controls
            'on teste si le type de control est un bouton
            If TypeName(ctrls) = "CommandButton" Then
                'on va memoriser toutes les propriétés de depart  des boutons ainsi que les effet directement dans leurs tags(nouveau principe!!!!)
    ctrls.Tag = ctrls.BackColor & ":" & ctrls.ForeColor & ":" & ctrls.Left & ":" & ctrls.Width & ":" & ctrls.Top & ":" & _
    ctrls.Height & ":" & couleurboutonsurvolé & ":" & effetloupe & ":" & text_en_gras & ":" & couleur_texte_bouton_survolé _
    & ":" & grossissement_du_texte & ":" & mettre_le_texte_en_majuscule & ":" & ctrls.Font.Size & ":" & ctrls.Caption & ":" & en_italic
     
                e = e + 1    'on incremente la variablee
                'on regroupe tout les bouton dans la classe
                ReDim Preserve bouton(1 To e)
                Set bouton(e).GroupeBouton = ctrls
            End If
        Next
    fois = True
    End If
    End Sub
    Sub remet_normal()
     
      If ctrl <> "" Then
     
        With maform.Controls(ctrl)
            'on decoupe la chaine de caractere que constitu le tag pour separer chaques propriétés
            propriétés = Split(.Tag, ":")
            .BackColor = propriétés(0)
            .ForeColor = propriétés(1)
            .Caption = propriétés(13)
            .FontBold = False
            .Font.Size = propriétés(12)
            .Font.Italic = False
            If propriétés(7) = True Then
                .Width = propriétés(3)
                .Left = propriétés(2)
                .Height = Val(propriétés(5))
                .Top = Val(propriétés(4))
            End If
        End With
    End If
    End Sub
    'fonction testant le texte de la caption si elle elle est en majuscule ou non
    Public Function IsUcase(ByVal Str As String) As Boolean
    IsUcase = InStr(1, UCase(Str), Str, vbBinaryCompare)
    End Function
    tout cela pourra t'aiguiller
    Eric
    Voici le fichier aimablement mis à disposition par Patrick

    mailer envoi mail depuis n'importe quel provider.xls
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bonjour
    CDO mais je ne peux pas utiliser cette solution dans mon entreprise
    a bon et pourquoi?????
    la boite mail émetteur ne serait elle pas une "gmail "par hasard
    dans ce cas la cdo marche aussi

    rdurupt a livré un bel exemple qui a l'inverse du mien qui est full provider lui est coder pour gmail avec les authentification et tout le toutim

    il suffit de chercher cdo et pseudo rdurupt

    non seulement cdo est livré dans windows et même dans office

    eric
    elle est vielle cette version mais toujours d'actualité mais dans diverses discutions j'ai livré plusieurs fois le full CDO avec image dans corps message et tout le toutim

    bien que dans pas longtemps je vais en livré un nouveau avec wysiwyg

    je sui hésitant sur les meilleurs compromis entre le trop et le pas assez

    le wysiwyg de mon prochain maileur sera une version de mon wysiwyg épuré et simplifié (le strict nécessaire)
    il y aura des (images ,pdf,video )dans corps de messages
    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

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Par défaut
    Merci pour ces infos. Malheureusement, je ne peux pas utiliser d'utilitaire ni la bibliothèque CDO comme dans la 2nde solution (la bibliothèque n'est pas installée et le service informatique refuse de l'installer et il est impossible pour d'autres personnes d'installer quoique ce soit).

    J'ai trouvé 1 solution intéressante sur un autre site mais j'ai toujours le même problème : le message ne s'envoi pas directement cela ouvre simplement Thunderbird et il faut 1 intervention de l'utilisateur pour l'envoi. Il s'agit peut-être d'un paramétrage possible dans cette solution mais je ne vois pas où ni comment.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    Merci pour ces infos. Malheureusement, je ne peux pas utiliser d'utilitaire ni la bibliothèque CDO
    je vais le dire doucement encore une fois

    C...D...O... EST...INTALLé... EN... NATIF...DANS.....WINDOW

    LA CREATION DE L'OBJECT EN LATE BINDING DEVRAIT RESOUDRE TOUT TES SOUCIS

    QUAND AU AUTRE SOULTIONS Y COMPRIS MAILENVELLOPE NE FONT QU 'OUVRIR LES APPLICATION ( avec le mail prêt a être envoyé)

    apres on peu parler de pilotage d'application mais je serais surpris que ton entreprise ai virer CDO pour te laisser manipuler une APP quelconque

    A mediter
    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

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 246
    Par défaut
    hello,
    lumpys a dit :
    Malheureusement, je ne peux pas utiliser d'utilitaire ni la bibliothèque CDO comme dans la 2nde solution (la bibliothèque n'est pas installée et le service informatique refuse de l'installer et il est impossible pour d'autres personnes d'installer quoique ce soit).
    Regarde des les Références de l'éditeur VBA si tu as la ligne :
    Microsoft CDO for windows 2000 Library
    Ami calmant, J.P

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    purée je viens de regarder mon mailer qu'Eric a déterré quand je regarde les codes j'ai honte

    purée c'est moi qué fé ca!!!!

    bon je vais lui faire un petit lifting et une cure de DHEA je crois que c'a s'impose

    je vais peut être même lui intégrer mon wysiwyg

    Eric tu trouvais que j'en avais pas assez 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

Discussions similaires

  1. Envoi de mail via Excel à partir de Notes
    Par neo79 dans le forum Excel
    Réponses: 0
    Dernier message: 26/11/2015, 21h21
  2. envoi de mail via Lotus Notes 6 a partir d'excel
    Par gilbisti dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/06/2007, 13h41
  3. Envoi de mail depuis Excel 2003 via Outlook 2003
    Par SlySylvain dans le forum Excel
    Réponses: 2
    Dernier message: 19/04/2007, 09h01
  4. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 18h51

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