Bonjour,
Voici mon problème : j'ai une fonction qui me permet de automatiquement vérifier si a un identifiant correspond une adresse mail. Cette fonction va ensuite afficher le Display name dans un champs. Cependant, je voudrais afficher l'adresse complète à la place.
Voici la fonction en question :
La ligne qui m'intéresse est la suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Sub checkEmail() Dim appOutLook As Object Dim olContactItem, olMailItem Dim myItem, oEmail Set appOutLook = CreateObject("Outlook.Application") Set oEmail = appOutLook.CreateItem(olMailItem) oEmail.To = Dlg.Txt_Email.Value If (oEmail.Recipients.ResolveAll) Then Dlg.Txt_Email = oEmail.To Dlg.CheckEmailButton.Caption = "check OK" Dlg.CheckEmailButton.ForeColor = &HC000& Else oEmail.To = Dlg.Liste_login.Value If (oEmail.Recipients.ResolveAll) Then Dlg.Txt_Email = oEmail.To Dlg.CheckEmailButton.Caption = "check OK" Dlg.CheckEmailButton.ForeColor = &HC000& Else oEmail.To = Dlg.Txt_Nom & ", " & Dlg.Txt_Prenom If (oEmail.Recipients.ResolveAll) Then Dlg.Txt_Email = oEmail.To Dlg.CheckEmailButton.Caption = "check OK" Dlg.CheckEmailButton.ForeColor = &HC000& Else Dlg.CheckEmailButton.Caption = "check KO" Dlg.CheckEmailButton.ForeColor = &HFF& End If End If End If End Sub:
C'est celle la qui va chercher le display name de l'objet Outlook pour remplir le champ Dlg.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dlg.Txt_Email = oEmail.To
J'ai lu pas mal de doc, et j'ai essayé quelque chose dans le style
ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dlg.Txt_Email = oEmail.Recipients(1).Address
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dlg.Txt_Email = oEmail.Recipients(oEmail.To).Address
Mais dans le 1e et 2e cas ça me renvoi un truc dans le genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dlg.Txt_Email = oEmail.Recipients(oEmail.To).AddressEntry
/o=HMR/ou=Exchange Administrative Group (XXXXXXXXXXXX)/cn=Recipients/cn=userxxxxxx (j'ai volontairement mis des X a la place des valeurs)
et dans le 3e cas, le display name et non l'adresse mail
Si vous avez la solution, vous m’épargnerai des heures supplémentaires de recherche infructueuses, j'ai déjà passé des heures sur la doc à tester plein de solutions qui pour moi devrais fonctionner mais ....
J'ai cru trouver la solution avec ce code :
que j'ai trouvé sur un autre post en rapport avec le mien, mais les fonctions utilisés sont pour excel 2013 ou + ... je suis sous 2010
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Function RetrouveAdress(stAddress As String) As String Dim oNSP As Outlook.Namespace Dim oRec As Outlook.Recipient Dim oExUser As Outlook.ExchangeUser Set oNSP = Application.GetNamespace("MAPI") Set oRec = oNSP.CreateRecipient(stAddress) Set oExUser = oRec.AddressEntry.GetExchangeUser() RetrouveAdress = oExUser.PrimarySmtpAddress Set oNSP = Nothing Set oRec = Nothing Set oExUser = Nothing End Function
Merci d'avance
Kathary
edit : pour apporter plus de précisions sur le contexte : cette fonction est lancé a chaque fois qu'on entre un caractère dans le champ spécifié avant le 1e "if". Le but est de transformer un identifiant en destinataire d'un mail. Un mail peut être envoyé avec le display name cependant a cause de problèmes d'alias et de plusieurs display name identiques pour une adresse différente, je cherche à afficher l'adresse mail à la place.
Partager