Format mail Excel

Bonjour,

j'ai fait une macro qui envoi un mail en fonction de la date d'une cellule mais lorsque je reçois le mail il est tout en vrac, illisible.

Voici le code :

Sub Envoyer_Mail_Outlook()

Dim chantier

chantier = Sheets("Suivi").Range("AE3").Value

If Sheets("Suivi").Range("AD3") <> "" Then

Set ObjOutlook = New Outlook.Application

Set oBjMail = ObjOutlook.CreateItem(olMailItem)

'---------------------------------------------------------

'Déclaration des adresses

Mail = "david.poly.37@.............."

copie = "davidmotard37@................."

'--------------------------------------------------------

With oBjMail

'détermination des destinataire

' le destinataire

.To = Mail

'les copies

.CC = copie

' l'objet du mail

.Subject = "Problème échéance sur le chantier " & chantier

'le contenu

.Body = "Une date est dépassée sur le chantier " & chantier

.Send

End With

'ObjOutlook.Quit

End If

Set oBjMail = Nothing

Set ObjOutlook = Nothing

End Sub

Comme vous pourrez le constater dans le code VBA, le sujet du mail et le corps du message sont simples normalement.

Je vous joins un screen du mail reçu, vous verrez que c'est illisible.

Que dois-je faire ?

Merci d'avance pour votre aide.

David

mail

Je viens de trouver sans trouver.... Cela vient du fait que j'ai mis des accents : échéances, dépassées... et si j'écris sans accent ben ça marche.

Donc oui j'ai trouvé mais avec accent c'est tout de même plus français, donc auriez-vous une idée ?

David

Bonsoir,

j'ai mis en commentaire vos définition d'objet et j'en ai mis d'autre :

Sub Envoyer_Mail_Outlook()
    Dim chantier, Mail, copie
    chantier = Sheets(1).Range("AE3").Value
    If Sheets(1).Range("AD3") <> "" Then
        ' Set ObjOutlook = New Outlook.Application
        ' Set oBjMail = ObjOutlook.CreateItem(olMailItem)
        Dim objOutApp As Object, objOutMail As Object
        Set objOutApp = CreateObject("Outlook.Application")
        Set objOutMail = objOutApp.CreateItem(0)
        '---------------------------------------------------------
        'Déclaration des adresses
        Mail = "david.poly.37@.............."
        copie = "davidmotard37@................."
        '--------------------------------------------------------
        With objOutMail
            'détermination des destinataire
            ' le destinataire
            .To = Mail
            'les copies
            .CC = copie
            ' l'objet du mail
            .Subject = "Problème échéance sur le chantier " & chantier
            'le contenu
            .Body = "Une date est dépassée sur le chantier " & chantier
            .display
            '.Send
        End With
        'ObjOutlook.Quit
    End If
    Set objOutMail = Nothing
    Set objOutApp = Nothing
End Sub

Mais surtout je les ai définis.

J'ai remplacé pour les tests le ".Send" par ".Display", qui permet d'avoir l'aperçu du mail.

@ bientôt

LouReeD

avec accent ma proposition fonctionne :

sans titre

@ bientôt

LouReeD

Merci,

par contre, comment faire pour que cela valide l'envoi automatiquement sans voir la boite d'envoi ?

David

@LouReeD

Je viens de faire un test et dans l'affichage de la boite, ok, les accents sont là et c'est joli mais pendant l'envoi il doit se passer qqchose car à réception ça change et ça redevient dégueu.

Helpppp

Peut-être une configuration de votre messagerie en format brut plutôt que html sur le courrier entrant...

@ bientôt

LouReeD

Je viens de faire différents tests en format brut j'obtient un peu mieux mais c'est encore bof d'autant plus que le corps du message est censé être succinct.

En Pj le screen de ce que je reçois.

David

mail 2

essayez sur mon adresse si vous voulez...

@ bientôt

LouReeD

Bonjour LouReed,

j'ai trouvé, cela venait du marché du nom de chantier (sur plusieurs lignes par endroit avec des ALT+ENTRÉE) et c'est ceux là qui étaient pas bon, du coup j'ai supprimé ces sauts de lignes et ça marche nickel.

Par contre j'ai mon code VBS mais lorsque je le lance en manuel ça marche, mais j'arrive pas à automatiser, pourtant je l'ai mis en tâches planifiées.

Voici mon code VBS :

'// .......... Lancement macro alertes chantier ..........

'chemin où se trouve le fichier script vbs

'CurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")

'ouverture fichier

Set xl = CreateObject("Excel.application")

Set wb = xl.Workbooks.Open("D:\Suivi_Chantiers.xlsm")

'lancement macro

xl.Run wb.Name & "!" & "Envoyer_Mail_Outlook"

'fermeture fichier avec validation mises à jour et fermeture application

wb.close (True)

xl.quit

'// .......... Fin macro ........................

Sniffff

David

planif 1 planif 2
Rechercher des sujets similaires à "format mail"