Modifier un fichier Excel avec Apple Script |
Bienvenue invité ( Connexion | Inscription )
Modifier un fichier Excel avec Apple Script |
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. |
|
|
4 May 2016, 22:28
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 353 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Bonjour et bienvenue !
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) ? -------------------- ¶ 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… |
|
|
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 |
|
|
5 May 2016, 08:08
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 052 Inscrit : 10 Oct 2005 Membre no 47 611 |
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 !
|
|
|
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 |
|
|
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 |
|
|
Nous sommes le : 25th April 2024 - 00:34 |