Macro Importation Active Directory
Fermé
Nanobul
-
12 févr. 2005 à 03:05
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 14 févr. 2005 à 22:38
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 14 févr. 2005 à 22:38
A voir également:
- Macro Importation Active Directory
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Directory list & print - Télécharger - Divers Utilitaires
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Directory opus - Télécharger - Gestion de fichiers
7 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
12 févr. 2005 à 17:02
12 févr. 2005 à 17:02
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.
"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.
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...
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...
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
12 févr. 2005 à 23:35
12 févr. 2005 à 23:35
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.
"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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
14 févr. 2005 à 09:10
14 févr. 2005 à 09:10
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
" 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
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
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
14 févr. 2005 à 22:38
14 févr. 2005 à 22:38
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.
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.