formater le texte de outlook express par excel

lematou

XLDnaute Occasionnel
Bonjour à tous,

voilà je repose une question restée sans réponse, mais qui devait être due à mes mauvaises explications.

Je lance par une macro un texte d'une plage de cellules d'une feuille excel via outlook express. Le texte est lancé directement dans le corps du message.
Voici la macro:

ub NOM()
Sheets("NOM").Select
Dim HyperLien As String, Objet As String, corps As String
Objet = Range("A2")
corps = ""
corps = corps & Cells(2, 1).Value & "%0A"
corps = corps & Cells(4, 1).Value & "%0A"
corps = corps & Cells(5, 1).Value & "%0A"
corps = corps & Cells(6, 1).Value & "%0A%0A"
corps = corps & Cells(7, 1).Value & " " & Cells(7, 3).Value & " " & Cells(7, 4).Value & "%0A%0A"
corps = corps & Cells(9, 1).Value & "%0A%0A"
corps = corps & Cells(10, 1).Value & " " & Cells(10, 5).Value & "%0A%0A"
corps = corps & Cells(12, 1).Value & "%0A"
corps = corps & Cells(13, 1).Value & "%0A%0A"
corps = corps & Cells(15, 1).Value & "%0A"
corps = corps & Cells(16, 1).Value & "%0A"
corps = corps & Cells(17, 1).Value & "%0A"
corps = corps & Cells(18, 1).Value & "%0A"
corps = corps & Cells(19, 1).Value & "%0A"
corps = Application.WorksheetFunction.Substitute(corps, vbCrLf, "%0D%0A")
adresse = Range("F1")
Copie = Range("F2")
HyperLien = "mailto:" & adresse & "?cc=" & Copie ' pour le CC j'ai fait ça
HyperLien = HyperLien & "&Subject=" & Objet & " (à " & Time() & ")"
HyperLien = HyperLien & "&Body=" & corps
ActiveWorkbook.FollowHyperlink HyperLien
Sheets("Feuil1").Select
End Sub
Cela marche impécablement, d'autant que c'est le forum qui m'a guidé.
Mais dans ma feuille excel certaine cellules sont en gras, d'autres en rouge, et la police en arial 10.
Pourtant dés que je lance la macro (avec bouton) le texte dans le corps du message outlook express reste noir et petit (8). Seules les majuscules sont prises en compte.
Question: y a-t-il un moyen de palier cet inconvéniant? Et coment?:confused:
Merci à tous.
 

Roland_M

XLDnaute Barbatruc
Re : formater le texte de outlook express par excel

bonjour

par copy !!! et bien sûr initialiser les variables ci-dessous

EmailAdresDestinataire
EmailSujet
EmailMessage


' copy données dans le corp du message
Application.CutCopyMode = False
Range("A2").Copy ' par copy !!!!!!
Opt$ = "/mailurl:mailto:" & EmailAdresDestinataire & "?subject=" & EmailSujet & "&Body=" & EmailMessage
Shell "C:\Program Files\Outlook Express\msimn.exe " & Opt$
'{TAB 4} redescend le curseur de Adresse sur le Message
'+{INSERT} MAJ+INSERT insertion données dans le Message
DoEvents '
SendKeys "{TAB 4}+{INSERT}", False
DoEvents
 

Roland_M

XLDnaute Barbatruc
Re : formater le texte de outlook express par excel

re:

voir avec cet exemple !
voir code dans module !
 

Pièces jointes

  • OutlookExpress CopyDonn.xls
    22 KB · Affichages: 78
  • OutlookExpress CopyDonn.xls
    22 KB · Affichages: 72
  • OutlookExpress CopyDonn.xls
    22 KB · Affichages: 75

lematou

XLDnaute Occasionnel
Re : formater le texte de outlook express par excel

rebonjour à tous, et à toi Roland,

J'ai bien appliqué ton code (bien que je sois très débutant) en faisant :
Outils puis macro puis macro puis exécuter. Ce qui est un peu long pour lancer mon mail.
Alors j'ai voulu affecter un bouton pour activer ta macro "essai" Et là j'obtiens une boite de dialogue sur l'activation de ma macro puis une seconde que je ne comprends pas.
D'autant que je ne souhaite pas que le bouton soit sur la même feuille que le texte.
J'ai fait un fichier à partir du tien.
Y a-til une erreur de methode de ma part.
 

Pièces jointes

  • OutlookExpress%20CopyDonn(2).xls
    23 KB · Affichages: 56

Roland_M

XLDnaute Barbatruc
Re : formater le texte de outlook express par excel

re:

ha oui mais là attention !
ce n'est qu'un exemple que tu dois adapter à tes besoins !

dans la routine il faut compléter les provenances de tes ranges de données
surtout la feuille !

dans l'exemple il y a
RangDeDonnees$ = "B1:F10" ' <<<<< à voir
EmailAdresDestinataire = Range("B14") ' <<<<< à voir
EmailSujet = Range("B15") ' <<<<< à voir
EmailMessage = "message" ' <<<<< à voir

il te faut compléter tout ceci ! exemple:

Sheets("NomDeFeuille").Range("B15") sinon c'est la feuille active qui n'est pas forcément la bonne !

que souhaites tu faire pour que je puisse t'arrange tout cela ?
sois précis STP !
 

Roland_M

XLDnaute Barbatruc
Re : formater le texte de outlook express par excel

re:

en attendant voici ton fichier adapté pour que tu comprennes !
 

Pièces jointes

  • OutlookExpress CopyDonn(1).xls
    28 KB · Affichages: 74
  • OutlookExpress CopyDonn(1).xls
    28 KB · Affichages: 77
  • OutlookExpress CopyDonn(1).xls
    28 KB · Affichages: 76

lematou

XLDnaute Occasionnel
Re : formater le texte de outlook express par excel

:)Bonjour à tous, Bonsoir Roland M

J'avais bien pigé ton code. Et ça marche impec.
Le texte excel (la plage de cellules se reproduit formatée comme il faut.
Mais à l'ouverture d'outlook express, le texte est décalé vers la droite et le bas. Et il faut pour visualiser le message agir sur les barres de défilement haut et gauche. Alors que dans ton exemple cela ne le fait pas???
voici le code que j'ai adapté (à peine)

Sub ENVOI()
'copy une plage de données dans le corp du message
NomDeLaFeuilleSource$ = "DIVERS"
RangDeDonnees$ = "A3:H24"
EmailAdresDestinataire = Sheets("DIVERS").Range("I1")
EmailSujet = Sheets("DIVERS").Range("A3")
EmailMessage = Sheets("DIVERS").Range("B4")
' copy la plage de données
Application.CutCopyMode = False
Sheets("DIVERS").Range("A3:H24").Copy

' envoie Email
Opt$ = "/mailurl:mailto:" & EmailAdresDestinataire & "?subject=" & EmailSujet & "&Body=" & EmailMessage
Shell "C:\Program Files\Outlook Express\msimn.exe " & Opt$
'{TAB 4} redescend le curseur de Adresse sur le Message
'+{INSERT} MAJ+INSERT insertion données dans le Message
DoEvents '
SendKeys "{TAB 4}+{INSERT}", False
DoEvents
Application.CutCopyMode = True
Range("A1").Select
End Sub

D'autre part comment puis-je rajouter une adresse en CC. qui serait elle aussi dans une cellule, disons J25.
Merci beaucoup, si quelqu'un sait.:):)
 

Roland_M

XLDnaute Barbatruc
Re : formater le texte de outlook express par excel

re

pour l'espace en haut j'ai enlevé une Tabulation
( TAB 3 au lieu de TAB 4 )
et corrigé Sheets("DIVERS").Range(RangDeDonnees$).Copy

par contre chez moi j'ai pas de décalage vers la droite !?
si tu parles du message, il est toujours en dessous des données !


pour ce qui est d'envoyer à plusieurs adresses en même temps,
tu les mets ensemble séparé par un ;
exp: nom1@site.fr;nom2@site.com;nom3@site.free

Code:
Sub ENVOI()
'copy une plage de données dans le corp du message
NomDeLaFeuilleSource$ = "DIVERS"
RangDeDonnees$ = "A3:H24"
EmailAdresDestinataire = Sheets("DIVERS").Range("I1")
EmailSujet = Sheets("DIVERS").Range("A3")
EmailMessage = Sheets("DIVERS").Range("B4")
' copy la plage de données
Application.CutCopyMode = False
Sheets("DIVERS").Range(RangDeDonnees$).Copy
' envoie Email
Opt$ = "/mailurl:mailto:" & EmailAdresDestinataire & "?subject=" & EmailSujet & "&Body=" & EmailMessage
Shell "C:\Program Files\Outlook Express\msimn.exe " & Opt$
'{TAB 3} redescend le curseur de Adresse sur le Message
'+{INSERT} MAJ+INSERT insertion données dans le Message
DoEvents '
SendKeys "{TAB 3}+{INSERT}", False
DoEvents
Application.CutCopyMode = True
Range("A1").Select
End Sub
 

lematou

XLDnaute Occasionnel
Re : formater le texte de outlook express par excel

Bonsoir le forum,Bonsoir Roland M:):)

J'ai compris pourquoi chez moi il y a un décalage, c'est du à l'amplitude de la plage de cellule. Mais si j'envoie le mail (à moi pour test) le destinataire le reçoit bien formaté et sans décalage.

Pour tester dans ton fichier j'ai mis ggg dans la cellule Z18, et si tu testes, tu verras que ça se décale avant l'envoi.

Par contre j'ai absolument obligation de mettre une deuxième adresse en CC et seulement en cc.( c'est un destinataire précisé " envoi pour copie à".
Je sais qu'il y a un truc du genre:
Copie = Range("I2")
'Puis
HyperLien = "mailto:" & adresse & "?cc=" & Copie
Mais je n'ai pas su l'intercaler dans ton code???
Je te remecie beaucoup de tes précisions.
A bientôt.
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : formater le texte de outlook express par excel

bonsoir

malheureusement je pense que ce n'est pas possible !?
bien que je trouve ça bizarre !?
mais je n'y suis jamais arrivé !

j'ai mis d'ailleurs un message sur le forum mais personne (à part said) ne répond !

j'ai recherché sur le net et on ne trouve nul part CC: avec outlook express !?
je continue tout de même mes recherches...
 

Staple1600

XLDnaute Barbatruc
Dernière édition:

lematou

XLDnaute Occasionnel
Re : formater le texte de outlook express par excel

Re à tous , Bonsoir Roland,

Figures-toi que j'ai "bidouillé" ta (TAB 3) dans le code que tu m'a passé et je l'ai mise en (TAB 1) pour voir. (Et fort logiquement ,tout le contenu du message s'est mis en CC.
C'est normal puisque les TAB servent à descendre.
Donc , il doit y avoir une possibilité. Je cherche.
Merci beaucoup en tous les cas.:):)
 

lematou

XLDnaute Occasionnel
Re : formater le texte de outlook express par excel

re Staple1600 , re le forum

Je sui allé sur ton lien mais tout est en anglais et je n'ai rien compris.

Ya-t-il une possibilité d'insérer dans mon code une partie pour envoyer une cellule quelconque en CC= copie courrier.
Merci beaucoup.
Je n'ai jamais fait d'anglais à l'école.
 

Roland_M

XLDnaute Barbatruc
Re : formater le texte de outlook express par excel

bonjour à tous

je viens seulement de lire les messages
d'abord Grand Merci à Staple1600 !
je vais voir si ça peut fonctionner sous 2003

lematou:
j'ai essayé avec les Tab() mais c'est incontrôlable !
les Tab ne servent que pout l'insertion des données !
d'ailleurs tu as vu qu'avec Tab(1) tout est dans cc !
 

Discussions similaires

Réponses
3
Affichages
707

Statistiques des forums

Discussions
312 270
Messages
2 086 681
Membres
103 370
dernier inscrit
pasval