Pb de syntaxe macro vba envoi outlook

Résolu
Bonjour,

J'ai un problème dans la syntaxe d'un macro qui me permet d'envoyer une feuille Excel en mail via Outlook.

Le message part bien mais l'objet reste vide ou affiche des caractères sibyllins.
Voici le texte de ma macro.

Sub SendMail()

' Copy the sheet(1)
ActiveSheet.Copy

' Send Email
With ActiveWorkbook
.SendMail Recipients:=Array(ActiveSheet.Range("adresse_mail").Value), Subject:=ActiveSheet.Range("chantier").Value & " code " & ActiveSheet.Range("A3").Value, _
ReturnReceipt:=False 'True
.Close SaveChanges:=False
End With

' Subject:=Range("Feuil1!B1").Value & " " & Range("Feuil1!A1").Value
End Sub

Si quelqu'un a une solution, je suis preneur.
Merci, bonne journée.
Cordialement

3 réponses

  1. Bonsoir,

    essaie :

    Sub SendMail()

    ' Copy the sheet(1)
    ActiveSheet.Copy

    ' Send Email
    With ActiveWorkbook
    .SendMail Recipients:=Array(ActiveSheet.Range("adresse_mail").Value), _ Subject:=ActiveSheet.Range("chantier").Value & " code " & ActiveSheet.Range("A3").Value, _
    ReturnReceipt:=False 'True
    .Close SaveChanges:=False
    End With

    ' Subject:=Range("Feuil1!B1").Value & " " & Range("Feuil1!A1").Value
    End Sub

    Il manquait le _ derrière .Sendmail...
    0
    1. Bonsoir Mélanie,

      Merci pour ta réponse. Mais malheureusement cela ne fonctionne pas. Le sujet reste désespérément vide.
      Bonne soirée
      0
      1. Bonjour,

        J'ai trouvé une autre solution sur le forum excel-pratique (merci à lermite). De plus elle supprime le message de confirmation d'envoi d'Outlook.

        'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
        ' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
        Sub Envoyer_Mail_Outlook()
        Dim ObjOutlook As New Outlook.Application
        Dim oBjMail
        Dim Nom_Fichier As String

        Set ObjOutlook = New Outlook.Application
        Set oBjMail = ObjOutlook.CreateItem(olMailItem)
        '---------------------------------------------------------
        'Exemple pour envoyer un classeur en pièce jointe
        'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
        'If Nom_Fichier = "Faux" Then Exit Sub
        '---------------------------------------------------------
        'Ou bien entrer le path et nom du fichier autrement
        Nom_Fichier = "C:\Users\JoDan\Desktop\Mouvement materiel.xlsm"
        If Nom_Fichier = "" Then Exit Sub
        '---------------------------------------------------------
        With oBjMail
        .To = ActiveSheet.Range("adresse_mail").Value ' le destinataire
        .Subject = ActiveSheet.Range("T10").Value ' l'objet du mail
        .Body = "Envoi mvt" 'le corps du mail ..son contenu
        '.Attachments.Add Nom_Fichier '"C:\Data\essai.txt" ' ou Nomfichier
        '.Display ' Ici on peut supprimer pour l'envoyer sans vérification
        .Send
        End With
        ObjOutlook.Quit
        Set oBjMail = Nothing
        Set ObjOutlook = Nothing
        End Sub

        Bonne journée,
        Cordialement
        0