Fusionner 4.000 fichiers Excel d'1 ligne chacun
Fermé
ERIC_SHD
Messages postés
8
Date d'inscription
mardi 22 mai 2018
Statut
Membre
Dernière intervention
23 mai 2018
-
22 mai 2018 à 16:47
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 mai 2018 à 16:12
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 mai 2018 à 16:12
A voir également:
- Fusionner 4.000 fichiers Excel d'1 ligne chacun
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Fusionner deux fichiers excel - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Formule excel - Guide
3 réponses
jee pee
Messages postés
39578
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
16 avril 2024
9 221
Modifié le 22 mai 2018 à 21:39
Modifié le 22 mai 2018 à 21:39
Bonjour,
En convertissant le xlsx en csv et en concaténant les fichiers texte csv ce devrait être possible :
créer un fichier
puis un fichier
les 2 dans le repertoire des xlsx et tu lances le .cmd tu obtiens un
Cdlt
En convertissant le xlsx en csv et en concaténant les fichiers texte csv ce devrait être possible :
créer un fichier
ExceltoCSV.vbscontenant
if WScript.Arguments.Count < 2 Then WScript.Echo "Please specify the source and the destination files. Usage: ExcelToCsv <xls/xlsx source file> <csv destination file>" Wscript.Quit End If csv_format = 6 Set objFSO = CreateObject("Scripting.FileSystemObject") src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0)) dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1)) Dim oExcel Set oExcel = CreateObject("Excel.Application") Dim oBook Set oBook = oExcel.Workbooks.Open(src_file) oBook.SaveAs dest_file, csv_format oBook.Close False oExcel.Quit
puis un fichier
convagreg.cmdcontenant
@echo off del *.csv for /r "." %%i in (*.xlsx) do ( echo Fichier en cours "%%i" ExceltoCSV.vbs "%%i" "%%i".csv for /f "tokens=1,* delims=:" %%j in ('findstr /n /r . "%%i".csv') do if %%j equ 1 echo %%k >> total.csv del "%%i".csv )
les 2 dans le repertoire des xlsx et tu lances le .cmd tu obtiens un
total.csvqui s'ouvre dans excel.
Cdlt
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
23 mai 2018 à 12:40
23 mai 2018 à 12:40
Bonjour à tous,
ci joint maquette avec 2 fichiers sources ( "notice" 1 & 2) et fichier cible ("ccm")
la variable chemin est à adapter pour un emplacement en "D:\ fusion"
Merci de m'indiquer la durée de la procédure avec les 4000 fichiers source
https://mon-partage.fr/f/ISXh1C2Z/
ci joint maquette avec 2 fichiers sources ( "notice" 1 & 2) et fichier cible ("ccm")
la variable chemin est à adapter pour un emplacement en "D:\ fusion"
Merci de m'indiquer la durée de la procédure avec les 4000 fichiers source
https://mon-partage.fr/f/ISXh1C2Z/
ERIC_SHD
Messages postés
8
Date d'inscription
mardi 22 mai 2018
Statut
Membre
Dernière intervention
23 mai 2018
23 mai 2018 à 15:33
23 mai 2018 à 15:33
Bonjour Michel. Je ne comprends pas votre message ! Que sont ces fichiers Excel que vous proposez ? De quelle variable chemin parlez vous ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
23 mai 2018 à 16:12
23 mai 2018 à 16:12
peut-^tre regarder le code....
d'autre part je précise qu'on travaille sans ouvrir les fichiers source
ensuite on purra écrire une macro d'actualisation (nouveau fichier source) mais j'aurais besoin alors de renseignements complémentaires.
Sub compiler_les_notices()
Dim Chemin As String, Fich As String, Lig As Integer
Dim Start As Single
'fige le défilement de l'écran
Application.ScreenUpdating = False
Start = Timer
'force dans le répertoire de travail
Chemin = ThisWorkbook.Path ' A ADAPTER AU CONTEXTE D:\FUSION
..........
d'autre part je précise qu'on travaille sans ouvrir les fichiers source
ensuite on purra écrire une macro d'actualisation (nouveau fichier source) mais j'aurais besoin alors de renseignements complémentaires.
Raymond PENTIER
Messages postés
58387
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
16 avril 2024
17 088
22 mai 2018 à 16:51
22 mai 2018 à 16:51
S'il te reste encore quelques milliers de données à saisir, évite de gaspiller tout un fichier pour une malheureuse ligne, et saisis-les directement à la suite des 4000 que tu auras réussi à rassembler ...
ERIC_SHD
Messages postés
8
Date d'inscription
mardi 22 mai 2018
Statut
Membre
Dernière intervention
23 mai 2018
23 mai 2018 à 10:49
23 mai 2018 à 10:49
Il ne s'agit pas de saisies. Il s'agit de 4.000 fichiers récupérés en l'état d'un prestataire particulièrement mauvais et nous subissons cette aberration. Nous n'aurions évidemment pas généré 4.000 fichiers Excel d'une seule ligne, c'est parfaitement stupide.
Modifié le 23 mai 2018 à 11:54
D:\FUSION>{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf830
Le chemin d'accès spécifié est introuvable.
D:\FUSION>{\fonttbl\f0\fmodern\fcharset0 CourierNewPSMT;\f1\fmodern\fcharset0 CourierNewPS-BoldMT;}
Le chemin d'accès spécifié est introuvable.
D:\FUSION>{\colortbl;\red255\green255\blue255;\red36\green36\blue36;\red255\green255\blue255;\red0\green0\blue0;
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\red251\green0\blue109;\red0\green0\blue120;\red144\green1\blue18;}
Le chemin d'accès spécifié est introuvable.
D:\FUSION>{\*\expandedcolortbl;;\cssrgb\c18824\c18824\c18824;\cssrgb\c100000\c100000\c100000;\cssrgb\c0\c0\c0;
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\cssrgb\c100000\c0\c50196;\cssrgb\c0\c0\c54510;\cssrgb\c63922\c8235\c8235;}
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\deftab720
\deftab720 n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande.
D:\FUSION>\pard\pardeftab720\partightenfactor0
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\fs27\fsmilli13600 \cf2 \cb3 \expnd0\expndtw0\kerning0
Le chemin d'accès spécifié est introuvable.
off\
D:\FUSION>del
La syntaxe de la commande n'est pas correcte.
D:\FUSION>\f1\b \cf5 *.
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\b0 \cf2 csv\
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\
'\' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande.
D:\FUSION>\pard\pardeftab720\partightenfactor0
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f1\b \cf6 for
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\b0 \cf2 /r \cf7 "."\cf2
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f1\b \cf5 %
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\b0 \cf2 i
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f1\b \cf6 in
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\b0 \cf2
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f1\b \cf5 (*.
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\b0 \cf2 xlsx
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f1\b \cf5 )
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\b0 \cf2
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f1\b \cf6 do
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\b0 \cf2
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f1\b \cf5 (
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\f0\b0 \cf2 \
Le chemin d'accès spécifié est introuvable.
D:\FUSION>\
D:\FUSION>echo Fichier en cours \cf7 "%i"\cf2 \
Fichier en cours \cf7 "%i"\cf2 \
D:\FUSION>\
'\' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande.
etc...
Modifié le 23 mai 2018 à 12:16
Tu n'utilises pas des répertoires réseau, tout est en local ?
Tu as constitué les 2 fichiers de commande avec un éditeur texte de base(comme le bloc-notes) pas un autre éditeur comme word, wordpad ?
Modifié le 23 mai 2018 à 14:43
+ Microsoft Excel 2016
et aussi LibreOffice 3.5 Calc
Nous utilisons plusieurs volumes réseaux mais j'ai rangé les données dont il est question sur D:\FUSION.
J'ai produit des txt avec un bloc note et ensuite modifié l'extension, comme je fais toujours lorsque je fais des Batch DOS.
Modifié le 23 mai 2018 à 14:48
Modifié le 23 mai 2018 à 15:16
- Je constate que seules les colonnes A à I sont présentes dans le fichiers csv de fusion, les colonnes J à Q ne sont bizarrement pas récupérées.
- Le fichier CSV produit adopte la virgule comme séparateur de champ. Or, une de mes colonnes contient du texte, des descriptions historiques, avec des virgules au sein de ce texte. N'y a-t-il pas moyen de forcer un autre caractère comme séparateur de champ ? Comme l'underscore ou la barre verticale du AltGr+6.