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
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Xls viewer - Télécharger - Tableur
43 réponses
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
13 févr. 2009 à 08:24
13 févr. 2009 à 08:24
en gros, se fichier est un historique des valeur de process d'une chaufferrie et du reseau urbain.
se sont les temperatures , pression, valeur d'ouverture de vanne,ect...
on s'en sert pour faire des courbe, vérifier qu'il n'y a pas eu de depassement, faire des calcul, etc.
je pense qu'il faut donc le format adapté. date, et valeur. pour les valeurs, 2 chiffre aprés la virgule suffit. pour la date, on peut s'arrété à la seconde prés.
j'espere avoir répondu à tes question. si tu en a d'autre n'hésite pas
edit: j'ai oublié de te dire, j'utilise exel 2007 chez moi. je ne sais pas si sa a son importance
se sont les temperatures , pression, valeur d'ouverture de vanne,ect...
on s'en sert pour faire des courbe, vérifier qu'il n'y a pas eu de depassement, faire des calcul, etc.
je pense qu'il faut donc le format adapté. date, et valeur. pour les valeurs, 2 chiffre aprés la virgule suffit. pour la date, on peut s'arrété à la seconde prés.
j'espere avoir répondu à tes question. si tu en a d'autre n'hésite pas
edit: j'ai oublié de te dire, j'utilise exel 2007 chez moi. je ne sais pas si sa a son importance
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
13 févr. 2009 à 08:42
13 févr. 2009 à 08:42
Je ne pense pas qu'il y aura un problème avec excel 2007
J'ai contourner ton problème en faisant une appli qui laisse tout les choix possibles
Je l'ai testée et c'est OK
NB: Pour la colonne des dates si tu sélectionne Nombre ou Standard il faut formatter les cellules
En Standard les nombres sont afficher avec les décimales d'origine
En numérique ils sont tous avec 3 décimales.
Dés que j'ai terminer la rédaction de l'astuce je te passe le lien.
J'ai contourner ton problème en faisant une appli qui laisse tout les choix possibles
Je l'ai testée et c'est OK
NB: Pour la colonne des dates si tu sélectionne Nombre ou Standard il faut formatter les cellules
En Standard les nombres sont afficher avec les décimales d'origine
En numérique ils sont tous avec 3 décimales.
Dés que j'ai terminer la rédaction de l'astuce je te passe le lien.
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
13 févr. 2009 à 08:55
13 févr. 2009 à 08:55
ok, merci. j'attends ca avec impatience.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
13 févr. 2009 à 10:30
13 févr. 2009 à 10:30
Beh voila, j'espère que ça te conviendra.
http://www.commentcamarche.net/faq/sujet 16109 excel convertir fichier s csv xls
Tu dis...
A+
http://www.commentcamarche.net/faq/sujet 16109 excel convertir fichier s csv xls
Tu dis...
A+
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
13 févr. 2009 à 13:01
13 févr. 2009 à 13:01
c'est présque tout nickel. bonne idée le coup de la boite de dialogue. (j'utilise la conversion numérique)
mais la premier colone reste au format texte avec la valeur "39811" au lieu d'une date
mais la premier colone reste au format texte avec la valeur "39811" au lieu d'une date
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
13 févr. 2009 à 13:18
13 févr. 2009 à 13:18
Faut lire...
Tu doit formater la colonne jj mmm aaaa hh:mm:ss
A+
Edit:
Dans ton cas tu peu ajouter dans la fonction de convertion la ligne
Je pouvais pas mettre ça dans l'astuce, c'est spécifique a tes fichiers.
Tu doit formater la colonne jj mmm aaaa hh:mm:ss
A+
Edit:
Dans ton cas tu peu ajouter dans la fonction de convertion la ligne
.Columns("A:A").NumberFormat = "dd mmm yyyy hh:mm:ss" juste avant le End With
Je pouvais pas mettre ça dans l'astuce, c'est spécifique a tes fichiers.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
13 févr. 2009 à 14:50
13 févr. 2009 à 14:50
ca marche pas. ta conversion du début me modifie toute la colonne à la méme date: exemple 29/12/2008 00:00:00 sur toute la colonne
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
13 févr. 2009 à 18:37
13 févr. 2009 à 18:37
Tu doit employer le format Standard, quand il y a des dates avec des heures c'est du type 39811,1253722569
et en format numérique tu n'a plus que 3 décimales.
Et ajouter les 2 lignes ci-dessous avant le With
Mais en principe, c'est chacun qui doit adapter suivant ses besoins, en cherchant un peu tu aurais trouver
A+
et en format numérique tu n'a plus que 3 décimales.
Et ajouter les 2 lignes ci-dessous avant le With
Cells.NumberFormat = "0.000" Columns("A:A").NumberFormat = "dd mmm yyyy hh:mm:ss"
Mais en principe, c'est chacun qui doit adapter suivant ses besoins, en cherchant un peu tu aurais trouver
A+
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
13 févr. 2009 à 22:15
13 févr. 2009 à 22:15
j'avais trouvé, mais ca me fait toujours la méme date sur les 8000lignes
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
14 févr. 2009 à 09:31
14 févr. 2009 à 09:31
Comprend pas, je fait exactement...
Sélection Standard
et ajouter les 2 lignes.
résultat
https://www.cjoint.com/?cqjEb6FVPa
a+
EDIT, il y a autre chose qui cloche, c'est le format pour sauver, j'ai rectifier sur la démo
2 lignes à modifier (ou a ajouter une partie)
ActiveWorkbook.SaveAs Filename:=Chemin & Fichier, FileFormat:=xlExcel5
Sélection Standard
et ajouter les 2 lignes.
résultat
https://www.cjoint.com/?cqjEb6FVPa
a+
EDIT, il y a autre chose qui cloche, c'est le format pour sauver, j'ai rectifier sur la démo
2 lignes à modifier (ou a ajouter une partie)
ActiveWorkbook.SaveAs Filename:=Chemin & Fichier, FileFormat:=xlExcel5
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
14 févr. 2009 à 18:40
14 févr. 2009 à 18:40
oui, merci, mais ca résoud toujours pas le probléme de ma colone où la date et l'heure sont toute les méme alors qu'entre chaque ligne y devrai y avoir 10 seconde de plus a chaque fois.
en plus, quand j'ouvre le fichier converti et sauvegardé, il y a un message "se fichier n'a pas le format correct, voulais vous quand méme ouvrir?" je mets oui, et je me retrouve avec le méme fichier qu'au départ(tout en une colonne, comme s'il n'a pas été converti)
en plus, quand j'ouvre le fichier converti et sauvegardé, il y a un message "se fichier n'a pas le format correct, voulais vous quand méme ouvrir?" je mets oui, et je me retrouve avec le méme fichier qu'au départ(tout en une colonne, comme s'il n'a pas été converti)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
15 févr. 2009 à 13:30
15 févr. 2009 à 13:30
OK, sur le 2007 c'est différent, j'ai du tester pour trouver.
En fait le 2007 fait directement la convertion (sans rien signaler).
Donc faut modifier la macros, elle ne te servira plus que pour convertir tout le répertoir et faire la mise en forme des colonnes. (mais plus pour convertir csv/xls qui est pris en charge directement par Excel2007)
Tu dis, et en fonction de ta réponse je modifiérais la démo.
En fait le 2007 fait directement la convertion (sans rien signaler).
Donc faut modifier la macros, elle ne te servira plus que pour convertir tout le répertoir et faire la mise en forme des colonnes. (mais plus pour convertir csv/xls qui est pris en charge directement par Excel2007)
'Convertir un fichier cvs en xls (EXCEL 2007) . Sub ConvertiCvsXls() Dim TB Dim Lig As Long, i As Integer, AncNom As String AncNom = Fichier Workbooks.Open Filename:=Chemin & Fichier Application.DisplayAlerts = False Application.ScreenUpdating = False With ActiveSheet Cells.NumberFormat = "0.000" Columns("A:A").NumberFormat = "dd mmm yyyy hh:mm:ss" End With If SauveXLS Then Fichier = Left(Fichier, Len(Fichier) - 3) & "xls" If Dir(Chemin & Fichier) = "" Then 'le fichier xls n'existe pas encore ActiveWorkbook.SaveAs Filename:=Chemin & Fichier, FileFormat:= _ xlOpenXMLWorkbookMacroEnabled 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 Filename:=Chemin & Fichier, FileFormat:= _ xlOpenXMLWorkbookMacroEnabled Workbooks(Fichier).Close SaveChanges:=False Application.DisplayAlerts = True ElseIf Tous Then 'Eviter la surcharge de classeur si tous les fichiers Workbooks(AncNom).Close SaveChanges:=False Else Application.DisplayAlerts = True Application.ScreenUpdating = True Exit Sub End If End If End If If SuppFichier Then 'supprime le fichier cvs Kill Chemin & AncNom End If Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Tu dis, et en fonction de ta réponse je modifiérais la démo.
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
15 févr. 2009 à 18:16
15 févr. 2009 à 18:16
avant l'ouverture de l'explorateur pour choisir un fichier, il y a un bug sur la ligne:
If SelectionFichier() Then
ConvertiCvsXls
je sais pas si s'est parce que je mal inserré.
If SelectionFichier() Then
ConvertiCvsXls
je sais pas si s'est parce que je mal inserré.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
16 févr. 2009 à 11:13
16 févr. 2009 à 11:13
Suite à ton MP... RELIRE MON POSTE 35 SVP.
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
16 févr. 2009 à 11:29
16 févr. 2009 à 11:29
j'ai bien lu et compris. mais ton script ne fonctionne pas chez moi. de plus y va y avoir probléme: j'ai 2 poste a mon boulot où je suis suceptible de faire les conversion et il y en a un avec ecxel 2007 et l'autre 2003
je suis entrain de désespérer
je suis entrain de désespérer
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
16 févr. 2009 à 12:47
16 févr. 2009 à 12:47
Bon désespère pas.. :-)
L'erreur que tu signale ne peut être due qu'a une maivaise insertion de la fonction.
Tu devais la mettre A LA PLACE DE CELLE EXISTANTE, cad d'abord supprimé l'existente et ENSUITE coller la nouvelle à la même place.(dans le même module)
NB: quand il y a une erreur signalée c'est important de donner sont N° et le libellé de l'erreur.
J'ai tester sur 2007 et la fonction ci dessus fonctionne impec.
La version dans la démo fonctionne sur le 2000
Tu veux quoi?
Une version unique qui prend en compte les différences (possible, je l'avais fait mais je l'ai supprimé)
Ou bien une version pour 2007 et une version pour 2000>2003
?? tu dis
L'erreur que tu signale ne peut être due qu'a une maivaise insertion de la fonction.
Tu devais la mettre A LA PLACE DE CELLE EXISTANTE, cad d'abord supprimé l'existente et ENSUITE coller la nouvelle à la même place.(dans le même module)
NB: quand il y a une erreur signalée c'est important de donner sont N° et le libellé de l'erreur.
J'ai tester sur 2007 et la fonction ci dessus fonctionne impec.
La version dans la démo fonctionne sur le 2000
Tu veux quoi?
Une version unique qui prend en compte les différences (possible, je l'avais fait mais je l'ai supprimé)
Ou bien une version pour 2007 et une version pour 2000>2003
?? tu dis
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
16 févr. 2009 à 16:23
16 févr. 2009 à 16:23
si j'ai 2 version qui fonctionne ca me va. je reteste le tout, et je te dis(bien que pour la version exel 2003 se sera pour jeudi). merci
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
19 févr. 2009 à 13:48
19 févr. 2009 à 13:48
salut!
j'ai testé sur exel2003, la conversion fonction correctement (en fesant les modif que tu as dit post 33)
mais la sauvegarde de tout le dossier ne fonctionne pas. il manque la syntaxe "/" sur le chemin
http://cjoint.com/data/cvnTqLFP4b.htm
je pense que c'est une bricole, mais je ne sais pas où.
j'ai testé sur exel2003, la conversion fonction correctement (en fesant les modif que tu as dit post 33)
mais la sauvegarde de tout le dossier ne fonctionne pas. il manque la syntaxe "/" sur le chemin
http://cjoint.com/data/cvnTqLFP4b.htm
je pense que c'est une bricole, mais je ne sais pas où.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
19 févr. 2009 à 18:21
19 févr. 2009 à 18:21
il n'est pas prévu de lire dans un répertoir et de sauver dans un autre.
C'est ça que tu veux faire ?
C'est ça que tu veux faire ?
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
19 févr. 2009 à 18:24
19 févr. 2009 à 18:24
non, je veux sauvegarder dans le méme repertoire
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
19 févr. 2009 à 18:36
19 févr. 2009 à 18:36
Tu a raison, vu que je n'avais pas plusieurs csv j'ai pas tester cette partie.
dans la sub ConvertiRep
faut ajouter une ligne
Note que je comprend pas, sur la démo il y a cette ligne !
dans la sub ConvertiRep
faut ajouter une ligne
If LCase(Right(f1.Name, 3)) = Ext Then Fichier = f1.Name ConvertiCvsXls End If
Note que je comprend pas, sur la démo il y a cette ligne !
beneton
Messages postés
64
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
14 février 2017
5
19 févr. 2009 à 18:42
19 févr. 2009 à 18:42
non, elle y est déja cette ligne
--------------------------------------------------------
'Lire tout les fichiers du répertoir spécifié.
Sub ConvertiRep()
Dim fs, F, f1, s, sf
Dim i As Long, Fin As Long
'-----------------------------------------------------------
'Sélectionner le répertoir
SelectionRep
'-----------------------------------------------------------
Set fs = CreateObject("Scripting.FileSystemObject")
Set F = fs.GetFolder(Chemin)
Set sf = F.Files
For Each f1 In sf
If LCase(Right(f1.Name, 3)) = Ext Then
Fichier = f1.Name
ConvertiCvsXls
End If
Next
End Sub
--------------------------------------------------------
'Lire tout les fichiers du répertoir spécifié.
Sub ConvertiRep()
Dim fs, F, f1, s, sf
Dim i As Long, Fin As Long
'-----------------------------------------------------------
'Sélectionner le répertoir
SelectionRep
'-----------------------------------------------------------
Set fs = CreateObject("Scripting.FileSystemObject")
Set F = fs.GetFolder(Chemin)
Set sf = F.Files
For Each f1 In sf
If LCase(Right(f1.Name, 3)) = Ext Then
Fichier = f1.Name
ConvertiCvsXls
End If
Next
End Sub