Pb de syntaxe macro vba envoi outlook

Résolu
Zebulon97 Messages postés 52 Statut Membre -  
Zebulon97 Messages postés 52 Statut Membre -
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. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  2. Zébulon97
     
    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
  3. Zebulon97 Messages postés 52 Statut Membre
     
    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