Bonjour,
je voudrais écrire une fonction qui écrit dans un range de cellules les groupes auxquels appartient un utilisateur de l'AD et je voudrais en même temps que cette fonction me retourne le nombre de groupes trouvés.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
Function dgnLdapUserGroups(sDomain1 As String, sDomain2 As String, sLogin, sRangeDestName As String) As String
 
    Dim sQuery, objUser, Group
    Dim sResult, arrMemberOf ', intPrimaryGroupID
    Dim nOffset
 
    DoEvents
On Error GoTo Handle_Error
 
    ' recupere l'adspath du user
    sQuery = dgnLdapQueryLogin(sDomain1, sDomain2, sLogin, "adspath")
    If sQuery = "" Then
        dgnLdapUserGroups = ""
        Exit Function
    End If
 
    ' recupere l'objet user correspondant
    Set objUser = GetObject(sQuery)
 
    ' recupere la liste des groupes
    arrMemberOf = objUser.GetEx("memberOf")
 
    ' boucle sur les groupes
    sResult = ""
    nOffset = 0
    For Each Group In arrMemberOf
        Range("test").Offset(nOffset) = Group
        nOffset = nOffset + 1
    Next
 
    ' retour du resultat
    dgnLdapUserGroups = Format$(nOffset)
    Exit Function
 
Handle_Error:
    dgnLdapUserGroups = ""
    MsgBox Err.Description
    Exit Function
End Function
J'appelle cette fonction dans une cellule. Quand la cellule est mise à jour et appelle la fonction, ça plante au niveau du :
Range("test").Offset(nOffset) = Group
avec l'erreur
Erreur définie par l'application ou par l'objet
Quelqu'un a une idée ?
merci