Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 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





A+ à tous
 

Pièces jointes

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

mikael2403

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

Bonjour à tous,

Personne n'a la solution pour ce soucis ?
A savoir que le "à" est situé au milieu d'une phrase. En début de phrase, bizarrement, il apparait.

Merci de votre aide.
 

JCGL

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

Bonjour à tous,

Pareil chez moi si le à est en milieu de phrase : effacement du à
Le a est lui préservé.

A+ à tous
 

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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…