Question Création utilisateur depuis fichier Excel (Résolu)

Plus d'informations
il y a 15 ans 8 mois #2597 par ALCABELARD
Bonjour,

La RH de ma société envoie des fiches d'arrivée du nouveau personnel, et qui dit nouvelle personne dit nouveau compte. Ces fiches excel sont standardisées, c'est à dire que l'on retrouve toujours la meme information dans la meme cellule (prénom ==> cellule U19, nom ==> cellule U17 etc...).

Donc comme vous l'avez déjà deviné, je souhaite savoir comment lire les informations depuis la fiche excel afin d'automatiser cette tache car pour le moment, j'ouvre le fichier puis je crée les comptes, pour 2-3 comptes ça passe mais dernièrement j'ai du créer 52 comtpes donc un peu fastidieux.

Pour info, le chemin des fiches excel est \"L:\Administration\fiche d'accueil\*.xls\", car toutes les fiches sont mises dans le meme répertoire.

Merci par avance de votre aide et si je n'ai pas été suffisament clair, faites le moi savoir.<br><br>Message édité par: Arnaud, à: 5/08/08 08:53

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #2598 par Laurent Dardenne
Salut,
Yoann écrit:

je souhaite savoir comment lire les informations depuis la fiche excel afin d'automatiser cette tache

Il faut passer par OLE Automation, en gros le pilotage d'application via un langage de programmation.

Un début ici
www.microsoft.com/technet/scriptcenter/r.../sept06/hey0908.mspx

Sinon sur les forums du site il y a qq exemples.

Tu peux aussi consulter ce fichier d'aide
\&quot;\Program Files\Microsoft Office\OFFICE11\1036\VBAXL10.CHM\&quot;<br><br>Message édité par: Laurent Dardenne, à: 17/07/08 15:40

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #2599 par ALCABELARD
Tout d'abord, merci d'avoir pris le temps de me répondre.

Mais je pense que je n'ai pas du etre assez clair car ce que je souhaite faire c'est m'appuyer sur un tableau excel pour créer des compter avec powershell. Donc ouvrir le fichier excel recupérer les infos des cellules pour les passer en arguments. Non pas créer un fichier excel.

PS: l'info que tu m'as fourni m'est util pour autre chose, donc encore merci ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #2600 par daniel soares
hello
perso je te conseille plutot de te baser sur un fichier csv qu'un fichier excel (facile de faire la conversion!)

car la commande import-csv te permettra de definir une variable avec les proprietes adequat

genre un fichier csv sous la forme suivante

nom,prenom,compte
smith,john,jsmith
martin,mathieu,mmartin

[code:1]
$var = import-csv monfichier.csv
$var[0].nom | write-host
$var | foreach{ $nom = $_.nom; $nom |write-host}
[/code:1]
chaque objet de la collection $var te donnera les proprietes correspondant a la premiere ligne de ton csv



par contre si tu veux rester sur du xls alors


[code:1]
$file = \&quot;test.xls\&quot;

$excel = New-Object -comobject Excel.Application
$List = $excel.Workbooks.Open($file)
$index = 3
#-recupere les colones 3,8,9,5 du premier onglet du fichier excel
do {
$list.Worksheets.Item(1).cells.item($index,3).value()+
\&quot;,\&quot;+$list.Worksheets.Item(1).cells.item($index,8).value()+
\&quot;,\&quot;+$list.Worksheets.Item(1).cells.item($index,9).value()+
\&quot;,\&quot;+$list.Worksheets.Item(1).cells.item($index,5).value()|
Out-File $fichier resultat -Append
$index++}
until ($list.Worksheets.Item(1).cells.item($index,3).value()-eq $null)
$excel.quit()

[/code:1]
c'est une voie que j'ai exploré mais c'est long d'acces ... si le fichier est ouvert ca plante ... et ca te laisse un process excel ouvert a la fin
en plus tu devra lancer ce script depuis un poste ou excel est installé

pour ce qui est de la creation des comptes j'imagine que tu as le code car tu ne precises pas si c'est de l'adds ou local ou autre
sinon il y a pleins de scripts ici sur lesquels te baser.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #2606 par Laurent Dardenne
Yoann écrit:

Mais je pense que je n'ai pas du etre assez clair

Si on ne peut plus.
Dan écrit:

perso je te conseille plutot de te baser sur un fichier csv

Judicieux conseil.
Dan écrit:

mais c'est long d'acces ...

Tu veux dire que c'est très déclaratif ou que le temps de traitement est long ?
Dan écrit:

si le fichier est ouvert ca plante

Cela demande beaucoup plus de contrôle effectivement.
Mais c'est vrai qu'il manque des cmdlet d'accès aux données des applications Office.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #2609 par daniel soares


Tu veux dire que c'est très déclaratif ou que le temps de traitement est long ?


le temps de traitement est long
un script effectué en vba directement sur le fichier excel qui exporte dans un csv 4 colonnes sur 300 lignes
est exécute en moins de 5 secondes

l'équivalent de ce script effectué depuis powershell prends plus de 2 minutes

c'est flagrant... mais peut être une mauvaise connaissance de ma part des centaines d'objets fournis avec les objets com d'office :)

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.076 secondes
Propulsé par Kunena