Envoi automatique de mail (avec pice jointe) en vba : excel, word ou access par oulook express ou modzilla thunderbird ou d----------------------------------------------------------------------------------------------------------------------------
Url     : http://codes-sources.commentcamarche.net/source/31545-envoi-automatique-de-mail-avec-piece-jointe-en-vba-excel-word-ou-access-par-oulook-express-ou-modzilla-thunderbird-ou-dAuteur  : cs_nerimDate    : 01/08/2013
Licence :
=========

Ce document intitul  Envoi automatique de mail (avec pice jointe) en vba : excel, word ou access par oulook express ou modzilla thunderbird ou d  issu de CommentCaMarche
(codes-sources.commentcamarche.net) est mis  disposition sous les termes de
la licence Creative Commons. Vous pouvez copier, modifier des copies de cette
source, dans les conditions fixes par la licence, tant que cette note
apparat clairement.

Description :
=============

Module en VBA qui s'utilise aussi bien avec Access qu'avec Word ou Excel.
<br /
>Il envoie automatiquement un mail (avec pi&egrave;ce jointe si on d&eacute;sire
).
<br />Ce Programme est sans pr&eacute;tention : Pas d'appel &agrave; des API
 plus ou moins obscures pour les d&eacute;butants.
<br />Il s'adresse plut&ocir
c;t &agrave; ces derniers car il est TRES document&eacute; (environ les 3/4 des 
lignes sont des commentaires)
<br />Je l'ai test&eacute; avec Word, Excel et Ac
cess. Et avec 3 clients de messagerie Outlook Express, Mozilla Thunderbird et Of
fice Outlook. Mais il est tr&egrave;s facile &agrave; adapter &agrave; d'autres 
clients (Eudora....).
<br />Je fournis un exemple d'utilisation avec Excel : A 
l'ouverture du classeur on v&eacute;rifie si, dans une liste de t&acirc;ches, ce
rtaines sont arriv&eacute;es &agrave; &eacute;ch&eacute;ance et on envoie automa
tiquement un mail avec le nom des t&acirc;ches en question.
<br />
<br />Cette
 version comporte quelques am&eacute;liorations sugg&eacute;r&eacute;es dans les
 commentaires depuis la parution (mai 2005) jusqu'&agrave; aujourd'hui (16/01/20
08) : 
<br />
<br />Des clients de messagerie nouveaux
<br />La possibilit&ea
cute; d'envoyer des plages Excel
<br />La gestion des copies et copies cach&eac
ute;es
<br />L'utilisation du copier coller pour des corps volumineux...
<br /
>
<br />Un r&eacute;sum&eacute; des questions pos&eacute;es jusqu'&agrave; pr&e
acute;sent dans les commentaires
<br />- Si vous voulez &eacute;viter l'ouvertu
re de la fen&ecirc;tre et que vous utilisez Outlook 2003 (&agrave; essayer avec 
les autres versions d'Outlook), vous pouvez utiliser une autre m&eacute;thode in
diqu&eacute;e en fin de de Code(Elle ne figure pas dans le zip). 
<br />- Pour 
placer des caract&egrave;res sp&eacute;ciaux dans le corps, utiliser les codes H
exa de ces caract&egrave;res (exemple pour placer un saut de ligne dans le corps
 du message utiliser &quot;%0A&quot;)
<br />- La taille de l'URL transmise (don
c du message) est limit&eacute;e (&agrave; 817 caract&egrave;res semble-t-il). A
u del&agrave; il faut utiliser le copier/coller (cf dans le code)
<br />
<br /
>Nouveaut&eacute;s dans le ZIP post&eacute; le 08/10/2008 : 
<br />-le choix de
 l'exp&eacute;diteur du mail avec Thunderbird (certainement facile &agrave; adap
ter pour Outlook...).
<br />-Toujours avec Thundrbird, forcer l'envoi du mail e
n HTML (c'est mieux pour les tableaux)
<br />- Enfin j'ai am&eacute;lior&eacute
; le classeur Excel qui demande d&eacute;sormais le client mail utilis&eacute; a
vant d'envoyer le mail (avec les versions pr&eacute;c&eacute;dentes, l'envoi aut
omatique &agrave; l'ouverture du classeur ne fonctionnait qu'avec thunderbird)

<br />
<br />Merci pour toutes les questions pos&eacute;es (et les r&eacute;pon
ses fournies) qui me permettent d'am&eacute;liorer cette source.
<br /><a name=
'source-exemple'></a><h2> Source / Exemple : </h2>

<br /><pre class='code' dat
a-mode='basic'>
'
' Ce module permet l'envoi d'un mail par le logiciel client 
SMTP par dfaut du systme
'
' le principe est de crer un lien de type &quot;
mailto:&quot;
' et de demander au programme appelant de suivre ce lien
'
' Le
s arguments Adresse, Objet, Corps et Adresses de copie et de copie cachs sont f
ournis  la procdure
' qui les utilise pour dfinir l'hyperlien qui sera activ
 par la mthode
' FollowHyperLink du classeur actif
'
' le problme est que 
VB suit le lien
' (ici il lance le programme de messagerie en lui fournissant l
es infos ncessaires)
' puis se dsintresse du problme
' c'est donc  l'util
isateur de finir le travail :
' choix ventuel de la pice jointe et envoi du m
essage.
'
' pour automatiser compltement le processus,
' on utilise une mth
ode un peu simpliste mais efficace :
' simuler l'appui sur les touches  utilis
er pour envoyer le message
'  l'aide de l'instruction SendKeys.
' en temporis
ant les envois successifs de touches, on y arrive trs bien
'
' Inconvnient d
e la mthode : chaque logiciel de messagerie utilise ses propres
' menus (donc 
touches) pour joindre un fichier et envoyer le message
' par exemple : Outlook 
Express utilise le menu Intsertion (touche : Alt-I)
' puis le sous menu Pice (
touche : P)
' et l'envoi du message se fait par Alt-Entre
'
' pour pallier 
 cet inconvnient, je propose de stocker dans 2 tableaux
' TouchesPJ() et Touch
esEnvoi()
' l'enchanement de touches  utiliser
' je fournis ici l'initialisa
tion des tableaux pour les 3 clients de messagerie
' dont je dispose sur ma mac
hine :
' Mozilla ThunderBird,
' Outlook Express,
' et Office 2003 Outlook (je
 ne pense pas que cela change pour les autres versions))
' il suffit donc d'act
iver l'initialisation qui va bien pour le client utilis.
' on pourrait aller g
ratter dans la base de registre de Windows pour le trouver
' mais outre que si 
on tombe sur un logiciel de messagerie un peu exotique
' et non prvu dans notr
e liste, on est mal,
' surtout cela compliquerait un programme sans prtention 
mais qui est simple et accessible  tous
'
' Bon, assez parl, un peu de code 
maintenant
' ------------------------------------------------------------------

Option Explicit
' -----------------------------------------------------------
-------
'Dclaration des tableaux qui recevront les touches  utiliser suivant


' le logiciel de messagerie par dfaut du systme.
' Dclars ici, les tableau
x ont une porte qui couvre tout le module
Dim TouchesPJ(5) As String, TouchesE
nvoi(5) As String
' -----------------------------------------------------------
-------
' Procdure principale qui compose les lments du message
' et effect
ue la demande d'envoi
' c'est cette procdure qui sera appele par le programme
 principal (ici Excel)
'
Sub EnvoiEmail(Adresse As String, Objet As String, Co
rps As String, Optional PJ As String, Optional Cc As String, Optional Bcc As Str
ing, Optional Collage As Boolean)
' Remarques : seuls les arguments : Adresse, 
Objet et Corps sont obligatoires
' l'argument PJ (pice jointe) est optionnel. 
S'il est fourni,
' c'est le chemin complet du fichier  joindre qui doit tre f
ourni
' pour joindre plusieurs pices,
' il faudrait que PJ soit un tableau et
 qu'il soit trait + bas par une boucle...
' les arguements Cc (copie) et Bcc (
copie cache) sont galement facultatifs
' l'argument Collage permet d'indiquer
  la procdure si elle doit coller
' le contenu du presse papier dans le corps
 du message
' Pour Excel, On peut envoyer une plage de cellule au lieu d'une ce
llule
' en utilisant dans le programme appelant les fonctions PH() ou PT() four
nies + bas
'-------------------------------------------------------------------
----------
' Quelques exemples d'appel de la procdure EnvoiMail depuis un clas
seur Excel
'
' Envoi simple sans pice jointe :
' EnvoiMail Range(&quot;A1&qu
ot;), Range(&quot;A2&quot;), Range(&quot;A3&quot;)

' Si les cellules sont nom
mes :
' EnvoiMail Range(&quot;Adresse&quot;),Range(&quot;Sujet&quot;),Range(&q
uot;Corps&quot;)

' Pour envoyer une plage :
' EnvoiMail Range(&quot;Adressse
&quot;),Range(&quot;Sujet&quot;),PT(Range(&quot;A3:A10&quot;))

' En utilisant
 les  arguements nomms (c'est le plus clair):
' EnvoiMail Adresse:= Range(&quo
t;A1&quot;), _
'           Objet:= Range(&quot;A2&quot;), _
'           Corps:
= PH(Range(&quot;A3:A10&quot;)), _
'           Collage:= True _
'           PJ
:= Application.Path &amp; &quot;\AJoindre.jpg&quot; _
'           Bcc:=&quot;zo
rro@fantomas.com&quot;
'-------------------------------------------------------
-------------------------
Dim HyperLien As String ' Reoit les lments de l'hy
perlien
                        ' composs  partir des arguments fournis  la 
procdure
Dim i As Integer        ' un compteur
Dim Client As Integer
' la sy
ntaxe de base du mailto est la suivante :
' mailto:dest@domaine.bof?Subject=Le 
sujet du message _
                         &amp;Body=Le corps du message _
  
                       &amp;cc=Destinataire copie _
                         &a
mp;bcc=Destinataire copie cache

HyperLien = &quot;mailto:&quot; &amp; Adress
e &amp; &quot;?&quot;       ' Le ? introduit les arguments
HyperLien = HyperLie
n &amp; &quot;Subject=&quot; &amp; Objet &amp; &quot; ( &quot; &amp; Time() &am
p; &quot;)&quot;
If Not Collage Then ' (en cas de collage, le corps est ajout 
juste avant le collage)
    HyperLien = HyperLien &amp; &quot;&amp;Body=&quot; 
&amp; Corps    ' le &amp; spare les arguments
End If
If Cc &lt;&gt; &quot;&qu
ot; Then HyperLien = HyperLien &amp; &quot;&amp;cc=&quot; &amp; Cc
If Bcc &lt;&
gt; &quot;&quot; Then HyperLien = HyperLien &amp; &quot;&amp;bcc=&quot; &amp; Bc
c

' Activation du lien
'
ActiveWorkbook.FollowHyperlink HyperLien    ' Pour
 Excel (les autres doivent tre en commentaire)
'ThisDocument.FollowHyperlink H
yperLien      ' Pour Word (les autres doivent tre en commentaire)
'Application
.FollowHyperlink HyperLien       ' Pour Access (les autres doivent tre en comme
ntaire)

        
Attendre 2                                  ' Appel d'une p
rocdure qui temporise
                                            ' c'est  di
re que la procdure courante
                                            ' (ici
 EnvoiMail) est suspendue pendant 5s
                                          
  ' cela permet d'Attendre que le client
                                      
      ' de messagerie soit lanc et prt
                                      
      ' avant d'envoyer les touches
                                           
 ' sinon ce serait le programme appelant
                                      
      ' (ici Excel) qui recevrait les touches
                                 
           ' A REGLER selon votre config
                                      
      
' l'argument  de FollowHyperlink se plante au del de 817 caractres
' 
donc pour les long messages, on peut utiliser le copier/coller
' C'est le progr
amme appelant qui effectue le COPIER
' (ventuellement mme une copie de cellul
es en tant qu'image : Selection.CopyPicture)
' la prsente procdure se content
e de COLLER le contenu du presse-papier
' si l'arguement Collage est  True
If
 Collage Then
    ' colle puis insre le texte du message au dbut du message

    SendKeys &quot;+{INSERT}&quot;, True  ' collage
    SendKeys &quot;^{HOME}&
quot;, True    ' dbut du message
    SendKeys Corps, True        ' envoi du co
rps du message
    SendKeys &quot;{Enter}&quot;, True    ' ligne suivante
End 
If
Client = 2  ' 1=Outlook Express
            ' 2=Mozilla Thunderbird
      
      ' 3=Office Outlook
            ' Suivent des configurations pour d'autres
 clients de messagerie
            ' trouves sur le forum
            ' 4=Une
 autre version pour Outlook2003
            ' 5=Incredimail
            ' 6=Of
fice Outlook 2007
            ' 7=... vous d'ajouter d'autres clients

Selec
t Case Client      ' appel du chargement des tableaux des touches selon le
    
                    ' client de messagerie indiqu
    Case 1
        OutLookE
xpress
    Case 2
        MozillaThunderbird
    Case 3
        Office2003Ou
tLook
    Case 4
        Office2003OutLookV2
    Case 5
        Incredimail


    Case 6
        Office2007OutLook
    Case 7
        Office2000OutLook
 
   Case Else
        MsgBox &quot;Aucun client de messagerie connu n'est indiqu
&quot;
        Exit Sub
End Select

' Le traitement de la pice jointe ne s
'excute que si la procdure  reu qqchose
' dans l'argument PJ (Optional&lt;=
&gt;Facultatif)

If PJ &lt;&gt; &quot;&quot; Then
    For i = 1 To TouchesPJ(
0)   ' dans TouchesPJ(0) on a stock le nombre de touches
                     
           '  envoyer au programme pour joindre une pice
        SendKeys Tou
chesPJ(i), True     ' Envoie les touches d'ajout d'1 pice jointe
        Atten
dre 1                        ' temporise ( rgler ventuellement)
    Next i

    SendKeys PJ, True       ' A ce stade le programme Attend un nom de fichier

                            ' on lui envoie
    Attendre 1                ' on 
temporise
    SendKeys &quot;{ENTER}&quot;, True    ' et on valide ce nom de fi
chier
    Attendre 1
End If
For i = 1 To TouchesEnvoi(0)
    SendKeys Touche
sEnvoi(i), True  ' on envoie le message
Next i
End Sub

Sub Attendre(Seconde
s As Integer)
' Cette procdure temporise pendant le nombre de secondes qu'on l
ui transmet en argument
Dim Dbut As Long, Fin As Long, Chrono As Long
Dbut =
 Timer
Fin = Dbut + Secondes
Do Until Timer &gt;= Fin
    DoEvents
Loop
En
d Sub

Sub OutLookExpress()
'Initialisation des tableaux de touches pour Outl
ook Express
    ' Pour une pice jointe
    TouchesPJ(0) = 2        ' Nombre d
e touches ncessaires
    TouchesPJ(1) = &quot;%i&quot;     ' Appel du menu Ins
ertion par la touche Alt-i
    TouchesPJ(2) = &quot;p&quot;      ' appel du sou
s-menu pice par la touche p
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 
1     ' Nombre de touches ncessaires
    TouchesEnvoi(1) = &quot;%s&quot;  ' E
nvoi du message avec Alt-s
End Sub

Sub MozillaThunderbird()
'Initialisation
 des tableaux de touches pour Mozilla Thunderbird
    ' Pour une pice jointe

    TouchesPJ(0) = 4        ' Nombre de touches ncessaires
    ' il semble que
 l'appel par Alt-f du menu fichier ne marche pas
    '  tous les coups donc (m
erci  FRED65200)
    TouchesPJ(1) = &quot;{F10}&quot;     ' Appel des menus pa
r {F10}
    TouchesPJ(2) = &quot;f&quot;     ' Appel du menu Fichier par la tou
che f
    TouchesPJ(3) = &quot;j&quot;      ' appel du sous-menu Joindre par la
 touche j
    TouchesPJ(4) = &quot;f&quot;      ' appel du sous-sous-menu Fichi
er par la touche f
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 4         
    ' Nombre de touches ncessaires
    TouchesEnvoi(1) = &quot;%xf&quot;      
   ' choisit l'expditeur qui commence par F
                                  
  '  changer bien sur pour votre cas perso
    TouchesEnvoi(2) = &quot;^{ENTER
}&quot;    ' Envoi du message avec Ctrl-Entre
    TouchesEnvoi(3) = &quot;{DOW
N}&quot;  ' Flche bas pour choisir l'option &quot;Envoyer en HTML seul&quot;
 
                                   ' dans la boite dialogue
    TouchesEnvoi(4)
 = &quot;{ENTER}&quot;     ' confirmation par Entre
End Sub

Sub Office2003O
utLook()
'Initialisation des tableaux de touches pour Office Outlook 2003
    
' Pour une pice jointe
    TouchesPJ(0) = 2        ' Nombre de touches ncessa
ires
    TouchesPJ(1) = &quot;%i&quot;     ' Appel du menu Insertion par la tou
che Alt-i
    TouchesPJ(2) = &quot;f&quot;      ' appel du sous-menu fichier pa
r la touche f
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 1     ' Nombre 
de touches ncessaires
    TouchesEnvoi(1) = &quot;%v&quot;  ' Envoi du message
 avec Alt-v
End Sub

'-------------------------------------------------------
-
' Voici quelques contributions trouves sur le forum
' pour d'autres logicie
ls de messagerie
' merci  leurs auteurs
' par contre, je ne les ai pas vrifi
s
'--------------------------------------------------------

Sub Incredimail
()
    ' Contribution de KOLOCO pour Incredimail
    ' Initialisation des tabl
eaux de touches pour Incrdimail
    ' Pour une pice jointe
    TouchesPJ(0) 
= 1        ' Nombre de touches ncessaires
    TouchesPJ(1) = &quot;^+a&quot;  
  'Appel du menu Insertion Fichier par la touche Ctrl+Shift+A
    ' Pour l'envo
i du mail
    TouchesEnvoi(0) = 1     ' Nombre de touches ncessaires
    Touc
hesEnvoi(1) = &quot;%s&quot;  'Envoi du message avecAlt-s
End Sub

Sub Office
2003OutLookV2()
    ' Version corrige par CLARK1978  essayer si la version d'
origine ne gre pas
    ' la touche Alt-i correctement
    ' Initialisation de
s tableaux de touches pour Office Outlook 2003
    ' Pour une pice jointe
   
 TouchesPJ(0) = 3            ' Nombre de touches ncessaires
    TouchesPJ(1) =
 &quot;%a&quot;         'Appel du menu Insertion par la touche Alt-a (affichage)

    TouchesPJ(2) = &quot;{RIGHT}&quot;    ' puis flche  droite
    TouchesP
J(3) = &quot;f&quot;          ' appel du sous-menu fichier par la touche f
    
' Pour l 'envoi du mail
    TouchesEnvoi(0) = 1         ' Nombre de touches nc
essaires
    TouchesEnvoi(1) = &quot;%v&quot;      ' Envoi du message avecAlt-v

End Sub

Sub Office2007OutLook()
    ' Contribution de PC512 pour Office 20
07
    ' Initialisation des tableaux de touches pour Office Outlook 2007
    '
 Pour une pice jointe
    TouchesPJ(0) = 2        ' Nombre de touches ncessai
res
    TouchesPJ(1) = &quot;%s&quot;     ' Appel du menu Insertion par la touc
he Alt-i
    TouchesPJ(2) = &quot;jf&quot;     ' appel du sous-menu fichier par
 la touche f
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 1     ' Nombre d
e touches ncessaires
    TouchesEnvoi(1) = &quot;%v&quot;  'Envoi du message a
vecAlt-v
End Sub

Sub Office2000OutLook()
    ' Contribution de TANATLOC92 p
our Office Outlook 2000
    ' Initialisation des tableaux de touches pour Offic
e Outlook 2000
    ' Pour une pice jointe
    TouchesPJ(0) = 2 ' Nombre de to
uches ncessaires
    TouchesPJ(1) = &quot;%i&quot; ' Appel du menu Insertion p
ar la touche Alt-i
    TouchesPJ(2) = &quot;f&quot; ' appel du sous-menu fichie
r par la touche f
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 1 ' Nombre 
de touches ncessaires
    TouchesEnvoi(1) = &quot;^{ENTER}&quot; ' Envoi du me
ssage avec Ctrl-Entre
End Sub
'----------------------------------------------
------------------------------------
' POUR ENVOYER UNE PLAGE DE CELLULES
'---
-------------------------------------------------------------------------------


' Les fonctions qui suivent sont adaptes  Excel
' elles permettent d'envoyer
 une plage de cellules plutt qu'une seule cellule
' elles sont utilises par l
e PROGRAMME APPELANT pour prparer le corps du message
'                       
      ------------------
' avant de le transmettre  la procdure EnvoiMail


' Premire Version:
' Transforme une plage en tableau HTML
' (mais votre progr
amme de messagerie risque de vous demander une confirmation
'  pour un envoi de
 message en HTML, ce qui rompt l'automatisme)

Function PH(LaPlage As Range) A
s String
    ' transforme une plage en tableau HTML
    Dim l As Long, c As Lo
ng
    PH = &quot;&lt;html&gt;&lt;table width='100%'&gt;&quot; 'balises de dbu
t du code HTML et de dbut de  table
    For l = 1 To LaPlage.Rows.Count   ' po
ur chaque ligne de la plage
        PH = PH &amp; &quot;&lt;tr&gt;&quot;       
       ' balise de dbut de ligne
        For c = 1 To LaPlage.Columns.Count  '
pour chaque colonne de la ligne
            ' balise dbut de colonne +  conten
u de la cellule + balise fin de colonne
            PH = PH &amp; &quot;&lt;td&
gt;&quot; &amp; LaPlage.Cells(l, c) &amp; &quot;&lt;/td&gt;&quot;
        Next 
c
        PH = PH &amp; &quot;&lt;/tr&gt;&quot; ' balise fin de ligne
    Next
 l
    PH = PH &amp; &quot;&lt;/table&gt;&lt;/html&gt;&quot;  ' balises de fin 
de table et de fin de code HTML
    'MsgBox PH
End Function

' Deuxime Vers
ion:
' Transforme une plage en texte dlimit avec Tabulations
Function PT(LaP
lage As Range) As String
    ' transforme une plage en texte avec tabulations e
t retours ligne
    Dim l As Long, c As Long
    PT = &quot;&quot;
    For l 
= 1 To LaPlage.Rows.Count
        For c = 1 To LaPlage.Columns.Count
         
   PT = PT &amp; LaPlage.Cells(l, c)
            If c &lt; LaPlage.Columns.Coun
t Then
                ' on ajoute une tabulation que si on n'est pas sur la de
rnire colonne
                PT = PT &amp; &quot;%09&quot;  ' %09 est le code
 pour la tabulation (vbTab ne fonctionne pas ici)
            End If
        N
ext c
        PT = PT &amp; &quot;%0A&quot;  ' %0A est le code pour le retour l
igne (vbCrLf ne fonctionne pas ici)
    Next l
    'MsgBox PT
End Function



'---------------------------------------------------------------------------
'
Autre mthode totalement diffrente et indpendante mais qui ne fonctionne
' QU
'AVEC OUTLOOK. Elle fait appel  la technologie Automation (OLE)
' il faut ajou
ter la bibliothque &quot;Microsoft Outlook 11.0 Object Library&quot;
'  votre
 projet
' son avantage principal : la fentre Outlook ne s'ouvre pas !!!
' aut
re avantage : c'est un peu plus lgant
' (merci  JeanMimi75)
' Pour le progr
amme appelant l'utilisation est identique, il suffit de changer
' le nom de la 
procdure appele (EnvoiMailMthodeOLE au lieu de EnvoiEmail)
' par exemple :

' En utilisant les  arguements nomms (c'est le plus clair):
' EnvoiMailMthode
OLE Adresse:= Range(&quot;A1&quot;), _
'           Objet:= Range(&quot;A2&quot;
), _
'           Corps:= PH(Range(&quot;A3:A10&quot;)), _
'           PJ:= App
lication.Path &amp; &quot;\AJoindre.jpg&quot; _
'           Bcc:=&quot;zorro@fa
ntomas.com&quot;
' Attention avec cette technique, le collage du contenu du pre
sse-papier n'est pas gr
'----------------------------------------------------
------------------------
Sub EnvoiMailMthodeOLE(Adresse As String, Objet As St
ring, Corps As String, Optional Pice As String, Optional Cc As String, Optional
 Bcc As String)
    Dim MonAppliOutlook As New Outlook.Application
    Dim Mon
Mail As Outlook.MailItem
    Dim MaPice As Outlook.Attachments
    Set MonMai
l = MonAppliOutlook.CreateItem(olMailItem)
    With MonMail
        '.Display 
' retirer le commentaire si vous voulez que le fentre Outlook s'affiche
      
  .To = Adresse
        If Not IsNull(Cc) Then .Cc = Cc
        If Not IsNull(
Bcc) Then .Bcc = Bcc
        .Subject = Objet
        .Body = Corps
        I
f Not IsNull(Pice) Then
            Set MaPice = .Attachments
            Ma
Pice.Add Pice, olByValue
        End If
        .Send
    End With
End Sub

</pre>
<br /><a name='conclusion'></a><h2> Conclusion : </h2>

<br />Placez 
ce code dans un module de votre document Excel, Word ou Access. Pour l'activatio
n du lien, choisissez votre application (il est fourni ici pour Excel) et choisi
ssez votre client (ici Mozilla ThunderBird). Si vous utilisez un autre logiciel 
de messagerie lisez les commentaires pour adapter le module &agrave; votre cas.


<br />
<br />Si &ccedil;a marche, utilisez le classeur Excel pour m'envoyer un
 mail ;-)
<br />
<br />Si vous utilisez Word ou Access, supprimez les fonction
s PH et PT qui ne fonctionnent qu'avec Excel.
<br />
<br />Vous pouvez r&eacut
e;gler les temporisations en fonction de votre machine et de votre logiciel de m
essagerie
<br />
<br />Si vous avez des s&eacute;quences de touches pour d'aut
re clients de messagerie, envoyez-les moi que je les ajoute.
<br />
<br />Bon 
codage
<br />Jean
