![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Nouveau membre du Club
![]() |
Bonjour,
Moi j'utilise Outlook 2003 et je souhaiterais utiliser les contacts partagés Outlook avec du VBA. J'ai bien trouvé comment utiliser un carnet d'adresse personnel (via MAPIFOlder) mais pas le carnet d'adresse partagé avec toute l'entreprise :-s Savez-vous comment procéder? Merci d'avance, Stéphane |
|
|
|
|
|
#2 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
|
Salut,
Lorsque tu va manuellement dans ce dossier il est où ? dans les "dossiers publics" ?
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#4 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
|
Donc lorsque tu cliques sur nom... tu obtiens "selectionner un nom"
dans "afficher les noms de " tu as quoi ?
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#6 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
|
Salut,
Essaye avec ceci : Code :
Private Sub ListeElementsConteneur() 'exchange strNomSite = "SITE" strNomServeur = "SERVEUR" Set rootDSE = GetObject("LDAP://" & strNomServeur & "/RootDSE") contPath = "LDAP://" & strNomServeur & "/" & "CN=Recipients," & "OU=" & strNomSite & "," & rootDSE.get("defaultNamingContext") Set cont = GetObject(contPath) cont.Filter = Array("organizationalPerson") strListeBal = "" For Each bal In cont strListeBal = strListeBal & bal.Name & "-" & bal.Mail & vbCrLf Next strListeDl = "" cont.Filter = Array("groupOfNames") For Each dl In cont strListeDl = strListeDl & dl.Name & vbCrLf Next MsgBox "Boîtes aux lettres : " & vbCrLf & strListeBal MsgBox "Listes de distribution" & vbCrLf & strListeDl End Sub
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#7 (permalink) |
|
Nouveau membre du Club
![]() |
Bonjour Oliv,
Je pense qu'on se rapproche de la solution, mais non, ça ne marche pas :s Là j'ai remplacé strNomServeur par mon serveur (Je ne sais pas quoi mettre dans strNomSite) mais le code plante en ligne 3 (Set rootDSE =...) -> Code :
Erreur d'éxécution '-2147016646 (8007203a)': Erreur Automation Le serveur n'est pas opérationnel |
|
|
|
|
|
#8 (permalink) |
|
Nouveau membre du Club
![]() |
En fait j'ai cherché dans cette voie et j'ai réussi à faire ce que je voulais :
Code :
monUser = "rstephane" ' Connexion Set objDSE = GetObject("LDAP://rootDSE") Set oConnection = CreateObject("ADODB.Connection") oConnection.Provider = "ADsDSOObject" oConnection.Open "ADs Provider" sFilter = "(&(objectclass=user)(samaccountname=" & monUser & "))" ' champ(s) demandé(s) ' ------------------- champs = ";givenName,SN,distinguishedName,userPrincipalName,mail,description" ' Niveau de profondeur de recherche dans les OU ' --------------------------------------------- profondeur = ";subtree" ' Construction de la requète ' -------------------------- Requete = "<LDAP://" & objDSE.Get("defaultNamingContext") & ">;" & sFilter & champs & profondeur ' execution de la requete ' ----------------------- Set oRecordSet = oConnection.Execute(Requete) nbRecord = oRecordSet.RecordCount If nbRecord = 0 Then MsgBox "Planté !!! Utilisateur " & monUser & " non trouvé" oConnection.Close Else MsgBox "Nombre d'enregistrement = " & nbRecord End If prenom = oRecordSet.Fields("givenName").Value nom = oRecordSet.Fields("SN").Value UserDName = oRecordSet.Fields("distinguishedName").Value UserPName = oRecordSet.Fields("userPrincipalName").Value Email = oRecordSet.Fields("mail").Value Description = oRecordSet.Fields("Description").Value ' extraction nom OU la plus basse partie = Split(UserDName, ",") OU = Right(partie(1), Len(partie(1)) - 3) ' Affichage des infos recuperees ' ------------------------------ MsgBox "prenom: " & prenom MsgBox "nom: " & nom MsgBox "login: " & login MsgBox "Email: " & Email MsgBox "OU: " & OU oConnection.Close |
|
|
|
|
![]() |
![]() |
||
Utilisation Carnet d'adresse partagé avec VBA
|
||
| Outils de la discussion | |
|
|