IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Modifier un fichier Excel avec Apple Script
Options
Rhiquo
posté 4 May 2016, 22:17
Message #1


Nouveau Membre


Groupe : Membres
Messages : 1
Inscrit : 4 May 2016
Membre no 198 758



Bonjour,

J'ai un fichier Excel par jour contenant une liste de produits.

Je souhaiterais :
1 - modifier le fichier Excel en rajoutant une colonne avec la date du fichier (date contenue dans le nom du fichier)

2 - après modification, sauvegarder ce fichier au format CSV.

Vu que j'ai un fichier par jour, j'ai donc un nombre de fichier important, d'ou l'idée d'automatiser la motif.

Je penses utiliser Apple Script, pour me lancer dans son utilisation.

Par avance, merci.
Go to the top of the page
 
+Quote Post
baron
posté 4 May 2016, 22:28
Message #2


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 347
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Bonjour et bienvenue ! smile.gif

Je ne pourrai pas t'aider plus avant je pense mais au moins je puis anticiper la première question qui viendra :
Quelle version d'Excel (et accessoirement d'OSX) ?
wink.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
PBell
posté 5 May 2016, 07:50
Message #3


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour Rhiquo,
La première réponse qui me vient est d'utiliser non pas Applescript, mais VBA, le language de macro Excel.
Tu crées un fichier Excel avec seulement la macro. Dans VBA, tu peux sélectionner un dossier, puis tu ouvres chaque "workbook" (c'est le terme VBA pour un fichier Excel), insère ta colonne et lui donne la date du fichier ou une date extraite de son nom.
Pour être pus rapide, tu demandes à Excel de ne pas afficher le traitement à l'écran (application.screenupdate=false)
La macro peut être écrite très simplement.

Cependant si tu disposes d'une version Excel Mac qui n'accepte pas les macros, alors effectivement tu ne peux utiliser VBA.
Il me semble que la version 2008 n'accepte pas les macros. La version 2011 les accepte sans problème. A toi de voir ta version.

Imaginons que tu ne peux vraiment pas utiliser VBA. Le script ci-dessous donne un exemple de départ :
CODE
tell application "Finder"
    set ExcelFichier to choose file
    set maDate to modification date of ExcelFichier -- lit la date de modification du fichier
    open ExcelFichier
end tell
delay 1 -- pour laisser le temps de s'ouvrir

tell application "Microsoft Excel"
    front document activate
    set Cellules to range "B1:B5" of first sheet of active workbook -- défini la plage de cellules
    set value of Cellules to maDate -- met la date de modification dans les cellules
    set number format of Cellules to "dd/mm/yy" -- formate la date (format anglais)
end tell


Tu peux remplacer le "choose file" par un choose folder et ensuite parcourir avec une boucle "repeat" chaque fichier Excel du dossier. Est-ce que tous les fichiers à modifier sont dans un même dossier ? Est-ce que tous les fichiers de ce dossier sont des Excel à modifier ? A préciser.
Tu indiques que la date du fichier est dans le nom du fichier, mais comme tu n'indiques rien de plus, je ne peux savoir si cette date est au début, à la fin, quel format ...?
J'ai donc simplement lu la date de modification du fichier. C'est plus sûr.

Tu n'as pas indiqué où insérer la colonne, je l'ai donc mis en colonne B dans cet exemple. De même je ne sais pas sur combien de lignes tu veux ajouter la date : j'ai mis des lignes 1 à 5 (?)
Enfin, j'ai mis la date au format, mais j'ai un doute : parfois Excel utilise des notions anglaises (toujours en VBA, parfois en direct) et parfois des valeurs françaises. Comme mon Excel professionnel est en anglais, j'ai utilisé un format anglais, mais tu devras peut être mettre "jj/mm/aa" avec un Excel français.

Cordialement


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
Pascal 77
posté 5 May 2016, 08:08
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 3 052
Inscrit : 10 Oct 2005
Membre no 47 611



Citation (PBell @ 5 May 2016, 08:50) *
Il me semble que la version 2008 n'accepte pas les macros. La version 2011 les accepte sans problème. A toi de voir ta version.


Je confirme, depuis Excel 5, en 1995, la version 2008 est l'unique version d'Excel à ne pas inclure le VBA !


--------------------
Un Windows pour les gouverner tous, un Windows pour les trouver, et dans les ténèbres, les lier … Euuh je vais pitêt rester sur Mac !
Go to the top of the page
 
+Quote Post
Jaypee
posté 5 May 2016, 13:04
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Vu que le CSV est un passage obligé, pourquoi ne pas commencer par l'export CSV. Modifier le texte du CSV pour ajouter la colonne avec la date. Ce faisant on s'affranchit des versions d'Excel.
C'est une tâche simple, probablement AppleScriptable avec des éditeurs de texte comme TextWrangler, TextMate...

J-P
Go to the top of the page
 
+Quote Post
PBell
posté 5 May 2016, 17:50
Message #6


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Effectivement Jaypee !
En plus si la colonne à ajouter est la dernière à droite, c'est encore plus simple !



--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 20th April 2024 - 02:05