girardpallet
Messages postés5Date d'inscriptionjeudi 23 novembre 2006StatutMembreDernière intervention29 septembre 2008
-
23 sept. 2008 à 15:54
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 2013
-
29 sept. 2008 à 18:36
bonjours,
je suis sous excel 2002 et voila ce que je voudrais faire:
je possède un dossier avec environs une 30 de fichiers .CSV de structure identiques :
je voudrais rapatrier toutes les données de tous les .CVS du repertoire dans un fichiers excel .XLS de meme structure que celle des CSV.
merci de votre aide
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 23 sept. 2008 à 20:44
bonjour ,
Voici un programme à travailler un peu
-----------------------------------------------------
'Charger dans menu Outils\Réference
'Microsoft scripting runtime
Dim fs
Dim fso As New Scripting.FileSystemObject
Dim i As Integer
Set fs = Application.FileSearch
With fs
'METTRE CHEMIN DU DOSSIER ou se trouve les fichiers csv
.LookIn = "C:\Documents and Settings\guest\Mes documents"
.Filename = "*.csv"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
'Parcours les fichiers du dossier
For i = 1 To .FoundFiles.Count
'ouvre les dossiers
Workbooks.Open .FoundFiles(i), , , 4
'enregistre sous...xls
Workbooks(fso.GetFileName(.FoundFiles(i))).SaveAs i, xlExcel9795
'Ferme le classeur
Workbooks(i & ".xls").Close savechanges:=False
Next i
Else
MsgBox "Pas de fichiers"
End If
End With
------------------------------------------------
Il reste à chercher une facon pour ne pas enregister
les fichiers dans le meme dossier a chaque fois que
tu vas lancer ce code.
Bonne suite
A+
girardpallet
Messages postés5Date d'inscriptionjeudi 23 novembre 2006StatutMembreDernière intervention29 septembre 2008 24 sept. 2008 à 10:12
Merci pour ton aide précieuse,mais:
lors de l'execution de la macro, elle ouvre le premier fichier .csv puis j'ai une erreur d'execution 1004: microsoft ne peut acceder au fichier `G:` ???? et le script s'arrète sur :
"Workbooks(fso.GetFileName(.FoundFiles(i))).SaveAs i, xlExcel9795"
pourtant mes fichiers sont bien sur : C:\Documents and Settings\dgirard\My Documents\ALARME\A\
merci de ton aide
de plus, serait il possible d'enregistrer toutes les données, de tous les .csv dans le même fichier XLS.
merci encore
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 24 sept. 2008 à 22:20
Re,
si çela ne marche toujours pas , vérifie l'écriture de ton dossier
.LookIn ="C:\Documents and Settings\dgirard\My Documents\ALARME\A"
Une espace de trop entre les mots crée une erreur.
A++
girardpallet
Messages postés5Date d'inscriptionjeudi 23 novembre 2006StatutMembreDernière intervention29 septembre 2008 24 sept. 2008 à 22:25
hi,
je ne peux pas verifier tout de suite car ja suis sur mon mac, mais je pense que c'est bon car pendant le debut d'execution de la macro, excel ouvre le 1er fichier .csv qui est dans le repertoire en question.
c'est au moment de sauver je pense que ca bloque.
merci
Daniel
girardpallet
Messages postés5Date d'inscriptionjeudi 23 novembre 2006StatutMembreDernière intervention29 septembre 2008 29 sept. 2008 à 13:17
rebonjour,
je viens de reverifier cette macro et tout semble correct !
pourtant j'ai toujours la même erreur que cité précedement.
voici un copier collé de la macro:
Sub test9()
Dim fs
Dim fso As New Scripting.FileSystemObject
Dim i As Integer
Set fs = Application.FileSearch
With fs
'METTRE CHEMIN DU DOSSIER ou se trouve les fichiers csv
.LookIn = "C:\Documents and Settings\dgirard\My Documents\ALARME\A"
.Filename = "*.csv"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
'Parcours les fichiers du dossier
For i = 1 To .FoundFiles.Count
'ouvre les dossiers
Workbooks.Open .FoundFiles(i), , , 4
'enregistre sous...xls
Workbooks(fso.GetFileName(.FoundFiles(i))).SaveAs i, xlExcel9795
'Ferme le classeur
Workbooks(i & ".xls").Close savechanges:=False
Next i
Else
MsgBox "Pas de fichiers"
End If
End With