Transformer un .csv en .xls + conversion des données.

prelude141

XLDnaute Nouveau
Bonjour,

J'ai un petit souci et je quémande votre aide.

Je travaille dans un logiciel qui contient des données exportables.

lorsque j'exporte les données, j'obtiens des fichiers .csv

Pour exploiter ces données, je dois effectuer plusieurs opérations que je souhaite rendre automatique car je dois le faire chaque jour pour 15 fichiers et c'est consommateur de temps.

Voici les taches que j'effectue manuellement multipliées par 15:
- export de données du logiciel que j'utilise (ce qui donne 15 fichiers .csv)
- fonction données, convertir pour éclater chaque contenu de lignes en plusieurs colonnes avec comme séparateur la ","
-fonction ctlr "F" puis remplacer, remplacer tout le "." par la ","
-copier/coller les données converties dans un nouveau fichier XL puis sauvegarde.

Je souhaite donc automatiser tout ceci. L'objectif est de sauvegarder les 15 fichiers .csv et que 15 autres fichiers XL aillent chercher les données dans les .csv pour les mettre en forme comme souhaité sachant qu'un autre fichier XL vient ensuite taper les données pour effectuer des calcul mais il ne peut le faire que dans des fichiers XL proprement mis en forme.

Ci joint un exemple.

A noter qu'en parcourant le forum j'ai trouvé une formule de deconcaténation qui fonctionne après adaptation mais le pb est que si je met cette formule dans le CSV, à chaque nouvel upload de données de mon logiciel source, les formules sont écrasées et je ne peux pas, dans un nouveau classeur XL appeler une zone venant d'un .csv non converti (=A1siA1estunecelluledufichiercsvnefonctionepas)
Je tourne donc en rond.

A vous lire.
 

Pièces jointes

  • données converties.xls
    44 KB · Affichages: 163
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Transformer un .csv en .xls + conversion des données.

Bonjour Prelude

Un fichier brut (.csv) serait nettement plus utile pour t'aider
De meme il serait bon de savoir si les .csv sont dans le même repertoire et si ce repertoire est celui du fichier a creer pour les extractions et traitement
Enfin une petite idée de la façon de connaitre les dits fichiers ne serait pas vraiment inutile (noms standardisés ou mentionnés quelque part)
 

prelude141

XLDnaute Nouveau
Re : Transformer un .csv en .xls + conversion des données.

Visiblement on ne peux pas joindre des .csv ici ou alors je ne sais pas comment faire.
Ca ne fonctionne pas non plus avec un hébergeur de fichiers. Comment faire ?

Oui je télécharge tous les csv dans un même répertoire sur mon C et je choisis le nom de chacun. Pour un type de données, je garde toujours le même nom. Par exemple les données sur les oranges sont dans un .csv appelé orange, celles sur les citrons sont loadées dans un csv appelé citron....
Toutes les données sont dans un repertoire appelé "données source".

A partir des fichiers csv du répertoire "donnée source", le but est de créer un second répertoire appelée "données sources mises en formes" contenant soit :
autant de fichiers mais cette fois ci XL. Chaque fichier XL portera le même nom que les .csv mais avec l'extension .xls donc orange.xls , citron.xls. Ces fichiers contiendront les données mises en forme comme décrit dans mon premier post.
soit : un seul fichier XL avec autant d'onglets que le nombre de fichiers csv. Chaque onglet portant le nom du fichier csv correspondant avec le contenu mis en forme comme souhaité.

Je ne comprends pas ta dernière demande : "Enfin une petite idée de la façon de connaitre les dits fichiers ne serait pas vraiment inutile (noms standardisés ou mentionnés quelque part) "

Si ce n'est pas clair, n'hésites pas, je ferai un petit schéma.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Transformer un .csv en .xls + conversion des données.

Re

Voici un essai
Remplir la colonne A avec le nom des fichiers a importer, les cellules B2 D2 avec les noms complets des repertoires ,la celule avec le nom du fichier final a obtenir
Et cliquer sur le bouton
 

Pièces jointes

  • données converties_b.zip
    8 KB · Affichages: 137
  • données converties_b.zip
    8 KB · Affichages: 134
  • données converties_b.zip
    8 KB · Affichages: 137

prelude141

XLDnaute Nouveau
Re : Transformer un .csv en .xls + conversion des données.

Bonjour et Merci d'avoir passé du temps sur mon problème !!

Ca fonctionne à quelques détails prèts:

Les lignes des fichiers csv contiennent des chaines de caractères séparées par des "," et le fichier XL qui se crée quand on fait tourner la macro ne ramène que la première suite de caractères avant la première virgule.

ex:
ligne d'un fichier csv :
2000.12.20,00:00,0.89500,0.91050,0.89410,0.90860,193

ligne du fichier XL:
2000,12,20

Le résultat recherché est (pour une ligne) :
colonne1: 2000.12.20 ( points ou virgule, peu importe)
colonne2: 00:00
colonne3:0,89500
colonne4:0,91050
colonne5:0,89410
colonne6: 0,90860
colonne7:193

J'ai regardé le programme de la macro mais je n'y comprends vraiment rien. Il faudrait que je m'y mette.

Voici l'extrait d'un csv si besoin:

2000.12.20,00:00,0.89500,0.91050,0.89410,0.90860,193
2000.12.21,00:00,0.90860,0.91750,0.90540,0.91580,171
2000.12.22,00:00,0.91580,0.92680,0.91410,0.92370,176
2000.12.25,00:00,0.92250,0.92850,0.91950,0.92570,149
2000.12.26,00:00,0.92560,0.93320,0.92320,0.93000,157
2000.12.27,00:00,0.93060,0.93470,0.92710,0.93150,144
2000.12.28,00:00,0.93060,0.93250,0.92420,0.93010,162
2000.12.29,00:00,0.92910,0.94330,0.92750,0.94260,182
2001.01.01,00:00,0.94240,0.94260,0.94040,0.94110,501
2001.01.02,00:00,0.94210,0.95230,0.93650,0.95110,227
2001.01.03,00:00,0.95060,0.95780,0.92600,0.92750,406
2001.01.04,00:00,0.92740,0.95250,0.92660,0.95020,291
2001.01.05,00:00,0.95060,0.95990,0.94610,0.95790,204
2001.01.08,00:00,0.95820,0.95950,0.94590,0.94780,169
2001.01.09,00:00,0.94720,0.94840,0.93810,0.94350,170
2001.01.10,00:00,0.94350,0.94700,0.93570,0.93750,167
2001.01.11,00:00,0.93710,0.95640,0.93600,0.95270,253
2001.01.12,00:00,0.95220,0.95850,0.94650,0.95220,241
2001.01.15,00:00,0.95220,0.95320,0.94070,0.94250,154
2001.01.16,00:00,0.94150,0.94490,0.93680,0.94170,161
2001.01.17,00:00,0.94220,0.94540,0.92840,0.93670,286
2001.01.18,00:00,0.93580,0.94750,0.93500,0.94290,180
2001.01.19,00:00,0.94250,0.95130,0.93290,0.93480,292
2001.01.22,00:00,0.93450,0.94100,0.92650,0.93910,245
2001.01.23,00:00,0.93840,0.94570,0.93410,0.93490,198
2001.01.24,00:00,0.93450,0.93800,0.92070,0.92460,248
2001.01.25,00:00,0.92380,0.92570,0.91130,0.92470,280
2001.01.26,00:00,0.92460,0.93220,0.91950,0.92490,252
2001.01.29,00:00,0.92350,0.92660,0.91550,0.91750,163
2001.01.30,00:00,0.91700,0.92860,0.91420,0.92660,193
2001.01.31,00:00,0.92630,0.93830,0.92500,0.93790,151
2001.02.01,00:00,0.93750,0.94510,0.93610,0.93750,181
2001.02.02,00:00,0.93710,0.94280,0.93140,0.93650,223
2001.02.05,00:00,0.93510,0.94470,0.93500,0.93830,163
2001.02.06,00:00,0.93790,0.93910,0.92780,0.93160,164

Encore merci de ton temps.
 

pierrejean

XLDnaute Barbatruc
Re : Transformer un .csv en .xls + conversion des données.

Re

Je crains que nous ayons affaire à un problème de version

J'ai travaillé avec Excel 2000 pensant qu'Excel 2003 donnerais le même resultat

Voici d'ailleurs le fichier ressorti a partir d'un .csv conternant ton extrait

Je regarderai demain si une autre methode peut etre utilisée
 

Pièces jointes

  • Fruits.xls
    38 KB · Affichages: 125
  • Fruits.xls
    38 KB · Affichages: 120
  • Fruits.xls
    38 KB · Affichages: 132

pierrejean

XLDnaute Barbatruc
Re : Transformer un .csv en .xls + conversion des données.

Re

Veux-tu tester cette version S.T.P ?
 

Pièces jointes

  • données converties_b.zip
    8.2 KB · Affichages: 90
  • données converties_b.zip
    8.2 KB · Affichages: 89
  • données converties_b.zip
    8.2 KB · Affichages: 93

pierrejean

XLDnaute Barbatruc
Re : Transformer un .csv en .xls + conversion des données.

Re

OK
Toutes mes excuses
J'avais fait l'essai qui etait concluant mais comme la macro ferme le fichier la modif n'avait pas été enregistrée
Cela devrait aller mieux cette fois
 

Pièces jointes

  • données converties_b_c.zip
    7.9 KB · Affichages: 81
  • données converties_b_c.zip
    7.9 KB · Affichages: 83
  • données converties_b_c.zip
    7.9 KB · Affichages: 82

prelude141

XLDnaute Nouveau
Re : Transformer un .csv en .xls + conversion des données.

Ok, ça fonctionne avec un fichier à convertir.

par contre, si j'ai 2 fichiers ou plus à convertir, ça donne le même résultat que précédemment c'est à dire que seule la première colonne apparait dans le fichier converti.
 

pierrejean

XLDnaute Barbatruc
Re : Transformer un .csv en .xls + conversion des données.

Re

On va y arriver , on va y arriver

Teste cette version
 

Pièces jointes

  • données converties_b_c.zip
    10.1 KB · Affichages: 87
  • données converties_b_c.zip
    10.1 KB · Affichages: 86
  • données converties_b_c.zip
    10.1 KB · Affichages: 82

prelude141

XLDnaute Nouveau
Re : Transformer un .csv en .xls + conversion des données.

Bonjour,

ça fonctionne mais il y a encore des bugs visiblement sur certains fichiers csv, le point n'est pas toujours remplacé ou pas sur toutes les suites de caractères.

3 fichiers csv testé, 1 qui bug

ex fichier csv:
2001.01.05,00:00,1.60190,1.61250,1.59260,1.59840,364

ex fichier converti après run de la macro:
2001,01,05 00:00 16 019 16 125 15 926 15 984 364

résultat souhaité:
2001.01.05 00:00 1,6019 1,6125 1,5926 1,5984 364

Il faut que je fasse également des tests avec une quizaine de fichiers, je ferais ça ce wkd.
 

pierrejean

XLDnaute Barbatruc
Re : Transformer un .csv en .xls + conversion des données.

Re

Si la structure est toujours la même cette nieme version devrait convenir
Bon week-end
 

Pièces jointes

  • données converties_b_c.zip
    10.8 KB · Affichages: 152
  • données converties_b_c.zip
    10.8 KB · Affichages: 160
  • données converties_b_c.zip
    10.8 KB · Affichages: 168

Discussions similaires

Statistiques des forums

Discussions
312 023
Messages
2 084 716
Membres
102 637
dernier inscrit
TOTO33000