Automatiser l'import de csv dans xls

girardpallet Messages postés 5 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 29 septembre 2008 - 23 sept. 2008 à 15:54
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 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

8 réponses

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
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+
0
girardpallet Messages postés 5 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 29 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
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
24 sept. 2008 à 19:03
bonjour ,
As tu chargés "Microsoft Scripting Runtime" ?

A++
0
girardpallet Messages postés 5 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 29 septembre 2008
24 sept. 2008 à 22:01
bonsoir,
oui, j'ai mis du temps a trouver comment, mais oui c'est fait.
??
a+
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
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++
0
girardpallet Messages postés 5 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 29 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
0
girardpallet Messages postés 5 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 29 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


End Sub

merci de ton aide
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
29 sept. 2008 à 18:36
Bonjour ,
C'est diffcile à dire.Il faut joindre ton fichier excel.
A+
0
Rejoignez-nous