VBA Envoi de mail avec Thunderbird et caractère avec accents

mikael2403

XLDnaute Junior
Bonjour,

Je cherche depuis 15 jours sur tous les forums la possibilité d'envoyer un mail en macro avec Thunderbird.
J'ai trouvé mon code qui fonctionne mais un dernier élément reste apparent.

Lorsque le mail est généré, tous les caractères avec un accent sont supprimés. Le texte devient donc incompréhensible. (Ex: "à")

C'est peut être un petit paramétrage mais impossible d'obtenir la solution.

Voici mon code :

Private Sub MailPMV_Click()
Dim destinataire, sujet, sujet1 As String

destinataire = InputBox("E-mail du destinataire")
sujet = "Votre projet de voyage Promovacances \ Dossier N° "
sujet1 = InputBox("N° de dossier")

text1 = Range("A3") & "<br><br>"
text2 = Range("A5") & "<br><br>"
text3 = Range("A9") & "<br>"
text4 = Range("A11") & "<br><br>"
text5 = Range("A13") & "<br>"
text6 = Range("A15") & "<br><br>"
text7 = Range("A17") & "<br>"
text8 = Range("B2") & "," & "<br>"
text9 = Range("A18") & " " & Range("B18")

body = text1 & text2 & text3 & text4 & text5 & text6 & text7 & text8 & text9

strcommand = "C:\Program Files\Mozilla Thunderbird\thunderbird"
strcommand = strcommand & " -compose " & "to='" & destinataire & "'"
strcommand = strcommand & "," & "subject=" & sujet & sujet1 & ","
strcommand = strcommand & "body='" & body & "'"
MsgBox strcommand

Call Shell(strcommand, vbNormalFocus)
End Sub

A chaque cellule correspond un texte.

Je vous remercie infiniment de votre aide.
 

mikael2403

XLDnaute Junior
Re : VBA Envoi de mail avec Thunderbird et caractère avec accents

Bonjour,

j'ai eu ce rude problème à une époque et je me suis résolu à passe rà l'époque à Outlook ...

peut être une aide là bas ? https://forums.mozfr.org/viewtopic.php?t=113718

J'ai essayé ton code et si les "é" et les "è" passent, les "à" ne passent pas :(

Bonjour gosselin,

J'avais vu ce post également, qui m'a beaucoup aidé, mais ça ne résout pas mon problème malheurement.
De plus, thunderbird est obligatoire car je l'utilise au travail donc pas trop le choix. Sinon j'adorerais utilisé outlook bien évidemment.

Merci pour ta réponse en tout cas.
 

JCGL

XLDnaute Barbatruc
Re : VBA Envoi de mail avec Thunderbird et caractère avec accents

Bonjour à tous,

Je n'ai changé le code si ce n'est les cellules sources



Capture 2.png

A+ à tous
 

Pièces jointes

  • Capture 1.png
    Capture 1.png
    4.5 KB · Affichages: 44
  • Capture 1.png
    Capture 1.png
    4.5 KB · Affichages: 43
  • Capture 2.png
    Capture 2.png
    9.8 KB · Affichages: 57

mikael2403

XLDnaute Junior
Re : VBA Envoi de mail avec Thunderbird et caractère avec accents

Bonjour,

Voici la solution que j'ai trouvé sur un autre forum :

Private Sub MailECOTOUR_Click()
Dim destinataire, sujet, sujet1 As String

destinataire = InputBox("E-mail du destinataire")
sujet = "Votre projet de voyage Ecotour \ Dossier N° "
sujet1 = InputBox("N° de dossier")

text1 = ConverAcute(Range("A3")) & "<br><br>"
text2 = ConverAcute(Range("A7")) & "<br><br>"
text3 = ConverAcute(Range("A9")) & "<br>"
text4 = ConverAcute(Range("A11")) & "<br><br>"
text5 = ConverAcute(Range("A13")) & "<br>"
text6 = ConverAcute(Range("A15")) & "<br><br>"
text7 = ConverAcute(Range("A17")) & "<br>"
text8 = ConverAcute(Range("B2")) & "," & "<br>"
text9 = ConverAcute(Range("A18")) & " " & ConverAcute(Range("E18"))


body = text1 & text2 & text3 & text4 & text5 & text6 & text7 & text8 & text9

strcommand = "C:\Program Files\Mozilla Thunderbird\thunderbird"
strcommand = strcommand & " -compose " & "to='" & destinataire & "'"
strcommand = strcommand & "," & "subject=" & sujet & sujet1 & ","
strcommand = strcommand & "body='" & body & "'"
MsgBox strcommand

Call Shell(strcommand, vbNormalFocus)
End Sub

Sub test()
txt = ConverAcute("éàè")
End Sub

Public Function ConverAcute(txt) As String
ConverAcute = Trim("" & txt)

ConverAcute = Replace(ConverAcute, "Á", "&Aacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "á", "&aacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "À", "&Agrave;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "à", "&agrave;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Â", "&Acirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "â", "&acirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ä", "&Auml;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ä", "&auml;", 1, -1, vbBinaryCompare)

ConverAcute = Replace(ConverAcute, "É", "&Eacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "é", "&eacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "È", "&Egrave;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "è", "&egrave;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ê", "&ecirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ê", "&Ecirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ë", "&Euml;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ë", "&uml;", 1, -1, vbBinaryCompare)

ConverAcute = Replace(ConverAcute, "Í", "&Iacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "í", "&iacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ì", "&Igrave;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ì", "&igrave;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Î", "&Icirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "î", "&icirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ï", "&Iuml;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ï", "&iuml;", 1, -1, vbBinaryCompare)

ConverAcute = Replace(ConverAcute, "Ó", "&Oacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ó", "&Oacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ò", "&Ograve;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ò", "&ograve;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ô", "&Ocirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ô", "&ocirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ö", "&Ouml;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ö", "&ouml;", 1, -1, vbBinaryCompare)

ConverAcute = Replace(ConverAcute, "Ú", "&Uacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ú", "&uacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ù", "&Ugrave;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ù", "&ugrave;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Û", "&Ucirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "û", "&ucirc;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "Ü", "&Uuml;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ü", "&uuml;", 1, -1, vbBinaryCompare)

ConverAcute = Replace(ConverAcute, "Ý", "&Yacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ý", "&yacute;", 1, -1, vbBinaryCompare)
ConverAcute = Replace(ConverAcute, "ÿ", "&yuml;", 1, -1, vbBinaryCompare)
End Function
 

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 179
dernier inscrit
BERSEB50