J'essaie de puiser dans le carnet d'adresses global outlook d'entreprise à partir d'Excel en utilisant VBA. À l'heure actuelle, il est configuré pour regarder une sélection de cellules dans une feuille de calcul (en supposant que la sélection contient des ID utilisateur) et boucle sur chaque ID utilisateur (alias) et fournir un message simple indiquant s'il se trouve ou non dans le carnet d'adresses. Le problème que j'ai est que la société pour laquelle je travaille a des longueurs d'alias différentes selon la fonction de votre travail (par exemple, les associés de champ ont 14 caractères, les associés de QG sont 6 caractères). Dans certains cas, un alias provenant d'un associé HQ correspond aux 6 premiers caractères d'un champ associé (par exemple, pbogar & pbogart.s04598). Dans ces cas, l'alias (pbogar) ne peut pas être résolu. Est-il possible d'afficher la même boîte de dialogue "vérifier les utilisateurs" qu'Outlook afficherait s'il y a plusieurs utilisateurs partageant les mêmes caractères d'un alias? ou pour vous assurer que quand il se nourrit de ce code, il ne regarde que l'alias d'une certaine longueur de caractère du carnet d'adresses global?Excel VBA Outlook.Recipients.Add ("Alias") - traitant des éléments non résolus
code:
Sub UserID_From_Email_Selection()
Dim OutApp As Object
Dim OutMail As Object
Dim Recip As Object
Dim Cell As Range
On Error GoTo err
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
For Each Cell In Selection
If Cell.Value <> "" Then
Set Recip = OutMail.Recipients.Add(Cell.Value)
Recip.Resolve
If Recip.resolved Then
MsgBox (Recip & ": Resolved")
Else
MsgBox (Recip & ": Unresolved")
End If
Recip.Delete
Set Recip = Nothing
End If
Next Cell
On Error GoTo err
Set OutMail = Nothing
Set OutApp = Nothing
Exit Sub
err:
On Error Resume Next
Set Recip = Nothing
Set OutMail = Nothing
Set OutApp = Nothing
End Sub