Conversion csv -> xls d'un repertoire complet
Résolu/Fermé
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
-
11 févr. 2009 à 11:59
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 19 févr. 2009 à 19:27
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 19 févr. 2009 à 19:27
A voir également:
- Conversion csv -> xls d'un repertoire complet
- Télécharger film complet sur mobile - Télécharger - TV & Vidéo
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Telechargement film d'action complet en francais - Télécharger - TV & Vidéo
- Xls viewer - Télécharger - Tableur
- Répertoire téléphonique gratuit - Télécharger - Bureautique
43 réponses
UsulArrakis
Messages postés
7405
Date d'inscription
vendredi 28 mars 2003
Statut
Contributeur
Dernière intervention
27 janvier 2022
3 189
11 févr. 2009 à 12:41
11 févr. 2009 à 12:41
Salut
tu veux les convertir tous en une seule fois ou un par un ?
si un par un tu le fais à partir d'excel : ouvrir le csv avec excel puis menu Données / convertir
pour le logiciel que tu as trouvé essaye de l'installer ailleurs que dans ProgramFiles
tu veux les convertir tous en une seule fois ou un par un ?
si un par un tu le fais à partir d'excel : ouvrir le csv avec excel puis menu Données / convertir
pour le logiciel que tu as trouvé essaye de l'installer ailleurs que dans ProgramFiles
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
11 févr. 2009 à 12:47
11 févr. 2009 à 12:47
je veux en une seul fois. y a quant méme 100 fichiers et ca arrive souvent.
j'ai essayé de l'installé ayeur que dans program files, mais il met des fichier dll dans system32 et c'est la que ca coince
j'ai essayé de l'installé ayeur que dans program files, mais il met des fichier dll dans system32 et c'est la que ca coince
UsulArrakis
Messages postés
7405
Date d'inscription
vendredi 28 mars 2003
Statut
Contributeur
Dernière intervention
27 janvier 2022
3 189
11 févr. 2009 à 13:21
11 févr. 2009 à 13:21
tu as le lien pour ton logiciel que je vérifie qu'il fait bien ce que tu souhaites
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
11 févr. 2009 à 14:25
11 févr. 2009 à 14:25
je l'ai testé chez moi, et il marche bien. voici le lien: http://www.convert-files.com/Download/CX.EXE
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
11 févr. 2009 à 15:13
11 févr. 2009 à 15:13
Bonjour,
Normalement quand tu ouvre un fichier csv avec excel il n'y a besoin de rien d'autre. Suffit juste de le sauver sous.. avec extention xls
Il y à moyen de faire ça facilement avec une petite macro VBA
A+
Normalement quand tu ouvre un fichier csv avec excel il n'y a besoin de rien d'autre. Suffit juste de le sauver sous.. avec extention xls
Il y à moyen de faire ça facilement avec une petite macro VBA
A+
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
11 févr. 2009 à 15:25
11 févr. 2009 à 15:25
salut! le probléme c'est qu'il garde le contenu telquel, il ne fait pas les separations des ;
deplus, il faut inserrer la macro dans chaque fichier. c'est un peu lourd
deplus, il faut inserrer la macro dans chaque fichier. c'est un peu lourd
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
11 févr. 2009 à 15:50
11 févr. 2009 à 15:50
Négatif, si tu l'ouvre à partir d'excel ça fonctionne pas, mais en l'ouvrant à partir de l'explorateur, excel fait automatiquement les séparations.
Ensuite reste à les sauver sous xls.
Je cherche pour importer directement du csv (je connais pour texte mais pas pour csv).
Il ne faudrait pas mettre une macro dans chaque classeur mais une seule à partir d'un classeur général.
Et si ce n'est que pour une seule fois ça vaudrait peut-être la peine de le faire en manuel.
Ensuite reste à les sauver sous xls.
Je cherche pour importer directement du csv (je connais pour texte mais pas pour csv).
Il ne faudrait pas mettre une macro dans chaque classeur mais une seule à partir d'un classeur général.
Et si ce n'est que pour une seule fois ça vaudrait peut-être la peine de le faire en manuel.
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
11 févr. 2009 à 17:41
11 févr. 2009 à 17:41
malheureusement, ca va m'arriver souvent
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
11 févr. 2009 à 18:28
11 févr. 2009 à 18:28
OK..... J'ai trouver un système.
Tu ouvre un classeur (moi je l'ai nommer "EssaisCvsXls.xls" mais pas obligé
Dans un module public ce code
Je n'ai pas mis de sélection chemin, je te laisse le soins de le mettre en manuel.
Je te conseil aussi de mettre un point d'arret pour ne faire qu'un fichier à la fois pour les tests.
De stoper après le premier et de bien controller que c'est OK (chez moi c'est nickel mais ont ne sait jamais)
Je n'ai pas prévu non plus d'éliminer le fichier cvs, dans un premier temps c'est plus prudent.
Mais il n'y aurais que 2 lignes à ajouter pour les supprimer en automatique.
Pour fichier cvs avec séparateur = ","
Tu dis
A+
Tu ouvre un classeur (moi je l'ai nommer "EssaisCvsXls.xls" mais pas obligé
Dans un module public ce code
Sub Recupfile() Dim fs, F, f1, s, sf Dim Ext As String, Chemin As String Dim i As Long, Fin As Long Ext = "csv" 'Initialiser le chemin en manuel Chemin = "C:\" Set fs = CreateObject("Scripting.FileSystemObject") Set F = fs.GetFolder(Chemin) Set sf = F.Files For Each f1 In sf 'Debug.Print f1.Name If LCase(Right(f1.Name, 3)) = Ext Then ConvertiCvsXls Chemin, f1.Name End If Next End Sub Sub ConvertiCvsXls(Chemin As String, Fichier As String) Dim TB Dim Lig As Long, i As Integer, NvNom As String Workbooks.Open Filename:=Chemin & Fichier With ActiveSheet For Lig = 1 To Range("A65536").End(xlUp).Row TB = Split(.Cells(Lig, 1), ",") For i = 0 To UBound(TB) - 1 .Cells(Lig, i + 1) = TB(i) Next i Next Lig End With Fichier = Left(Fichier, Len(Fichier) - 3) & "xls" ActiveWorkbook.SaveAs Chemin & Fichier Workbooks(Fichier).Close SaveChanges:=False End Sub
Je n'ai pas mis de sélection chemin, je te laisse le soins de le mettre en manuel.
Je te conseil aussi de mettre un point d'arret pour ne faire qu'un fichier à la fois pour les tests.
De stoper après le premier et de bien controller que c'est OK (chez moi c'est nickel mais ont ne sait jamais)
Je n'ai pas prévu non plus d'éliminer le fichier cvs, dans un premier temps c'est plus prudent.
Mais il n'y aurais que 2 lignes à ajouter pour les supprimer en automatique.
Pour fichier cvs avec séparateur = ","
Tu dis
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
11 févr. 2009 à 18:58
11 févr. 2009 à 18:58
J'ai pas penser de te dire,
La macro est valable pour un nombre de colonne indéterminé mais si tes fichiers ont tous la même structure il y a moyen de faire plus rapide
La macro est valable pour un nombre de colonne indéterminé mais si tes fichiers ont tous la même structure il y a moyen de faire plus rapide
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
11 févr. 2009 à 19:47
11 févr. 2009 à 19:47
y a qu'un truc qui fonctionne pas, c'est le separateur ",".
j'ai le fichier xls mais avec le méme contenu que le csv. tout en une colonne
edit: je vient de m'apercevoire que sur chaque ligne, il me manque les info jusqu'a la premier virgule
exemple:
csv=
29-DEC-2008 03:00:02.163,100.0,100.0,100.0,49.668750000000003,49.668750000000003,41.5,41.5,0.0,1.0,98.78125,67.534374999999997,67.534374999999997,65.0,54.450000000000003,0.0,15.7125,10.821875,13.4,100.0,0.0,9.6000000000000014,31.900000000000002,18.600000000000001,17.5,0
xls= 00:00.0,100,100,100,49.66875,49.66875,41.5,41.5,0,1,98.78125,67.534375,67.534375,65,54.45,0,15.7125,10.821875,13.4,100,0,9.6,31.9,18.6,17.5,0
j'ai le fichier xls mais avec le méme contenu que le csv. tout en une colonne
edit: je vient de m'apercevoire que sur chaque ligne, il me manque les info jusqu'a la premier virgule
exemple:
csv=
29-DEC-2008 03:00:02.163,100.0,100.0,100.0,49.668750000000003,49.668750000000003,41.5,41.5,0.0,1.0,98.78125,67.534374999999997,67.534374999999997,65.0,54.450000000000003,0.0,15.7125,10.821875,13.4,100.0,0.0,9.6000000000000014,31.900000000000002,18.600000000000001,17.5,0
xls= 00:00.0,100,100,100,49.66875,49.66875,41.5,41.5,0,1,98.78125,67.534375,67.534375,65,54.45,0,15.7125,10.821875,13.4,100,0,9.6,31.9,18.6,17.5,0
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
11 févr. 2009 à 20:09
11 févr. 2009 à 20:09
Tu peu pas me passer un de tes fichier cvs ?
si oui, tu met sur Cjoint.com et tu met le lien dans un poste suivant
Mais ce serra pour demain.
A+
si oui, tu met sur Cjoint.com et tu met le lien dans un poste suivant
Mais ce serra pour demain.
A+
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
11 févr. 2009 à 20:25
11 févr. 2009 à 20:25
ok,
pour que le fichier soit moin volumineux, je l'ai réduit à 1700ligne, mais normalement, il y en à 10000
http://cjoint.com/data/cnupaFIZoj.htm
es ce que, a tout hasard, tu connaitrait la une ligne de commande pour le chemin? exemple, mettre le chemin de l'emplacement du fichier convertircsvxls .
pour que le fichier soit moin volumineux, je l'ai réduit à 1700ligne, mais normalement, il y en à 10000
http://cjoint.com/data/cnupaFIZoj.htm
es ce que, a tout hasard, tu connaitrait la une ligne de commande pour le chemin? exemple, mettre le chemin de l'emplacement du fichier convertircsvxls .
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 févr. 2009 à 10:13
12 févr. 2009 à 10:13
HaaaaaaaHa , beh ça fonctionne impec.
FAUDRAIT JUSTE VOIR A ELARGIR LES COLONNES !!!!!
FAUDRAIT JUSTE VOIR A ELARGIR LES COLONNES !!!!!
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
12 févr. 2009 à 13:05
12 févr. 2009 à 13:05
j'ai du me planter quelque par alors car ca ne marche pas de mon cotés
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 févr. 2009 à 13:49
12 févr. 2009 à 13:49
Je suis occupé à rendre l'appli automatique et quand ce serra terminer je la mettrais dans une astuce.
Je te communiquerais le lien.
Pour info : J'ai trouvé le problème sur ton fichier, le séparateur n'est pas la virgule (comme normal) mais le point.
Dans la ligne
TB = Split(.Cells(Lig, 1), ".")
Remplace la virgule par un point et tu refait un essais, tu va voir ça va.
Attention, par exemple pour tes dates il te manque les secondes mais il faudra formater les colonnes suivant ce que tu veux.
Je te communiquerais le lien.
Pour info : J'ai trouvé le problème sur ton fichier, le séparateur n'est pas la virgule (comme normal) mais le point.
Dans la ligne
TB = Split(.Cells(Lig, 1), ".")
Remplace la virgule par un point et tu refait un essais, tu va voir ça va.
Attention, par exemple pour tes dates il te manque les secondes mais il faudra formater les colonnes suivant ce que tu veux.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 févr. 2009 à 14:30
12 févr. 2009 à 14:30
Il y a plein d'erreur sur ton fichier...
1°) le séparateur de la 1ère ligne est la virgule et les suivantes c'est le point. Mais bon, s'il sont tous comme ça je pourrais encore y remédier.
2°) il y a des nombres... tel que 668750000000003,49. et 668750000000003,41 ?? aucun séparateur
or sur d'autres lignes dans la même colonne
40625,49. et 40625,41
Que viennent faires tout ces zéros ? sans séparateur ? c'est juste ?
pour info..
29-DEC-2008 03:00:02.163,100.0,100.0,100.0,49.668750000000003,49.668750000000003,41.
5,41.5,0.0,1.0,98.78125,67.534374999999997,67.534374999999997,65.0,54.450000000000003,0.
0,15.7125,10.821875,13.4,100.0,0.0,9.6000000000000014,31.
900000000000002,18.600000000000001,17.5,0
1°) le séparateur de la 1ère ligne est la virgule et les suivantes c'est le point. Mais bon, s'il sont tous comme ça je pourrais encore y remédier.
2°) il y a des nombres... tel que 668750000000003,49. et 668750000000003,41 ?? aucun séparateur
or sur d'autres lignes dans la même colonne
40625,49. et 40625,41
Que viennent faires tout ces zéros ? sans séparateur ? c'est juste ?
pour info..
29-DEC-2008 03:00:02.163,100.0,100.0,100.0,49.668750000000003,49.668750000000003,41.
5,41.5,0.0,1.0,98.78125,67.534374999999997,67.534374999999997,65.0,54.450000000000003,0.
0,15.7125,10.821875,13.4,100.0,0.0,9.6000000000000014,31.
900000000000002,18.600000000000001,17.5,0
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
12 févr. 2009 à 15:24
12 févr. 2009 à 15:24
non, les separteur son que les , les points sont pour les virgule des nombres à 1millionaime de décimale,
pour que tu comprenne, j'ai le fichier xls converti correct : https://www.cjoint.com/?copwYLpuNb
pour que tu comprenne, j'ai le fichier xls converti correct : https://www.cjoint.com/?copwYLpuNb
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 févr. 2009 à 15:32
12 févr. 2009 à 15:32
ta date, elle à toujours 163 milliseconde ?????
Si oui... C'est ça qui me perturbe depuis le début
Ton séparateur décimale dans excel c'est quoi ? le point ou la virgule.
J'ai essayé de faire des calculs sur ta copie !! tu a essayé?
Evidemment ça dépend du but de la modif en xls, si c'est juste pour voir !
Si oui... C'est ça qui me perturbe depuis le début
Ton séparateur décimale dans excel c'est quoi ? le point ou la virgule.
J'ai essayé de faire des calculs sur ta copie !! tu a essayé?
Evidemment ça dépend du but de la modif en xls, si c'est juste pour voir !
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 févr. 2009 à 15:28
12 févr. 2009 à 15:28
Je crois que j'ai trouver la spécificité de ton fichier.
Le séparateur est bien la virgule SAUF après la date ou c'est un point !!!!!!!
La sub est un peu plus compliquée et ne pourra servir que pour tes fichiers, normalement le séparateur est le même pour tout le fichier.
Remplace la macro ConvertiCvsXls
par celle-ci
Bien entendu ça va durer un peu plus longtemps.
tu dis...
Le séparateur est bien la virgule SAUF après la date ou c'est un point !!!!!!!
La sub est un peu plus compliquée et ne pourra servir que pour tes fichiers, normalement le séparateur est le même pour tout le fichier.
Remplace la macro ConvertiCvsXls
par celle-ci
Sub ConvertiCvsXlsSPECIAL() Dim TB, PR, Txt As String Dim Lig As Long, i As Integer, AncNom As String AncNom = Fichier Workbooks.Open Filename:=Chemin & Fichier With ActiveSheet For Lig = 1 To Range("A65536").End(xlUp).Row If Lig > 1 Then PR = Split(.Cells(Lig, 1), ".") TB = Split(Mid(.Cells(Lig, 1), Len(PR(0)) + 2), ",") Else PR = Split(.Cells(Lig, 1), ",") TB = Split(Mid(.Cells(Lig, 1), Len(PR(0)) + 2), ",") End If .Cells(Lig, 1) = PR(0) For i = 1 To UBound(TB) - 1 .Cells(Lig, i + 1) = TB(i - 1) Next i Next Lig End With Fichier = Left(Fichier, Len(Fichier) - 3) & "xls" If Dir(Chemin & Fichier) = "" Then 'le fichier xls n'existe pas encore ActiveWorkbook.SaveAs Chemin & Fichier Workbooks(Fichier).Close SaveChanges:=False Else 'le fichier xls existe, voir si ont l'écrase sans tomber en erreur. If MsgBox("Le fichier " & Fichier & " existe déjà" & Chr(13) _ & "Faut-il l'écraser ?", vbQuestion + vbYesNo, "Ecraser fichier") = 6 Then Application.DisplayAlerts = False ActiveWorkbook.SaveAs Chemin & Fichier Workbooks(Fichier).Close SaveChanges:=False Application.DisplayAlerts = True Else Workbooks(AncNom).Close SaveChanges:=False End If End If If SuppFichier Then 'supprime le fichier cvs Kill Chemin & AncNom End If End Sub
Bien entendu ça va durer un peu plus longtemps.
tu dis...
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 févr. 2009 à 16:40
12 févr. 2009 à 16:40
Autre constatations,
Excel ne prend pas de format date avec des millièmes de seconde, donc ça doit rester en texte
Même en format Double, excel ne prend pas les millionn!ème de milliardième
49.306,250,000,000,006 ??
maximum sur excel...
49,493.750.000.000.6
Excel ne prend pas de format date avec des millièmes de seconde, donc ça doit rester en texte
Même en format Double, excel ne prend pas les millionn!ème de milliardième
49.306,250,000,000,006 ??
maximum sur excel...
49,493.750.000.000.6
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
12 févr. 2009 à 19:08
12 févr. 2009 à 19:08
je suis pas au milliardieme de seconde prés XD
ton script ne fonctionne pas, j'ai fait un imprime ecran de l'erreur et du débogueur: http://cjoint.com/data/cotgk0Ot4d.htm
ton script ne fonctionne pas, j'ai fait un imprime ecran de l'erreur et du débogueur: http://cjoint.com/data/cotgk0Ot4d.htm
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
13 févr. 2009 à 07:16
13 févr. 2009 à 07:16
Je peu lire ton fichier de la façon que tu veux mais tu ne répond pas à mes questions à savoir,
Quel est le but ? Faire des opérations sur les données ? auquel cas, l'exemple que tu met sur Cjoint ne le permet pas.
Ou bien, ce sont les données en texte qui t'intéresse ?
En fonction de ta réponse je te passerait la macros finale.
Quel est le but ? Faire des opérations sur les données ? auquel cas, l'exemple que tu met sur Cjoint ne le permet pas.
Ou bien, ce sont les données en texte qui t'intéresse ?
En fonction de ta réponse je te passerait la macros finale.