J'ai un code VBA pour obtenir la liste d'adresses globale entière d'Outlook 2013 et placer les valeurs Name
et dans une feuille Excel. Le problème est que je ne renvoie que des e-mails/utilisateurs de mon SMTP (je suppose).Copier les contacts de la liste d'adresses globale, y compris les contacts externes
Dans cette image, nous pouvons voir les utilisateurs du SMTP comme le mien couvert en noir et un utilisateur externe recouvert de rouge. Mon code:
Sub tgr()
Dim appOL As Object
Dim oGAL As Object
Dim oContact As Object
Dim oUser As Object
Dim arrUsers(1 To 75000, 1 To 2) As String
Dim UserIndex As Long
Dim i As Long
Set appOL = CreateObject("Outlook.Application")
Set oGAL = appOL.GetNameSpace("MAPI").AddressLists("Global Address List").AddressEntries
For i = 1 To oGAL.Count
Set oContact = oGAL.Item(i)
If oContact.AddressEntryUserType = 0 Then
Set oUser = oContact.GetExchangeUser
If Len(oUser.lastname) > 0 Then
UserIndex = UserIndex + 1
arrUsers(UserIndex, 1) = oUser.Name
arrUsers(UserIndex, 2) = oUser.PrimarySMTPAddress
End If
End If
Next i
appOL.Quit
If UserIndex > 0 Then
Range("A2").Resize(UserIndex, UBound(arrUsers, 2)).Value = arrUsers
End If
Set appOL = Nothing
Set oGAL = Nothing
Set oContact = Nothing
Set oUser = Nothing
Erase arrUsers
End Sub
Alors, est-ce que je fais quelque chose de mal?
Oui. Tu as raison. En utilisant "oContact.AddressEntryUserType = 0 ou oContact.AddressEntryUserType = 5" il a retourné le même résultat précédent + un autre 7k contacts. Y compris les e-mails hors de mon domaine. Mais je vois encore certaines adresses dans la liste d'adresses globale dans Outlook et elles ne sont pas renvoyées dans la feuille en utilisant ce code. – MWsan