![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 903 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, -------------------- ![]() ![]() ![]() --------\\\ /// ------ ( @ @ ) ....o00o.(_).o00o.. |
|
|
![]() |
![]()
Message
#2
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 266 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 |
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 09:02 |