begin process at 2012 02 09 23:07:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Récupérer adresses mails de la liste globale d'adresses Outlook


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer adresses mails de la liste globale d'adresses Outlook

jeudi 26 février 2009 à 19:38:35 | Récupérer adresses mails de la liste globale d'adresses Outlook

kkhuet

Bonjour,

tout est dans le titre : j'ai un nom et un prénom, et je voudrais savoir si c'est possible de récupérer son adresse mail dans la liste d'adresses globale de mon Outlook depuis une base de données Access 2000, dans mon code VB.
J'ai bien trouvé ceci : http://www.vbfrance.com/codes/CARNET-ADRESSE-OUTLOOK-VERS-EXCEL-OFFICE-2003-VS_45694.aspx mais ça ne fonctionne qu'avec le dossier Contacts, peut-être y a-t-il un moyen de l'adapter pour accéder à la liste d'adresses globale ?
J'ai également trouvé ce lien : [ Lien ] mais par cette méthode, on ne peut à priori pas récupérer l'adresse mail...

Quelqu'un a une idée ?
Merci


jeudi 26 février 2009 à 20:17:44 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

Orohena

Bonjour

J'ai écrit la procédure ci-dessous en VBA Excel, mais je pense que tu n'auras aucune difficulté pour l'adapter pour Access.

Option Explicit
Sub liste_adresses_globales()
    Dim OutlookOlApp As Object
    Dim OutlookNameSpace As Namespace
    Dim nom As String, tabnom(1000) As String
    Dim ptr As Integer
    Dim adlst As AddressList
    Dim cnt1 As Integer
    Dim cnt2 As Integer
    Set OutlookOlApp = CreateObject("Outlook.Application")
    Set OutlookNameSpace = OutlookOlApp.GetNamespace("MAPI")
    cnt1 = 1
    Do Until LCase(OutlookNameSpace.AddressLists(cnt1)) = "liste d'adresses globale" _
        Or cnt1 = OutlookNameSpace.AddressLists.Count
        cnt1 = cnt1 + 1
    Loop
    Set adlst = OutlookNameSpace.AddressLists(cnt1)
    If Not LCase(OutlookNameSpace.AddressLists(cnt1)) = "liste d'adresses globale" Then
        MsgBox "L'application ne parvient pas à accéder à votre 'Liste d'adresses globales' outlook."
        Exit Sub
    End If
    cnt2 = adlst.AddressEntries.Count
    Application.ScreenUpdating = False          ' desactive la mise a jour de l'ecran
    For cnt1 = 1 To cnt2
        DoEvents
        Cells(cnt1, 1).Value = adlst.AddressEntries(cnt1)
    Next
    Application.ScreenUpdating = True           ' reactive la mise a jour de l'ecran
End Sub

Amicalement

vendredi 27 février 2009 à 08:45:14 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

loulou69

Oroena t'a répondu

Voici u code a tourné dans Access.

Email= ChercherAdresseEmail(nom & prenom)


Private Function ResoudreAdresse(ByVal str_adresse As String, Optional obj_adresse As Outlook.AddressEntry) As String

Dim app_outlook As Outlook.Application
Dim obj_message As Outlook.MailItem
Dim obj_destinataire As Outlook.Recipient

Set app_outlook = New Outlook.Application
Set obj_message = app_outlook.CreateItem(olMailItem)
Set obj_destinataire = obj_message.Recipients.Add(str_adresse)
If Not obj_destinataire.Resolve Then
    ResoudreAdresse = ""
    Set obj_adresse = Nothing
Else
    ResoudreAdresse = obj_destinataire.Name
    Set obj_adresse = obj_destinataire.AddressEntry
End If
obj_message.Delete
   
End Function

Function ChercherAdresseEmail(str_contact As String) As String

Dim obj_adresse As Outlook.AddressEntry

If Len(ResoudreAdresse(str_contact, obj_adresse)) > 0 Then
    ChercherAdresseEmail = obj_adresse.Address
Else
    ChercherAdresseEmail = ""
End If

End Function

vendredi 27 février 2009 à 10:08:43 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

kkhuet

Bonjour,

merci pour ces réponses, je viens de tester les 2 codes mais ça me donne exactement le même résultat que le 2ème lien que j'ai donné, à savoir une chaîne de caractères "/o=xxxxx/ou=FR/cn=Recipients/cn=yyyyyyy". Je ne vois pas d'adresse mail, peut-être en manipulant 'Recipients' ?..Il doit bien y avoir un moyen de récupérer toutes les infos d'un utilisateur (mail, société, ville etc...) !

vendredi 27 février 2009 à 12:07:45 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

loulou69

Essayer
ChercherAdresseEmail =obj_adresse.RecipAddress
vendredi 27 février 2009 à 12:12:47 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

kkhuet

test effectué --> message d'erreur "Propriété ou méthode non gérée par cet objet", ça doit être parce que j'utilise Access 2000..
vendredi 27 février 2009 à 12:50:39 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

loulou69

Desole
On ne peut pas avoir linformation aussi simplement
Ce doit etre un pb de protection
Je crois que la recuperation de ladresse email  nest possible que via les contacts

lundi 2 mars 2009 à 14:17:43 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

kkhuet

Bonjour,

encore une autre piste avec ceci :
http://209.85.229.132/search?q=cache:_kFPYau5aTwJ:download.microsoft.com/download/6/2/7/627bd63a-fc8c-4862-80f2-5e8f5174edaf/cdo.doc+AfficherAdresses()+Dim+objSession+As+MAPI.Session&hl=fr&ct=clnk&cd=2&gl=fr
par contre, ce bout de code ouvre une fenêtre d'Outlook dans laquelle on choisit une liste d'adresses et une personne, et je suis une grosse quiche parce que je n'arrive pas à mettre par défaut la lise d'adresses globale et un nom en particulier, dans le code..Quelqu'un comprend-il ce bout de code ?
Je vais peut-être y arriver..

lundi 2 mars 2009 à 14:43:05 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

kkhuet

Réponse acceptée !

je suis trop contente !!!! J'ai trouvé, voilà la solution pour ceux qui galèrent :

Public Sub AfficherAdresses()

     Dim objSession As MAPI.Session
     Dim objField As MAPI.Field
     Dim v

     Set objSession = CreateObject("MAPI.Session")
     objSession.Logon "st31844"

     ' Récupération de la propriété PR_EMS_AB_PROXY_ADDRESSES
     Set objField = objSession.AddressLists("Liste d'adresses globale").AddressEntries.Item("nom prénom").Fields(CdoPR_EMS_AB_PROXY_ADDRESSES)

     ' ATTENTION : PR_EMS_AB_PROXY_ADDRESSES est une propriété multivaluée
      ' (PT_MV_TSTRING).
     For Each v In objField.Value
         If InStr(v, "@") <> 0 Then
            MsgBox Right(v, Len(v) - 5)
        End If
     Next

    Set objField = Nothing
    objSession.Logoff
    Set objSession = Nothing

End Sub
Par contre, je ne sais pas encore comment cette fonction réagit quand la personne qu'on cherche a des homonymes..Je reviendrai sûrement sur ce poste si je trouve..

lundi 2 mars 2009 à 15:14:38 | Re : Récupérer adresses mails de la liste globale d'adresses Outlook

kkhuet

oups j'ai oublié de vous mettre ça dans le code :

Private Const CdoPR_EMS_AB_PROXY_ADDRESSES = &H800F101E

1 2

Cette discussion est classée dans : outlook, récupérer, liste, globale, adresses


Répondre à ce message

Sujets en rapport avec ce message

Récupérer les adresses E-Mail des expéditeurs dans Outlook [ par Yogi ] Bonjour,J'aimerais créer une moulinette sous Vb qui me permettrait de transférer toutes les adresses E-Mail des expéditeurs sous un fichier texte par vb outlook liste globale des contacts [ par jullouyot_46 ] Bonjour,je réalise une appli vb dans laquelle je commence par récupérer les contacts outlook (2003).Je parviens à récupérer les contacts de l'utilisat Liste Adresses [ par bulgom ] Bonjour a tous, Je profite egalement de ce message pour souhaiter a toute l'equipe et aux membres une excellente annee 2006 et pleins de bonnes choses Récupérer des infos sur une machine du réseau [ par antoine1183 ] Bonjour, j'ai trois petites questions comment faire pour afficher la liste des quotas disques qui se trouve sur une machine du domaine ? Pour récupére Récupérer une liste de répertoire [ par Flux__ ] Bonjour,Je cherche à récupérer une liste de répertoire dans un fichier.J'ai pondu ce bout de batch :@echo offclssetlocal ENABLEDELAYEDEXPANSIONfor /F Cherche API pour savoir qui a le focus [ par PROGRAMMIX ] Je voudrais me créer un carnet d'adresses mail unique et transportable ; chez moi, j'utilise Outlook et au boulot, c'est GroupWise (application faisan Outlook Liste de diffusion [ par sangho ] bonjour,Je souhate envoyer un mail avec outlook.Pour cela, j utilise le code suivant :Dim MonOutlook As Outlook.ApplicationDim MonMessage As Outlook.M récupérer une référence d'un élément sélectionné dans une liste déroulante [ par keopsk ] Bonjour,J'ai une liste de référence que je dois afficher dans une liste déroulante. Jusqu'à présent j''utilise une combobox pour sélectionner un éléme Récupérer la liste des requêtes sous Autodesk Map 3d [ par Ricky65 ] Bonjour,Je travaille avec l'éditeur VBA présent dans Autodesk Map 3DMa question est très simple :Comment afficher dans une combobox, la liste des requ Récupérer dans une liste , la selection de la colonne 1, 2 et 3 [ par byob ] Bonjour, J'affiche une liste no_operateur, nom_operateur et prenom_operateur.Quand l'utilisateur selectionne une ligneje recupere la colonne lié n°1 :


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,841 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales