Envoyer un mail outlook

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

Bonjour,

Essaie avec ce code

' Envoie de la demande par mail
Dim appOutlook As Outlook.Application
Dim oMail As Outlook.MailItem
    ' Lance une session Outlook
Set appOutlook = CreateObject("outlook.application")
    ' Crée un nouveau mail
Set oMail = appOutlook.CreateItem(olMailItem)
With oMail
    ' Titre, Texte, Destinataires, Pièces jointes du message
.Subject = "le sujet que tu veux"
.Body = Range("A1:C1").Value 
.BodyFormat = olFormatHTML
Sheets("Feuil2").Activate
.To = Range("B2").Value
.Attachments.Add ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
    ' Envoie le message
.Send
End With
    '   Réinitialise l'objet
Set appOutlook = Nothing
Sheets("Feuil1").Activate

Bonjour,

merci pour ta réponse et désolé d'être aussi tardif.

J'ai essayé ton code et le débogueur me dit que la limite inférieure de la matrice doit être égale à zéro.... sur la ligne du .TO

Je me remets dessus.

Super le retour de vacances...

Bonjour,

Il faut éviter les "Activate", bien souvent ça ne sert à rien, que ralentir le code

.To = Sheets("Feuil2").Range("B2").Value

A plus

Bonjour,

Alors j'avais déjà essayé avec le range.value

Le problème c'est que si je veux envoyer une plage de cellule ex : Range("A1:B2").Value, le débogueur me dit: la limite inférieure de la matrice doit être égale à 0.

De plus, j'aimerais bien concerver la mise en forme de ma plage de cellules...

Merci en tout cas pour vos réponses.

Bonjour à vous 2,

Désolé, je suis débutant dans vba et la je vois pas ce qui pourrais t'aider ...

Quelqu'un à des idées?

Re,

Le problème c'est que si je veux envoyer une plage de cellule ex : Range("A1:B2").Value,

Tu veux envoyer un plage de cellule ou un classeur à une liste de noms stockée dans des cellules !?

A+

Re,

Je souhaite copié par exemple la plage (A1:E20) avec sa mise en forme, et coller cette plage dans le corps de mon mail.

Par exemple,

"Bonjour,

Veuillez trouver ci après le tableau de relance relatif à vos lignes de commandes:

et la il y a une copie du tableau

Cordialement"

Je cherche un petit peu à coté, et il est souvent question de langage HTLM, mais étant totalement débutant en info, je trouve déjà excel compliqué, le vba n'en parlons pas, alors en plus un nouveau langage, je ne le sens pas trop....

Merci.

Je reprends et complète ce post : il est possible en effet avant d'envoyer le message d'y inclure un tableau.

Ce que je fais, c'est d'abord un copier dans le presse-papier sous Excel d'une plage dénommée MessageComplet que je mets en forme sous excel; puis j'envoie des touches par SendKeys

    Range("MessageComplet").Copy

    With MonMessage
        .To = destinataires
        .Cc = copies
        .Subject = "Mon Titre"
        .OriginatorDeliveryReportRequested = True
        .ReadReceiptRequested = True
        .display
    End With

    Application.Wait (Now + TimeValue("0:00:04"))
    SendKeys "^v", True
    Application.CutCopyMode = False
Rechercher des sujets similaires à "envoyer mail outlook"