VBA : Gestion de lignes dans une feuille Excel

Signaler
Messages postés
1
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
2 septembre 2006
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour à tous,

Débutant en VBA, j'aurai besoin de votre expèrienceainsi que de votre aide.
J'ai réalisé une petite macro en VBA dans une feuille Excel.L'objectif étant de créer en masse dans l'AD des users. Le script par lui-même tourne bien mais par contre, je suis dans l'obligation de modifié une valeur à la ligne 7 suivant le nombre de lignes dans ma feuille Excel.
Exemple : J'ai 3 lignes dans ma feuille Excel donc For i = 2 To 3
Ma question : Comment faire boucler mon script pour qu'il ne bug pas quelque soit le nombre de lignes ?
Autre question, concernant les doublons, quel est le code à insérer pour que lorsque j'ai 2 users portant le même nom donc le même login le script incrèmente le login avec un chiffre +1 (login1, login2, login3, etc.)
Voici mon code :

Sub ajout()

Dim i As Integer, nbreLigne As Integer
Dim objUser As Object
Dim strPath

For i = 2 To 17
   strPath = "LDAP://serveur/OU=" & Cells(i, 8).Value & ",OU=ETUDIANTS,dc=mondomaine,dc=mon extension"
   Set objOU = GetObject(strPath)
   Set objUser = objOU.create("user", "cn=" & Cells(i, 2).Value)
   objUser.put "sAMAccountName", Cells(i, 5).Value
   objUser.put "userPrincipalName", Cells(i, 5).Value
   objUser.setinfo
   
   strPath = "LDAP://serveur/cn=" & Cells(i, 2).Value & ",OU=" & Cells(i, 8).Value & ",OU=ETUDIANTS,dc=mon domaine,dc=mon extension"
   Set objUser = GetObject(strPath)
   'objUser.AccountDisabled = False
   objUser.put ("givenName"), Cells(i, 4).Value
   objUser.put ("displayname"), Cells(i, 2).Value
   objUser.put ("sn"), Cells(i, 3).Value
   objUser.put ("description"), Cells(i, 1).Value
   
   If IsEmpty(Cells(i, 7)) = False Then
       objUser.put ("mail"), Cells(i, 7).Value
   End If
   If IsEmpty(Cells(i, 9)) = False Then
       objUser.put ("physicalDeliveryOfficeName"), CStr(Cells(i, 9).Value)
   End If
   objUser.setpassword Cells(i, 6).Value
   objUser.put "userAccountControl", 64 'ADS_UF_DONT_EXPIRE_PASSWD '64
   objUser.put "userAccountControl", 65536   ' ADS_UF_PASSWD_CANT_CHANGE '65536
   objUser.setinfo
Next i

End Sub

Merci pour votre aide.

<!--c2-->
<!--c2-->

1 réponse

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

Pour ta première demande, utilise mon snippetpour trouver par code la 1ère ligne vide dans une feuille excel (il suffit de faire - 1, pour avoir la dernière ligne utilisée)

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--