'Autre possibilité ci-dessous, pour remplir une combo et éviter les doublons
Public Sub listemail(ByRef obj As ComboBox)
Dim x, i As Long
Dim a As Object
Dim out As Object
Dim mapi As Object
Dim ctrlists As Integer
Dim info As MapiRecip
Dim ancien As String
Dim tt As String
On Error GoTo err
Screen.MousePointer = 11
Set out = CreateObject("Outlook.application")
Set mapi = out.GetNameSpace("MAPI")
obj.Clear
ancien = ""
For ctrlists = 1 To mapi.AddressLists.Count
Set a = mapi.AddressLists(ctrlists)
For x = 1 To a.AddressEntries.Count
i = MAPIResolveName(0, 0, a.AddressEntries(x), 0, 0, info)
tt = Replace(info.Address, "SMTP:", "")
If InStr(tt, "@") And ancien <> tt Then
obj.AddItem Replace(info.Address, "SMTP:", "")
ancien = tt
End If
DoEvents
Next
DoEvents
Next
Set out = Nothing
Set mapi = Nothing
Screen.MousePointer = 0
Exit Sub
err:
Screen.MousePointer = 0
MsgBox Error$, vbExclamation, App.EXEName
End Sub
|