Insèrer une plage de cellule dans le corps de texte d'un mail

help!

XLDnaute Nouveau
Bonjour ,:)


Je cherche à créer depuis un fichier Excel, une macro permettant d'envoyer dans le corps d'un mail (depuis la messagerie installée par défaut) une plage de cellule du classeur ou une image contenu dans la feuille:

Voila la macro :

Sub EnvoiMail()Dim MailAd As StringDim Msg As StringDim Subj As StringDim URLto As StringDim Pj As StringMailAd = "toto@maison.toto"Subj = "Alerte sur …. "Msg = "Veuillez trouver ci-dessus la liste ........"URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg ActiveWorkbook.FollowHyperlink Address:=URLto End Sub

Cette macro me permet bien d'envoyer le mail, d'y insérer automatiquement: le destinataire, l'objet et le corps de texte, mais elle ne me permet pas d'insérer dans le corps du texte: un tableau ou une image.:mad:

Pourriez-vous m'aider à résoudre ce problème svp ? :confused:
 

help!

XLDnaute Nouveau
Re : Insèrer une plage de cellule dans le corps de texte d'un mail

Bonjour à tous,

J'ai essayé les macros proposées mais malheureusement ca ne fonctionne pas :confused:

Cela est peut être du au fait qu'elles sont écrite pour fonctionner avec outlook et non avec la messagerie installée par défaut.

Je continue mes recherches et vous remercie pour ls pistes fournies :)
 

Staple1600

XLDnaute Barbatruc
Re : Insèrer une plage de cellule dans le corps de texte d'un mail

Re

edit: pas de wiki , mais le moteur de recherche fonctionne
https://www.excel-downloads.com/threads/envoi-par-mail.80541/

cette macro de Michelxld semble trés bien :Sub envoiPlageCellules_Excel2002()
(en espérant que t aies au moins excel 2002)


Comme le Wiki est indisponible pour le moment

je te propose ce lien externe au forum
Mail the Selection with SendMail

Au fait quel est ton client de messagerie?
 
Dernière édition:

help!

XLDnaute Nouveau
Re : Insèrer une plage de cellule dans le corps de texte d'un mail

Merci Staple 1600 et Michel Xld,:)

Deux des exemples proposés sur le lien Mail the Selection with SendMail fonctionne avec mon fichier excel (ps: j'ai Excel 2000).:)

Cependant elle ne permette pas d'inclure la sélection dans le corps du mail: en fait elle le copie dans un nouveau classeur qu'elle met en pièce jointe au mail.:confused:

En tout cas, je vous remercie, car elles permettront de me dépaner jsqu'à ce que je trouve le bon code pour inclure la selection dans le corps du Mail.:)
 

MichelXld

XLDnaute Barbatruc
Re : Insèrer une plage de cellule dans le corps de texte d'un mail

bonjour

Tu peux aussi utiliser

Code:
Sub PlageDeCellulesDansCorpsDuMessage()
'testé avec XP
'Send using the Pickup directory on the IIS server.
'adapté de : How To Send HTML Formatted Mail Using CDO for Windows 2000 and the Local Pickup Directory
Dim iMsg As Object, iConf As Object
Dim strHTML As String
Dim i As Byte, j As Byte
 
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
 
strHTML = ""
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & "Bonjour , <BR>vous trouverez ci joint le tableau demandé<BR><BR>"
strHTML = strHTML & "<B><SPAN STYLE='background-color:green;font-size:6mm'>Résultats : </SPAN></B><BR><BR>"
strHTML = strHTML & "<TABLE BORDER>"
 
For i = 1 To 5 'nombre de lignes (exemple plage A1:B5)
 
    strHTML = strHTML & "<TR halign='middle'nowrap>"
    For j = 1 To 2 'nombre de colonnes
    strHTML = strHTML & "<TD bgcolor='yellow'align='center'><FONT COLOR='blue'SIZE=3>" _
            & Cells(i, j) & "</FONT></TD>"
    Next j
    strHTML = strHTML & "</TR>"
 
Next i
 
strHTML = strHTML & "</TABLE>"
 
strHTML = strHTML & "<BR><BR>Cordialement<BR>" & Environ("username")
strHTML = strHTML & "</BODY>"
strHTML = strHTML & ""
 
With iMsg
    Set .Configuration = iConf
    .To = "[EMAIL="destinataire@provider.fr"]destinataire@provider.fr[/EMAIL]" 'renvoie une erreursi l'adresse est non valide
    '.From = "[EMAIL="youralias@yourdomain.com"]youralias@yourdomain.com[/EMAIL]"
    .Subject = "Test Envoi Tableau par mail"
    .HTMLBody = strHTML
    .Send
End With
 
End Sub




Bonne journée
MichelXld
 

help!

XLDnaute Nouveau
Re : Insèrer une plage de cellule dans le corps de texte d'un mail

Bonjour MichelXld :)

La macro proposée me permet d'afficher la 1ère ligne du tabeau au format "Zoom * 10 %"
*****
Mail reçu
Bonjour ,
vous trouverez ci joint le tableau demandé

Résultats :

Anomalies

<td bgcolor='blue' align='c >
*****
Et sous le message il y a une ligne bleu d'environ 3 cm et large de 1cm (cela représente peut être le tableau en miniature ).:confused:

La piste a l'air bonne et je t'en remercie :)

Je continue à chercher :confused:
 

help!

XLDnaute Nouveau
Re : Insèrer une plage de cellule dans le corps de texte d'un mail

Bonsoir MichelXld :)

Certaines de mes cellules étaient vides je les ai donc complétées mais cela ne fonctionne toujours pas :confused:
J'ai toujours une seule ligne qui s'affiche alors que dans le code j'ai i = 1 to 11 et j = 1 to 5 :confused:
bizarre !!!
et j'ai toujours un message dans le corp du mail du style:
<td bgcolor='yellow' align='center >
Je continue à chercher :)
 

help!

XLDnaute Nouveau
Re : Insèrer une plage de cellule dans le corps de texte d'un mail

Bonsoir Tatiak :)

La macro bloc à ce niveau :
Sub Envoi_Mail()
Dim iMsg As New CDO.Message

Peut être que cela est du au fait que je n'ai pas suivi ta remarque préalable:

En activant les références :
* Microsoft ADO Ext ...
* et Microsoft CDO for windows 2000 library


Comment fait on pour les activer ???:confused:

ps: je suis sous Excel 2000

Merci
 

Staple1600

XLDnaute Barbatruc
Re : Insèrer une plage de cellule dans le corps de texte d'un mail

Bonsoir le fil


Dans l'éditeur VBE (dans Excel faire ALT+F11)

Puis aller dans le menu Outils/Références

Ensuite les cocher les référentes manquantes.

Il faut au moins être sous Windows 2000 ou XP

pour ces références: Microsoft CDO

(sauf erreur de ma part)

A+

Staple
 

Discussions similaires

Réponses
2
Affichages
305

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson