recuperation d'une adresse mail dans exce

sri75

XLDnaute Occasionnel
Bonjour, je voudrais récupérer les adresses mails de personnes qui m'écrivent via Outlook pour pouvoir les coller dans excel, sans faire un traitement de masse mais uniquement en travaillant au coup par coup dans un mail ouvert.

Ex j'ouvre un mail dans Outlook qui m'a été envoyé par machin@orange.fr, je voudrais récupérer l'adresse machin@orange.fr dans un variable ou dans un "copier" pour pouvoir ensuite faire un "coller" dans excel.

Merci d'avance à tous
 

Staple1600

XLDnaute Barbatruc
Re : recuperation d'une adresse mail dans exce

Bonjour à tous

Une piste à explorer: SenderEmailAddress

Un exemple (de Charlize) ci-dessous:
(à tester dans Outlook avec un mail ouvert)
Code:
Sub get_mail_address() 
    Dim mymessage As Outlook.MailItem 
     'make sure it's a mailitem and nothing else (ie. read receipt or something else)
    Set mymessage = ActiveExplorer.Selection.Item(1) 
    Select Case mymessage.SenderEmailType 
    Case "EX" 
         'Problem we have when using internal mail is strange
         'bunch of tokens in emailaddress. Therefor we determine the
         'kind of emailtype that is used, ie. EXchange (internal) or outside SMTP
         'This code gives the username that is used for sending from
         'the domain. Just add the domain after the name
        MsgBox Mid(Split(mymessage.SenderEmailAddress, "/")(4), _ 
        InStr(Split(mymessage.SenderEmailAddress, "/")(4), "=") + 1) 
    Case "SMTP" 
         'this is external mail
        MsgBox mymessage.SenderEmailAddress 
    End Select 
End Sub

PS: en faisant des recherches avec le mot en gras en début de message , tu devrais trouver d'autres exemples ou explications.

 
Dernière édition:

sri75

XLDnaute Occasionnel
Re : recuperation d'une adresse mail dans exce

Merci beaucoup, c'est ce que cherchais;

une dernière chose est il possible de récupérer l'adresse contenue dans mymessage.SenderEmailAddress et la mettre dans le presse papier pour pouvoir la coller n'importe ou avec un contrl V ?

Merci d'avance
 

job75

XLDnaute Barbatruc
Re : recuperation d'une adresse mail dans exce

Bonjour sri75, salut Staple,

Utiliser DataObject sans oublier de cocher la référence dans VBA :

Code:
'Cocher la référence "Microsoft Forms x.x Object Library" dans VBA
Dim MyData As New DataObject
'----
Set MyData = New DataObject
MyData.SetText mymessage.SenderEmailAddress
MyData.PutInClipboard
A+
 

sri75

XLDnaute Occasionnel
Re : recuperation d'une adresse mail dans exce

Ca marche; mais j'en ai bavé pour cette histoire de "Microsoft form 2.0 objet library" qui n'est pas présente sous office 2010;

Voila donc l'astuce : il faut donc telecharger le dll ( fm20.dll ) le placer dans system32 et ensuite via l'éditeur vba rajouter la référence , non pas en cherchant une case à cocher qui n'existe pas mais en cliquant sur parcourir puis en cliquant sur fm20.dll qui rajoutera la référence magique avec la case cochée.

Merci à tous

la fameuse dll est en pièce jointe
 

Pièces jointes

  • fm20.zip
    535.9 KB · Affichages: 27

Discussions similaires

Réponses
2
Affichages
300
Réponses
1
Affichages
153
Compte Supprimé 979
C