|
|
|
|
bonjour
"cn_cel = Range("B2").Value " devient "cn_cel = Range("B2").offset(lig).Value " et tu fais progresser la variable lig for lig =1 to max ' ta valeur maximum ton code next lig je ne connais pas assez AD pour te donner la 2ème réponse. toujours zen |
Merci pour ta répponse,
j'ai encore un peu avancé grace à cela, mais certaines erreurs subsistent. Mon tableau (a importer) est parsemé de cellules vides, lorsque je compile mon code, il s'arrete sur la ligne qui correspond a la cellule vide. Ma premiere solution serait de lancer une macro qui complete les cellules vides du tableau, mais je suppose qu'il doit y avoir moyen de lui faire ignorer les cellules vides....mais comment J'aimerais egalement rassembler deux variables dans la ligne suivante, cad que cn soit egal a cn_cel+giv_cel est ce que ceci peut suffire? Set oUser = objOU.Create("contact", "cn='cn_cel giv_cel'") Encore un grand merci, sans un peu d'aide je suis nulle part... |
bonjour
"je suppose qu'il doit y avoir moyen de lui faire ignorer les cellules vides....mais comment" 'cn_cel = Range("B2").Value ' devient : if not Range("B2").Value = "" then cn_cel = Range("B2").Value "J'aimerais egalement rassembler deux variables dans la ligne suivante, cad que cn soit egal a cn_cel+giv_cel cn_cel = Range("B2").Value dis_cel = Range("C2").Value devient : cn_xxx = Range("B2").Value & Range("C2").Value par exemple. zoneA & zoneB concatene deux zones texte, alors ctrA + ctrB cumule deux nombres. toujours zen |
Re-merci
Revoici le code, Sub test() Worksheets("import_oracle").Select For lig = 0 To 10 If Not Range("E2").Offset(lig).Value = "" Then mail_cel = Range("E2").Offset(lig).Value If Not Range("B2").Offset(lig).Value = "" Then givenName_cel = Range("B2").Offset(lig).Value If Not Range("C2").Offset(lig).Value = "" Then lastname_cel = Range("C2").Offset(lig).Value If Not Range("F2").Offset(lig).Value = "" Then street_cel = Range("F2").Offset(lig).Value If Not Range("O2").Offset(lig).Value = "" Then company_cel = Range("O2").Offset(lig).Value If Not Range("G2").Offset(lig).Value = "" Then l_cel = Range("G2").Offset(lig).Value If Not Range("D2").Offset(lig).Value = "" Then homephone_cel = Range("D2").Offset(lig).Value If Not Range("J2").Offset(lig).Value = "" Then mob_cel = Range("J2").Offset(lig).Value If Not Range("B2").Offset(lig).Value = "" Then oth_cel = Range("B2").Offset(lig).Value If Not Range("B2").Offset(lig).Value = "" Then phy_cel = Range("B2").Offset(lig).Value If Not Range("I2").Offset(lig).Value = "" Then pos_cel = Range("I2").Offset(lig).Value If Not Range("H2").Offset(lig).Value = "" Then postalcode_cel = Range("H2").Offset(lig).Value If Not Range("B2").Offset(lig).Value = "" Then st_cel = Range("B2").Offset(lig).Value If Not Range("M2").Offset(lig).Value = "" Then description_cel = Range("M2").Offset(lig).Value If Not Range("D2").Offset(lig).Value = "" Then telephonenumber_cel = Range("D2").Offset(lig).Value If Not Range("I2").Offset(lig).Value = "" Then co_cel = Range("I2").Offset(lig).Value If Not Range("N2").Offset(lig).Value = "" Then tit_cel = Range("N2").Offset(lig).Value If Not Range("B2").Offset(lig).Value = "" Then www_cel = Range("B2").Offset(lig).Value If Not Range("J2").Offset(lig).Value = "" Then mobile_cel = Range("J2").Offset(lig).Value If Not Range("K2").Offset(lig).Value = "" Then fax_cel = Range("K2").Offset(lig).Value cn_xxx = Range("B2").Offset(lig).Value & " " & Range("C2").Offset(lig).Value Set objOU = GetObject("LDAP://OU=Paul Contact, dc=mydomain, dc=com") Set oUser = objOU.Create("contact", "cn=test") oUser.Put "displayName", cn_xxx oUser.Put "mail", mail_cel oUser.Put "givenName", givenName_cel oUser.Put "sn", lastname_cel oUser.Put "streetAddress", street_cel oUser.Put "description", description_cel oUser.Put "company", company_cel oUser.Put "homePhone", homephone_cel oUser.Put "telephoneNumber", telephonenumber_cel oUser.Put "otherTelephone", oth_cel oUser.Put "physicalDeliveryOfficeName", phy_cel oUser.Put "postOfficeBox", pos_cel oUser.Put "facsimileTelephoneNumber", fax_cel oUser.Put "postalCode", postalcode_cel oUser.Put "st", st_cel oUser.Put "mobile", mobile_cel oUser.Put "l", l_cel oUser.Put "co", co_cel oUser.Put "Title", tit_cel oUser.Put "wWWHomePage", "www.123.be" oUser.SetInfo Next lig End Sub Mais je crois que je fais une boulette en utilisant le code que tu me propose, il continue de bloquer sur les cellules vides (mea culpa?)et dans la ligne Set oUser = objOU.Create("contact", "cn=test") en utilisant cela il me crée un contact nommé test et puis bloque sur : oUser.SetInfo (sans soute car le contact test existe déjà) le probleme est que je ne comprends pas bien comment mettre la concatenation de cn_xxx. si je fais cela, Set oUser = objOU.Create("contact", "cn=cn_xxx") il me crée un contact nommé cn_xxx (ce qui me semble logique), quel serait le code pour qu'à chaque boucle il me crée un contact dont le nom serait égal à cn_xxx |
bonjour
" il continue de bloquer sur les cellules vides (mea culpa?)et dans la ligne" à quel endroit de la macro bloque-t-il ? et avec quel code ? Set oUser = objOU.Create("contact", "cn=cn_xxx") il me crée un contact nommé cn_xxx (ce qui me semble logique), Bien sûr, car lorsque tu mets entre guillemets, c'est le contenu du libellé qui est utilisé. Set oUser = objOU.Create("contact", "cn=" & cn_xxx) permet de prendre le contenu de la zone toujours zen |
il bloque par exemple sur la ligne
oUser.Put "description", description_cel en regardant dans mon tableau, la cellule en question est vide (M2). Je fais un test en ajoutant une valeur "test" dans la cellule vide, a nouveau plantage sur la meme ligne. Donc me vient l'idée que ce n'est pas la macro qui plante mais bien l'input dans AD, alors je remplace ma cellule vide par 32-123456789, et tant qu'on y est je remplace toutes les cellules vides du tableau par 32-... Tout fonctionne, il me crée bien tous les contacts dans Active directory (et en plus avec le cn_xxx impeccable !) Conclusion: ?? J'ai testé différentes valeurs pour remplir les cellules vides, mais seul le xx-xxxxxxxxx semble fonctionner, Ce qui pourrait bien confirmer l'idée... Donc l'autre solution serait de mettre des conditions pour que la ligne oUser.Put "description", description_cel disparaisse quand la cellule du tableau est vide et de même pour les autres cellules. Je continue de chercher, toujours zen :-) Encore mille merci pour ton aide |
bonsoir
tu as : If Not Range("M2").Offset(lig).Value = "" Then description_cel = Range("M2").Offset(lig).Value puis oUser.Put "description", description_cel en fait il serait plus judicieux de supprimer les premières lignes, ce qui donnerait : If Not Range("M2").Offset(lig).Value = "" Then oUser.Put "description", Range("M2").Offset(lig).Value else oUser.Put "description","" end if dans Active Directory, il faudrait vérifier que les champs vides soient acceptés, mais je ne connais pas précisément. toujours zen |
Résultats pour Macro Importation Active Directory
Résultats pour Macro Importation Active Directory
Résultats pour Macro Importation Active Directory
Résultats pour Macro Importation Active Directory