Aide SVP - VBA & Manipulation LDAP

Aide SVP - VBA & Manipulation LDAP - VB/VBA/VBS - Programmation

Marsh Posté le 29-06-2005 à 17:23:17    

Bonsoir à tous,
 
Alors voilà j'ai un annuaire LDAP dans lequel je veux extraire des informations d'utilisateurs qui ne possèdent qu'une certaine valeur pour une certaine propriété.
 
J'ai trouvé ce code :
 
Public Function chercheruser()
 
    Dim entry As New System.DirectoryServices.DirectoryEntry("LDAP://OU=mon_OU1,OU=User,OU=Accounts,DC=mon_domaine1,DC=mon_domaine2,DC=com" )
    Dim mySearcher As New System.DirectoryServices.DirectorySearcher(entry)
    Dim result As System.DirectoryServices.SearchResult
 
    mySearcher.Filter = ("(cn='j*')" )
 
    For Each result In mySearcher.FindAll()
 
        'Traitement
 
    Next
 
End Function
 
Problème : c'est du .NET et j'aimerai faire ça dans du VBA. Pourriez vous m'aider SVP.
 
J'ai un truc qui marche du style :
 
    ADSIPath = "LDAP://OU=mon_OU1,OU=User,OU=Accounts,DC=mon_domaine1,DC=mon_domaine2,DC=com"
 
    Set objOU = GetObject(ADSIPath)
 
    For Each objOUMember In objOU
 
        If (objOUMember.cn = "j*" )Then
 
            'Traitement
 
        End If
 
    Next
 
Mais le problème avec cette solution c'est que je teste ma condition dans la boucle et comme j'ai 4000 utilisateurs à cet endroit là et beh ça met en moyenne 7 min !
En gros : COMMENT PUIS-JE FAIRE POUR GAGNER DU TEMPS ? Je crois que c'est possible avec un filtre, mais comment ?
 
SVP, aidez moi. Merci.

Reply

Marsh Posté le 29-06-2005 à 17:23:17   

Reply

Marsh Posté le 30-06-2005 à 08:39:51    

Personne ne peut m'aider ?
 
En fait pour résumer je descends correctement dans la bonne unité d'organisation que je veux grâce au chemin LDAP mais le problème est que dans cette OU il y a 4000 utilisateurs et il y en a que 26 qui m'intéresse pour mon extraction !!!
Jusqu'à maintenant je bouclais sur les 4000 et je regardais si pour chacun la condition était remplie : seulement ça, ça met environ 10 min. Je voudrai pouvoir optimiser l'extraction avec un filtre.
 
 
SVP... Merci

Reply

Marsh Posté le 30-06-2005 à 09:45:34    

à croire que ça n'inspire vraiment personne...
Je suis sur que c'est pas dur à faire mais moi sans un ptit bout d'aide je n'y arriverai pas.

Reply

Marsh Posté le 30-06-2005 à 12:44:22    

je suis toujours en train de chercher donc si toutefois une ame charitable pouvait me dépanner...

Reply

Marsh Posté le 30-06-2005 à 16:10:34    

dites moi au moins si c'est possible SVP
c'est très important pour moi

Reply

Marsh Posté le 30-06-2005 à 16:23:13    

Salut,
Je ne suis pas un expert (loin de là!) mais il me semble qu'un filtre fonctionne justement sur le principe d'une condition.... donc en fait ta condition
      If (objOUMember.cn = "j*" )
est déjà un filtre.......
me suis-tu?
Bref, il me semble que tu ne peux pas filtrer tes 4000 utilisateurs sans parcourir auparavant toute la liste... dc perdre 10 min.
Le seul moyen que j'ai trouvé pour gagner du temps avec les macro, c'est de travailler avec des matrice/tableau plutot qu'avec des cellules (je bosse sur excel). en clair tu transferre ta base dans un tableau virtuel puis tu bosse avec ce tableau.
Sans mentir, je suis passé de 70 MINUTES à 35 SECONDES pour l'exécution d'une macro grace à cette technique.
Je peux t'assurer que mon maitre de stage était content ;)
 
Moi aussi je bloque sur un truc, si tu pouvais m'aider... j'ai laisé un post.. Merci!

Reply

Marsh Posté le 30-06-2005 à 16:40:28    

moi aussi c pour mon stage !
Le problème c'est que je veux pas passer par un doc excel car j'évite déjà un csv volontairement alors c'est pas pour derrière repasser par un xls

Reply

Marsh Posté le 30-06-2005 à 16:42:52    

ps : je viens de lire ton poste, dsl mais je suis également novice en vba donc là...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed