Outlook

Résolu
megatronnbjja Messages postés 67 Statut Membre -  
megatronnbjja Messages postés 67 Statut Membre -
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. Papaschultz
     
    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
  2. megatronnbjja Messages postés 67 Statut Membre
     
    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
  3. megatronnbjja Messages postés 67 Statut Membre
     
    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