Outlook

Résolu/Fermé
megatronnbjja Messages postés 63 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 avril 2020 - 14 mai 2013 à 13:52
megatronnbjja Messages postés 63 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 avril 2020 - 12 juin 2013 à 11:31
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

Papaschultz
14 mai 2013 à 22:09
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
megatronnbjja Messages postés 63 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 avril 2020
22 mai 2013 à 14:30
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
megatronnbjja Messages postés 63 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 avril 2020
12 juin 2013 à 11:31
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