Outlook

Résolu
Bonjour,

je souhaite envoyé un e-mail automatique depuis excel. Ceci en langage VBA.

Voici le code que j'ai mais qui ne fonctionne pas pour l'instant (presque bon quand même):

Dim Monoutlook As Object
Dim Monmessage As Object

Set Monoutlook = CreateObject("Outlook.Application")
Set Monmessage = Monoutlook.CreateItem(0)

Monmessage.to = "exemple@exemple.com"
Monmessage.Subject = "test"
Monmessage.Body = "message"

Set Monoutlook = Nothing


Problèmes:

1/ il doit y avoir un soucis dans le code existant puisqu'excel m'indique une erreur sur l'avant dernière ligne.

2/ A la ligne Monmessage.to ----> j'aimerais la syntaxe pour renvoyer à la valeur d'une cellule en "Feuil2 cellule B2"

3/ A la ligne Monmessage.body ----> j'aimerais la syntaxe pour y mettre "une copie" du tableau (A1:C5) de la Feuil1

Merci d'avance pour votre aide.

Megatronnbjja

3 réponses

  1. Bonjour,

    Souvenir d'une autre vie, le truc le plus simple est d'utiliser la procédure Sendmail :
    http://en.kioskea.net/faq/7780-excel-a-macro-to-send-mail-with-attachments

    http://www.excel-downloads.com/forum/112459-excel-vba-fonction-sendmail-corps-du-message.html

    Allez, courage !
    0
    1. Bonjour,

      voici ma problématique:

      je veux envoyer un mail avec une macro sous excel.

      le bouton envoi mail se trouve en feuil2

      l'adresse e-mail de destination se trouve en B1 de la feuil3

      le corps du mail est constitué d'un texte "modèle" à la suite duquel je veux copier/coller le tableau (avec sa mise en forme) qui se trouve en feuil2 plage(A10, cells(derlig, dercol)) avec derlig et dercol des variables qui donnent la dernière ligne et dernière colonne de mo tableau.

      je n'arrive pas à trouver la bonne syntaxe. On m'a parlé de langage HTML mais je n'avais jamais touché excel de ma vie, alors le VBA m'a deja pris un temps fou alors du html....

      Merci pour vos réponses
      0
      1. Bonjour,

        de toute évidence il n'y avait pas le choix. Ce type de code doit être écrit en HTML. Voici le code permettant de passer le corps d'un mail outlook en HTML:

        Dim ObjOutlook As New Outlook.Application
        Dim objMail
        Dim strHTML As String
        
        Set ObjOutlook = New Outlook.Application
        Set objMail = ObjOutlook.CreateItem(olMailItem)
        Sheets("demande de rapports").Activate
            ' Ecriture du tableau en langage HTML
        
                strHTML = ""
                strHTML = strHTML & "<HEAD>"
                strHTML = strHTML & "<BODY>"
                strHTML = strHTML & "le texte de votre choix"
        
        
        strHTML = strHTML & "<table> 
        
           ' Là il faut coder le tableau en html
        
        strHTML = strHTML & "</TABLE>"
        
                strHTML = strHTML & "encore du texte si vous souhaitez" 
                strHTML = strHTML & "</BODY>"
                strHTML = strHTML & ""
        
        
                '  Envoi de l'e-mail
        
        With objMail
            .To = "contact"
            .Subject = "Ici c'est l'objet"
            .BodyFormat = olFormatHTML
            .HTMLBody = strHTML
            .Send
        End With
        
                'Fermeture des instances outlook
        
        
        Set objMail = Nothing
        Set ObjOutlook = Nothing


        Voilà, j'espère que ça pourra être util à certain.
        0