Traitement données Excel

mikport

Nouveau membre
3 Juin 2010
4
0
Bonjour à tous,
J'espère avoir posté au bon endroit...
J'ai 200 fichiers Excel (sous Excel 2008) dont je voudrais copier le contenu de 4 cases (les mêmes pour chaque fichier) dans un nouveau fichier Excel.
Je ne sais pas si c'est possible d'automatiser cela depuis Excel. Sinon peut être un script MATLAB ou AppleScript (mais je ne suis pas très doué... :)).
Merci à celui ou celle qui pourra m'aider!

A+
 

Pascal 77

ex modéraptor
Club MacG
28 Octobre 2004
44 209
3 456
67
Sous la limite KT
Bonjour à tous,
J'espère avoir posté au bon endroit...
J'ai 200 fichiers Excel (sous Excel 2008) dont je voudrais copier le contenu de 4 cases (les mêmes pour chaque fichier) dans un nouveau fichier Excel.
Je ne sais pas si c'est possible d'automatiser cela depuis Excel. Sinon peut être un script MATLAB ou AppleScript (mais je ne suis pas très doué... :)).
Merci à celui ou celle qui pourra m'aider!

A+
C'est possible avec Applescript, mais le problème, c'est que la mise au point du script risque de prendre plus de temps que de faire les Copier/coller à la main. Tu en aurais 2000, je dis pas, mais 200, ça ne vaut pas vraiment le coup, sauf si tu dois répéter la chose périodiquement !
 

mikport

Nouveau membre
3 Juin 2010
4
0
Merci pour ta réponse!
En fait j'ai 200 fichier pour le moment mais j'en aurais bien plus par la suite... C'est pourquoi je voulais automatiser la chose!
Si tu as une ébauche de script que je pourrais tester je suis très intéressé!

Encore merci!
 

Pascal 77

ex modéraptor
Club MacG
28 Octobre 2004
44 209
3 456
67
Sous la limite KT
Merci pour ta réponse!
En fait j'ai 200 fichier pour le moment mais j'en aurais bien plus par la suite... C'est pourquoi je voulais automatiser la chose!
Si tu as une ébauche de script que je pourrais tester je suis très intéressé!

Encore merci!
Ah non, je n'ai pas fait d'ébauche (c'est pour éviter ce genre de désagrément que je n'utilise pas Office 2008, mais que je suis resté à 2004 et à son VBA pour les macros :D).
 

mikport

Nouveau membre
3 Juin 2010
4
0
Merci quand même!
Si jamais un pro d'applescript passe par là...
Sinon je peux utiliser Excel sous windows (beurk... :) ) au boulot.
Je n'ai jamais fais de macro alors si t'as une idée pour me mettre sur la voie...
Merci!
 

Pascal 77

ex modéraptor
Club MacG
28 Octobre 2004
44 209
3 456
67
Sous la limite KT
Ecoute, le problème, c'est la boucle pour passer d'un fichier au suivant, je peux te passer ce script (tu peux l'éditer avec l'éditeur de scripts) qui règle un problème similaire pour que tu t'en inspire (il travaille dans le Finder, mais sur le principe, c'est équivalent, il s'agit de sélectionner l'un après l'autre tous les fichiers d'un répertoire pour leur faire subir un traitement). Après, tu n'as plus qu'à inclure le compteur de ligne dans ta feuille de réception, pour ça, il te faudra examiner le dictionnaire d'Excel, je n'ai jamais programmé en AppleScript avec lui, toujours en VBA, mais il parait que c'est assez similaire.
 

zeltron54

Membre d’élite
29 Mars 2008
1 805
266
Lorraine
Bonjour,

quelques précisions pour pouvoir t'aider:
1- les fichiers à traiter sont'ils tous dans le même dossier ?
2 donne moi le nom de la feuille excel contenant les cellules à copier ainsi que le nom des 4 cellules à copier.
3- la copie se fera dans un nouveau fichier dont le nom sera ? , et on copiera le nom du fichier d'origine plus les 4 cellules sur une ligne par fichier.

exemple: en A1 nom du fichier d'origine1, en B1 cellule à copier 1, en C1 cellule à copier 2 etc.... puis en A2, B2,C2,D2,E2 les éléments du fichier 2 ......

donne moi ces précisions et je regarderai ça !
 

mikport

Nouveau membre
3 Juin 2010
4
0
Bonjour,
J'ai réussi!!!! :)
Enfin, le gros du script fonctionne mais il reste quelques détails à améliorer...
Je n'arrive pas à faire en sorte qu'Applescript puisse chercher une cellule dans un fichier Excel sans ouvrir ce dernier. Le problème est que du coup il ouvre 200 fenêtre, ce qui ralentit pas mal les choses... Je n'arrive pas à me passer de l'instruction 'open "... .xls" '. Apparemment il faut utiliser 'activate object' mais ça ne marche pas pour moi.
Aussi, mes fichiers sont rangés dans différents dossiers. Je pourrais les déplacer facilement dans un même dossier (avec une ptite routine MATLAB qui va bien!), mais je préfèrerais que mon applescript aille cherche les infos sans déplacer les fichiers. J'ai essayé avec une boucle dans la boucle mais je n'ai pas réussi...
Bref, j'essaie de mettre mon script au propre et je le poste ici pour correction.

Merci pour votre aide!
 

Pascal 77

ex modéraptor
Club MacG
28 Octobre 2004
44 209
3 456
67
Sous la limite KT
Bonjour,
J'ai réussi!!!! :)
Enfin, le gros du script fonctionne mais il reste quelques détails à améliorer...
Je n'arrive pas à faire en sorte qu'Applescript puisse chercher une cellule dans un fichier Excel sans ouvrir ce dernier. Le problème est que du coup il ouvre 200 fenêtre, ce qui ralentit pas mal les choses... Je n'arrive pas à me passer de l'instruction 'open "... .xls" '. Apparemment il faut utiliser 'activate object' mais ça ne marche pas pour moi.
Aussi, mes fichiers sont rangés dans différents dossiers. Je pourrais les déplacer facilement dans un même dossier (avec une ptite routine MATLAB qui va bien!), mais je préfèrerais que mon applescript aille cherche les infos sans déplacer les fichiers. J'ai essayé avec une boucle dans la boucle mais je n'ai pas réussi...
Bref, j'essaie de mettre mon script au propre et je le poste ici pour correction.

Merci pour votre aide!
Il est possible de récupérer des données dans un classeur fermé, mais ça ralentit tellement le traitement (ce qui se fait en 1 seconde classeur ouvert peut prendre jusqu'à 15 secondes classeur fermé) que ça n'en vaut pas la peine.

Ce qu'il faut que tu fasses, c'est refermer chaque classeur que tu ouvres, après avoir récupéré les données, et avant d'ouvrir le suivant. quelque chose comme ça dans ta boucle (sur le principe)

-Tant qu'il y a des classeurs à ouvrir
-Ouvrir le classeur courant
-copier les données
-activer le classeur de réception
-coller les données
-activer le classeur courant
-fermer le classeur courant
-classeur suivant
 

zeltron54

Membre d’élite
29 Mars 2008
1 805
266
Lorraine
Bonjour,

je te joins un petit script qui fonctionne chez moi, Tu pourras t'en inspirer pour faire fonctionner le tien.