IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Excel : regrouper des fichiers
Options
b00ss
posté 3 Apr 2017, 16:08
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 897
Inscrit : 28 Oct 2004
Lieu : Belgium
Membre no 25 982



Bonjour à tous,

J'utilise Excel tous les jours, et je synchronise plusieurs dossiers avec 2 autres personnes.

J'ai un dossier qui contient plusieurs centaines de fichiers, dans 2 colonnes, A & B (la colonne B peut aller jusqu'à la ligne 500)

Je voudrais faire un fichier ALL.xls qui regrouperait l'ensemble des fichiers, afin de pouvoir faire des recherches.

Comment puis-je faire ?

Merci pour votre aide,


--------------------

iMac 5K
iPhone 11Pro 256GB
Watch SE



--------\\\ ///
------ ( @ @ )
....o00o.(_).o00o..



Go to the top of the page
 
+Quote Post
Aliboron
posté 3 Apr 2017, 16:51
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 196
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Dossiers, fichiers,... Sachant qu'Excel utilise des classeurs contenants des feuilles, est-ce que tu peux décrire précisément le contexte et ce que tu veux faire ?

Tel que je crois le comprendre, si tu veux faire la liste des classeurs contenus dans un dossier, il suffit d'aller dans le dossier, de tout sélectionner (Commande A), de copier (Commande C) puis d'ouvrir un classeur Excel et de coller la liste complète (Commande V).

Si ça ne répond pas à ta question, merci de donner des précisions... wink.gif

Ce message a été modifié par Aliboron - 3 Apr 2017, 16:53.


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
b00ss
posté 3 Apr 2017, 17:49
Message #3


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 897
Inscrit : 28 Oct 2004
Lieu : Belgium
Membre no 25 982



Merci de te réponse, je vais t'expliquer....

J'ai donc un dossier sur mon MAC, qui s'appelle "commandes".

Dans mon dossier commandes, j'ai plusieurs fichiers XLS (classeurs), qui s'appellent : commande1.xls, commande2.xls, etc. Au moins 500 classeurs.

Tous ces classeurs Excel n'ont qu'une seule feuille et ont toujours la meme structure, colonne A : infos du client, date du jour, etc. ; colonne B : les numéros de série de la commande du client.

Ce que je voudrais faire dans un fichier ALL.xls, c'est rassembler toutes les informations (les colonnes A & B de chaque classeur) dans ce fichier (classeur ALL.xls) afin de pouvoir recherche des données.

Merci,


--------------------

iMac 5K
iPhone 11Pro 256GB
Watch SE



--------\\\ ///
------ ( @ @ )
....o00o.(_).o00o..



Go to the top of the page
 
+Quote Post
Aliboron
posté 3 Apr 2017, 23:15
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 196
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Si tu veux récupérer des données dans 500 classeurs, il va te falloir passer par un peu de programmation. Soit en VBA dans Excel, soit en AppleScript ou Automator (à toi de voir en fonction de tes habitudes/goûts).

Ceci dit, si tu veux quelques éléments complémentaires, il serait peut-être temps de préciser un peu le contexte (version de Mac OS X, version et niveau de mise à jour d'Excel, par exemple)...


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
baron
posté 4 Apr 2017, 04:28
Message #5


Macbidouilleur d'Or !
*****

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



Autrement, l'affaire serait plus simple si tu avais 500 feuilles dans un classeur…
(OK, ça peut être lourd au quotidien.)


--------------------
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
b00ss
posté 4 Apr 2017, 10:03
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 897
Inscrit : 28 Oct 2004
Lieu : Belgium
Membre no 25 982



Je suis sous Mac OS 10.12 sur un iMac 5K, MS Office 2011

Que ce soit en VBA, Applescript ou automator, je suis ouvert à tout... Que proposez vous ?


--------------------

iMac 5K
iPhone 11Pro 256GB
Watch SE



--------\\\ ///
------ ( @ @ )
....o00o.(_).o00o..



Go to the top of the page
 
+Quote Post
Aliboron
posté 4 Apr 2017, 10:12
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 196
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (b00ss @ 4 Apr 2017, 11:03) *
Que proposez vous ?

... de t'aider. wink.gif (n'inversons pas le sens des choses).

Pour les macros VBA, Excel 2011 permet d'enregistrer ce qu'on fait, ce qui donne un bon début de programmation VBA (il faut évidemment y apporter pas mal de modifications quand on veut généraliser l'enregistrement se contentant "bêtement" de prendre note de ce qu'on fait, pas des intentions qu'on a).


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
b00ss
posté 4 Apr 2017, 12:17
Message #8


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 897
Inscrit : 28 Oct 2004
Lieu : Belgium
Membre no 25 982



J'avais trouvé ça sur un autre post, en Apple script mais sans explications de ce qu'il faudrait modifier. Et je ne pense pas que ça fonctionne encore sur Excel 2011 ou plus récent...

Code
tell application "Finder" to set t_files to (document files of (choose folder) whose name starts with "feuille" and name extension is "xls") as alias list
set a to 2

tell application "Microsoft Excel"
    set t_book to make new workbook
    set name of sheet 1 to "index"
    repeat with i in t_files
        set currBook to open workbook workbook file name (i as string) with read only
        copy range (range "$A$2:$K$22" of sheet 1 of currBook) destination (row a of sheet "index" of t_book)
        close currBook saving no
        set a to a + 21
    end repeat
end tell


--------------------

iMac 5K
iPhone 11Pro 256GB
Watch SE



--------\\\ ///
------ ( @ @ )
....o00o.(_).o00o..



Go to the top of the page
 
+Quote Post
Jack the best
posté 4 Apr 2017, 14:24
Message #9


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 5 674
Inscrit : 3 Nov 2003
Lieu : CUL (Communauté Urbaine de Lille !) Bon Appartement Chaud
Membre no 11 246



Rien à voir, mais j'aime bien ta signature !


--------------------

iMac 27" Retina 5K 1To Fusion drive 8 Go RAM Intel Core I5 quadricœur à 3,5 GHz Mojave 10.14.6 , iMac Intel Core I5 3,1 GHz 1To (El Capitan 10.11.6 depuis le 13/9/2016) en rade carte mère !, MacBook Pro 17" 500 Go Snow Leopard, iMac G5 20" PPC Tiger 250 Go Rev A,
iPhone 14 128Go OS 16.1.1 et SONY pour la photo numérique Minolta pour l'argentique … Pink #FD3F92
Breton MB
Attention aux huîtres, SURTOUT celles qui mangent des oiseaux !
How much wood would a woodchuck chuck if a woodchuck could chuck wood ?
Go to the top of the page
 
+Quote Post
guillaum
posté 4 Apr 2017, 16:01
Message #10


Adepte de Macbidouille
*

Groupe : Membres
Messages : 204
Inscrit : 4 Jun 2004
Lieu : Marne la Vallée
Membre no 19 597



Bonjour.
Quelques idées qui peuvent être un autre regard...
Tu veux regrouper tes tableaux dans un seul classeur pour faire tes recherches... ce qui veut dire :
1 - Soit que tes données vont exister en double, et là tu t'expose à des problème de mise à jour (dans quelle feuille mettre les nouvelles données, quelle est la dernière synchro...)
2 - Soit que toutes tes données se retrouvent dans une feuille : avec le problème de poids et de taille de la feuille...

Pourquoi ne pas faire dans une feuille à part, une recherche qui va fouiller les autres feuilles une par une, sans les recopier ?

Voir un exemple qui me semble assez proche :

https://forum.excel-pratique.com/excel/rech...ets-t21464.html

Bon courage


--------------------
Guillaume
Membre du club des AIPBP (Anciens Inscrits Pas Beaucoup de Posts) Voir la liste
Go to the top of the page
 
+Quote Post
Aliboron
posté 5 Apr 2017, 23:29
Message #11


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 196
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (b00ss @ 4 Apr 2017, 13:17) *
J'avais trouvé ça sur un autre post, en Apple script mais sans explications de ce qu'il faudrait modifier. Et je ne pense pas que ça fonctionne encore sur Excel 2011 ou plus récent...

Cet AppleScript fonctionne très bien dans Excel 2011 et Excel 2016 pour Mac. Il convient évidemment d'adapter la première partie en remplaçant "feuille" par quelque chose d'adapté à ton contexte (à moins que les classeurs concernés ont des noms commençant par "feuille", évidemment) ainsi que l'extension .xls puisqu'on pense bien que tes classeurs sont maintenant en .xlsx


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
b00ss
posté 11 Apr 2017, 19:22
Message #12


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 897
Inscrit : 28 Oct 2004
Lieu : Belgium
Membre no 25 982



J'ai simplement remplacé 2 choses dans ce script, "enco" car tous mes fichiers commencent par ENCO.

Et j'ai modifié la table a copier (pour aller jusqu'à 500)

Code
tell application "Finder" to set t_files to (document files of (choose folder) whose name starts with "enco" and name extension is "xls") as alias list
set a to 2

tell application "Microsoft Excel"
    set t_book to make new workbook
    set name of sheet 1 to "index"
    repeat with i in t_files
        set currBook to open workbook workbook file name (i as string) with read only
        copy range (range "$A$2:$K$501" of sheet 1 of currBook) destination (row a of sheet "index" of t_book)
        close currBook saving no
        set a to a + 500
    end repeat
end tell


Puis-je définir la fin du copy range à la cellule "A11" ? A11 est égal au nombre de ligne contenue dans mes encodages. Si A11 est égal à 300, le fichier ira jusqu'à la ligne L301 (300+1)

Je peux également automatiser le script Apple afin qu'il se lance automatiquement chaque fin de journée (via Calendrier)

Mais, serait-il possible de définir le nom du fichier contenant tous les encodages à ALL.XLS ?

Et donc, d'incrémenter ce fichier ALL.XLS chaque jour ?

Encore mieux, serait-il possible d'incrémenter ce fichier ALL.XLS dès qu'un nouveau fichier arrive dans le dossier des encodages (par exemple, dès qu'un nouveau fichier encoxxxx.xls arrive dans "HDD/Commandes/") ?

Ce message a été modifié par b00ss - 11 Apr 2017, 19:23.


--------------------

iMac 5K
iPhone 11Pro 256GB
Watch SE



--------\\\ ///
------ ( @ @ )
....o00o.(_).o00o..



Go to the top of the page
 
+Quote Post
Aliboron
posté 12 Apr 2017, 13:51
Message #13


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 196
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (b00ss @ 11 Apr 2017, 20:22) *
Puis-je définir la fin du copy range à la cellule "A11" ? A11 est égal au nombre de ligne contenue dans mes encodages. Si A11 est égal à 300, le fichier ira jusqu'à la ligne L301 (300+1)

Bien sûr. Il faut affecter la valeur de la cellule A11 à une variable, puis utiliser la variable dans la boucle. Quelque chose comme ceci :
Code
tell application "Finder" to set t_files to (document files of (choose folder) whose name starts with "Banque" and name extension is "xls") as alias list
set a to 2

tell application "Microsoft Excel"
    set t_book to make new workbook
    set name of sheet 1 to "index"
    repeat with i in t_files
        set currBook to open workbook workbook file name (i as string) with read only
        set maVar to value of range "$A$11" as integer
        set maPlage to "$A$2:$K$" & maVar
        copy range (range maPlage) destination (row a of sheet "index" of t_book)
        close currBook saving no
        set a to a + maVar
    end repeat
end tell

Citation (b00ss @ 11 Apr 2017, 20:22) *
Mais, serait-il possible de définir le nom du fichier contenant tous les encodages à ALL.XLS ?

Oui, vu que c'est toi qui décides du nom au moment de l'enregistrement...

Citation (b00ss @ 11 Apr 2017, 20:22) *
Et donc, d'incrémenter ce fichier ALL.XLS chaque jour ?

Oui, il te faut déterminer la première cellule libre dans ta feuille et coller à partir de cet emplacement et donner à la variable a la valeur de la première ligne libre au lieu de 2. Par contre, je t'engage vivement à penser sérieusement à passer au format OpenXML, et donc à ALL.XLSX. Ça ne fait jamais que dix ans que c'est le format natif d'Excel...

Citation (b00ss @ 11 Apr 2017, 20:22) *
serait-il possible d'incrémenter ce fichier ALL.XLS dès qu'un nouveau fichier arrive dans le dossier des encodages (par exemple, dès qu'un nouveau fichier encoxxxx.xls arrive dans "HDD/Commandes/") ?

Puisque tu es dans les AppleScripts, regarde comment fonctionnent les "Actions de dossier" de Mac OS X. wink.gif

Ce message a été modifié par Aliboron - 12 Apr 2017, 14:07.


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
b00ss
posté 12 Apr 2017, 15:53
Message #14


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 897
Inscrit : 28 Oct 2004
Lieu : Belgium
Membre no 25 982



Super, un grand merci pour ta réponse...

D'après toi, tout est faisable, puisque tu réponds "Oui" à l'ensemble des mes questions...

Après, je "sais" lire le code (ou le déchiffrer) mais je ne sais pas coder....

Donc pour faire, ces étapes, quel serait le code ? 😃

Merci,


--------------------

iMac 5K
iPhone 11Pro 256GB
Watch SE



--------\\\ ///
------ ( @ @ )
....o00o.(_).o00o..



Go to the top of the page
 
+Quote Post
Aliboron
posté 12 Apr 2017, 15:59
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 196
Inscrit : 1 Jan 2008
Lieu : Toulouse.cong
Membre no 103 942



Citation (b00ss @ 12 Apr 2017, 16:53) *
Après, je "sais" lire le code (ou le déchiffrer) mais je ne sais pas coder....

Excellente occasion pour apprendre, alors. Concernant AppleScript, tu trouveras plein de choses sur le site MacScripter. Sans oublier, bien entendu ce site-ci et ce site-là qui ont le grand avantage de causer français...


--------------------
Bernard

MacMini, iMac et tout un tas d'accessoires -- FAQ Office Macintosh
Go to the top of the page
 
+Quote Post
b00ss
posté 12 Apr 2017, 19:37
Message #16


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 897
Inscrit : 28 Oct 2004
Lieu : Belgium
Membre no 25 982



Si je récapitule, il faudrait arriver à quelque chose comme ça...

Qui peut m'aider à transformer ce brouillon en Apple script ? smile.gif

Code
tell application "Finder" to set ceDossier to "Macintosh HD:Utilisateurs:macbook:Bureau:TEST"

--Dis à l'application Finder, de définir le dossier TEST du bureau comme variable ceDossier

on adding folder items to ceDossier after receiving itemsajoutes

--Si des fichiers sont ajoutés dans ceDossier, alors exectuter le script
--Comment faire, si des fichiers sont simplement modifiés ?
-- Si pas, affiche -- display dialog "Aucun fichier ajoutés aujourd'hui"
    
    tell application "Finder" to set t_files to (document files of (choose folder) whose name starts with "enco" and name extension is "xlsx") as alias list

--Définir la liste à executer dans le dossier
    
    set a to 2
    
    --définir la destination finale à la première cellule libre dans ta feuille et coller à partir de cet emplacement et donner à la variable a la valeur de la première ligne libre au lieu de 2
    
    tell application "Microsoft Excel"
--set t_book to open ALL.XLSX dans dossier "Macintosh HD:Utilisateurs:macbook:Bureau:TEST"

        repeat with i in t_files
            set currBook to open workbook workbook file name (i as string) with read only
            set maVar to value of range "$A$11" as integer
            set maPlage to "$A$2:$K$" & maVar
            copy range (range maPlage) destination (row a of sheet "ALLenco" of t_book)
            close currBook saving no
            set a to a + maVar
        end repeat
        
--fin du script de selection et de copie des cellules
        
        save
        
--Enregistrer le fichier ALL.XLSX
--Envoie d'un email pour confirmation avec le fichier en PJ :)
        
    end tell
end adding folder items to


--------------------

iMac 5K
iPhone 11Pro 256GB
Watch SE



--------\\\ ///
------ ( @ @ )
....o00o.(_).o00o..



Go to the top of the page
 
+Quote Post
b00ss
posté 12 Apr 2017, 20:26
Message #17


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 897
Inscrit : 28 Oct 2004
Lieu : Belgium
Membre no 25 982



Peut etre devrais-je déplacer ce post dans PROGRAMMATION ?
> Forums MacBidouille > Général > Programmation > Technologies Apple

Est-ce qu'un admin peut m'aider ? Merci


--------------------

iMac 5K
iPhone 11Pro 256GB
Watch SE



--------\\\ ///
------ ( @ @ )
....o00o.(_).o00o..



Go to the top of the page
 
+Quote Post
baron
posté 12 Apr 2017, 22:49
Message #18


Macbidouilleur d'Or !
*****

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



Déplacé. 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é 13 Apr 2017, 08:28
Message #19


Macbidouilleur de bronze !
**

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



Bonjour,
Je me permets juste un petit conseil: avant de mettre ton script sous forme d'action de dossier, je te conseille fortement de la faire en direct pour la mise au point.
En effet les actions de dossiers sont lancées en tâche de fond et les erreurs de mise au point seront difficilement traçables.

Donc tu fais ton script avec un "choose file" et un "choose folder" qui sélectionnent le dossier et les fichiers Excel prétendument ajoutés.
Une fois mis au point, tu remplaces les 2 "choose..." par le handler "on adding folder..."

J'ai fais de nombreux folder actions et c'est finalement la méthode la plus efficace.

Par ailleurs, si tu ne connais pas le nombre de lignes à copier de ton fichier Excel, tu peux le trouver avec :
CODE
set DerLigne to count of rows of used range of active sheet

La variable DerLigne contient les nombre de ligne. Si ton bloc de données débute en ligne 2, alors tes données sont de A2 à B(Derligne+1).

Je te suggère de nommer ton fichier résultant avec date_heure de type aaaa_mm_jj-hh_mm ce sera plus facile de trouver le dernier.

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
cloum
posté 7 May 2020, 08:33
Message #20


Nouveau Membre


Groupe : Membres
Messages : 22
Inscrit : 17 May 2001
Membre no 257



Bonjour
j'ai la meme question. Finalement est ce que tu as pu finaliser ??

merci
Go to the top of the page
 
+Quote Post
PBell
posté 8 May 2020, 07:28
Message #21


Macbidouilleur de bronze !
**

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



Bonjour,
Voici le script que j'avais fait à l'époque pour tester l'idée.
Il combine à la fois les actions de dossier et tu peux aussi le lancer en direct. Dans ce cas, il va te demander de sélectionner le dossier avec les fichiers Excel à regrouper.

Dans les 2 cas, il filtre les xlsx et les fichier commençant par "enco" comme demandé par b00ss.
Le fichier de regroupement est fixe (première ligne du handler "fusion_excel".

Code
(* le programme principal est le handler fusion_excel

Lors d'un run classique (handler on run), l'utiisateur doit choisir le dossier des fichiers Excel
Lors d'un appel via action de dossier, l'action de dossier fourni la liste de Excel ajoutés
*)

--****************************
on run
    -- sélection du dossier des fichiers Excel à regrouper
    tell application "Finder" to set liste to (document files of (choose folder "selectionner le dossier contentant les fichiers Excel à regrouper") whose name starts with "enco" and name extension is "xlsx") as alias list
    fusion_excel(liste)
end run

--****************************
on adding folder items to ceDossier after receiving fichiers
    -- il faut filtrer les fichiers de type xlsx commençant par "enco"
    set liste to {}
    tell application "Finder"
        repeat with un_fichier in fichiers
            set f to file un_fichier
            if ((name of f) starts with "enco") and (name of f ends with "xlsx") then set end of liste to un_fichier
        end repeat
    end tell
    fusion_excel(liste)
end adding folder items to

--****************************
on fusion_excel(listeXL) -- regroupe sur 1 fichier Excel les contenus de fichiers Excel de la liste listeXL
    set ALLXL to "Users:imac27:Desktop:Groupe_Excel:ALL.xlsx" -- fichier Excel de regroupement    
    tell application "System Events" to set ALL_OK to exists file ALLXL -- vérifie que le fichier ALLXL existe déjà    
    tell application "Microsoft Excel"
        activate
        if ALL_OK then -- Le fichier existe, ouverture et position de la prochaine ligne vide
            open ALLXL
            set all_wb to active workbook
            set der_ligne to (count of rows of used range of active sheet) + 1
        else -- Le fichier n'existe pas. On le crée et l'enregistre. La prochaine ligne est 1
            set all_wb to make new workbook
            save workbook as all_wb filename ALLXL
            set der_ligne to 1
        end if
        repeat with unXL in listeXL
            set curr_wb to open workbook workbook file name (unXL as string) with read only
            set Nb_lignes to count of rows of used range of sheet 1 of curr_wb
            copy range (used range of sheet 1 of curr_wb)
            close curr_wb saving no
            activate all_wb
            paste worksheet sheet 1 destination range ("A" & der_ligne)
            set der_ligne to der_ligne + Nb_lignes
        end repeat
        close all_wb saving yes
    end tell
end fusion_excel

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

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 : 28th March 2024 - 12:58