[Résolu] concaténation de fichier sans les ouvrir

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.

[Résolu] concaténation de fichier sans les ouvrir

Messagepar parlapresente » 17 Jan 2020 20:57

Bonjour à tous,

Premier post alors je me présente, François, plutôt bidouilleur sous Calc mais en général j'arrive à mes fins, pas forcément optimisés mais ça fonctionne ;)
Alors voilà, actuellement je bosse sur un fichier "sauvegarde" calc avec plusieurs onglets (principalement des onglets de calculs) qui dépendent tous d'un unique onglet (onglet A).
Dans cet onglet A, j'ai pris pour habitude de copier coller des données que je reçois chaque jour, tous les fichiers reçus on la même forme, et le même nombre de lignes donc j'empile tous les jours chaque fichier, c'est pénible car je pense qu'on pourrait facilement placer tous les fichiers reçus dans un unique répertoire et dire au fichier "sauvegarde"de faire lui même ce travail non ? En renomment les fichier avec un nom qui fait référence à la date de réception du fichier, par exemple 17_01_20_fichier, puis 18_01_20_fichier ... etc ...
En PJ le résultat souhaité.
Je ne souhaite pas passer par des macros mais plutôt par des formules, avez une idée ?

Merci
Pièces jointes
18_01_2020_fichier.ods
fichier du 18
(7.65 Kio) Téléchargé 16 fois
17_01_2020_fichier.ods
fichier du 17
(7.65 Kio) Téléchargé 17 fois
sauvegarde.ods
fichier synthèse
(9.63 Kio) Téléchargé 19 fois
LIbreoffice 6.0.7.3 (x64)
Windows 10
parlapresente
Fraîchement OOthentifié
 
Message(s) : 2
Inscrit le : 17 Jan 2020 20:39

Re: concaténation de fichier sans les ouvrir ?

Messagepar OOotremer971 » 18 Jan 2020 00:31

Bonjour,

En E2 :
Code : Tout sélectionner   AgrandirRéduire
=INDIRECT(SUBSTITUE(GAUCHE(CELLULE("filename");TROUVE("#";CELLULE("filename")));"sauvegarde.ods";SUBSTITUE(TEXTE(D2;"JJ/MM/AAAA");"/";"_")&"_fichier.ods")&SUBSTITUE(TEXTE(D2;"JJ/MM/AAAA");"/";"_")&"_fichier"&".A"&NB.SI($D$2:D2;D2)+1)

En F2, remplacer A par B avant NB.SI()

Si le fichier de sauvegarde devait s’appeler autrement, il faudrait remplacer dans la formule : sauvegarde.ods par le vrai nom du fichier

Contrainte : les fichiers à sauvegarder doivent se trouver dans le même répertoire que le fichier de sauvegarde.
Pièces jointes
sauvegarde.ods
(8.09 Kio) Téléchargé 16 fois
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10
Ubuntu 18.04.4 LTS
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
HédOOniste
HédOOniste
 
Message(s) : 2353
Inscrit le : 16 Avr 2010 14:31

Re: concaténation de fichier sans les ouvrir ?

Messagepar Jean-Louis Cadeillan » 18 Jan 2020 02:10

Bonsoir,
Une variante en E2 :
Code : Tout sélectionner   AgrandirRéduire
=INDIRECT(ADRESSE(1+SI(MOD(LIGNE(A1);5)=0;5;MOD(LIGNE(A1);5));1;4;1;"'file:///Chemin complet des fichiers"&TEXTE(D2;"jj-mm-aaaa")&"-fichier.ods'#"&TEXTE(D2;"jj-mm-aaaa")&"-fichier"))
En F2, remplacer 1;4;1 par 2;4;1.
J'ai renommé les fichiers et les onglets en remplaçant le tiret du 8 (_) par le tiret du 6 (-).
Cordialement,
Jean-Louis
LibO 6.3.6.2 (x64 avec Java 1.8.0_241) et AOO 4.1.7 (avec Java x32 1.8.0_261), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
 
Message(s) : 5025
Inscrit le : 03 Jan 2009 00:56

Re: concaténation de fichier sans les ouvrir ?

Messagepar parlapresente » 18 Jan 2020 07:33

Merci pour ce retour, je vais essayer cela, par contre c'est une véritable contrainte de placer les fichiers dans le même répertoire que le fichier de synthèse ?
LIbreoffice 6.0.7.3 (x64)
Windows 10
parlapresente
Fraîchement OOthentifié
 
Message(s) : 2
Inscrit le : 17 Jan 2020 20:39

Re: concaténation de fichier sans les ouvrir ?

Messagepar OOotremer971 » 18 Jan 2020 10:58

Bonjour,
parlapresente a écrit:c'est une véritable contrainte de placer les fichiers dans le même répertoire que le fichier de synthèse ?

Telle que la formule est conçue oui car la fonction CELLULE("filename") nous donne l'emplacement du fichier de synthèse dans ton arborescence. Les chemins de fichier étant différents d'un OS à l'autre, cela permet à la formule de s'adapter automatiquement à l'environnement dans lequel elle est utilisée. Après on peut adapter au cas par cas en saisissant le chemin en dur dans la formule ou dans une expression nommée (Ctrl+F3).

A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10
Ubuntu 18.04.4 LTS
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
HédOOniste
HédOOniste
 
Message(s) : 2353
Inscrit le : 16 Avr 2010 14:31

Re: concaténation de fichier sans les ouvrir ?

Messagepar Jean-Louis Cadeillan » 18 Jan 2020 12:29

Bonjour,
Quelques remarques :
  • les solutions par formule proposées ont une contrainte évidente : tu es obligé de garder les fichiers de base reçus... tu pourrais t'en affranchir par une solution macro... surtout si tu en reçois un par jour !
  • le codage de tes noms de fichiers, si tu veux le garder, ne permet pas un classement chronologique dans le navigateur (17_01_20_fichier = jj_mm_aa_fichier). Pour cela il faudrait plutôt un codage du style aa_mm_jj_fichier.
  • tu remarqueras que quelle que soit la formule, le codage du nom de fichier est essentiel pour les faire fonctionner : j'espère que tu nous as donné le codage réel... sinon tu devras adapter !
  • j'ai remplacé le tiret du 8 (_) par le tiret du 6 (-) pour des raisons de compatibilité avec le formatage date, mais bien sûr tu peux utiliser la fonction SUBSTITUE() pour garder le tiret du 8 (exemple d'utilisation dans la formule d'OOotremer971)
  • OOotremer971 a écrit:en saisissant le chemin en dur
    par exemple dans la formule que je t'avais proposée.
Cordialement,
Jean-Louis
LibO 6.3.6.2 (x64 avec Java 1.8.0_241) et AOO 4.1.7 (avec Java x32 1.8.0_261), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
 
Message(s) : 5025
Inscrit le : 03 Jan 2009 00:56


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot] et 2 invité(s)