Creer fichier Excel avec données d'un *.csv

Signaler
Messages postés
20
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
11 février 2013
-
Messages postés
6
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
27 avril 2009
-
J'ai plusieurs fichiers csv que je doit réunir en un seul fichier excel (une feuille par csv).

Y a t-il un moyen de copier tout les fichiers csv dans une feuille excel en une simple commande ?

Je n'ai pas trouvé de post pouvant répondre à ma question.

Merci de votre aide, cela est véritablement urgent.

3 réponses

Messages postés
213
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
6 janvier 2011
1
couf
0
Messages postés
1
Date d'inscription
dimanche 25 mai 2003
Statut
Membre
Dernière intervention
3 décembre 2003

1) est ce que les fichiers csv sont avec en entete les noms de colonnes et ensuite les données

car si c'est le cas tu peux considérer tes fichiers csv comme des bases de données et effectuées des requetes dessus et exporter le résultat dans la feuille considérer
j'ai dja fait ce genre de truc sur 800 fichiers csv dans 1 meme rep, avec des conditions dans mes colonnes
le résultat est un fichier excel avec le resultat de la requete dans une feuille portant les données extraites du fichier en question.

Si la condition 1) est bonne je peux retrouver le code en question
0
Messages postés
6
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
27 avril 2009
2
code:
Sub OuvreTTFichiers()
    Dim Fichier As Variant
    Dim Source As Variant
    Dim Origine As Variant
    Dim n As Integer
   
    Origine = ActiveWorkbook.Name  ' récupère le nom du fichier pour pouvoir le sélectionner ensuite
   
' Ouvrir 1 fichier
    Reponse = MsgBox("Sélectionnez le répertoire qui contient les fichiers d'export (.csv), puis cliquez sur 1 des fichiers.", vbInformation + vbOKCancel, "Importation des noms et résultats des élèves")
    If Reponse = 2 Then Exit Sub
   
   Fichier = Application.GetOpenFilename
   If Fichier = False Then Exit Sub
  
' Ouvre 1 fichier si c'est 1 csv avec ; on ajoute , Local:=True
' (à partir d'Excel 2002)
    Sheets("format").Visible = True     'rend visible la feuille "format" sinon plantage
    monfichier = Dir("*.csv")
    While monfichier <> ""
        Workbooks.Open monfichier, Local:=True
        '  copie d'1 plage
       Range("C6:CY355").Copy
       
        ' Désactive la fenêtre d'alerte "beaucoup de données dans le PP"
        Application.DisplayAlerts = False
       
        ' Ne demande pas d'enregistrement
        ActiveWorkbook.Saved = True
        ActiveWorkbook.Close
       
        ' Active la feuille de circ et colle les données csv
       
        Windows(Origine).Activate    ' se place sur le fichier de départ
       
        Sheets.Add after:=Worksheets(Worksheets.Count)  'ajoute un feuille à la fin
        Range("A6").Select
        ActiveSheet.Paste  ' colle le contenu du presse papier
       
        'Application.CutCopyMode = False     'vide le presse papier ???
                
        ' récupération du nom du fichier et écriture dans l'onglet et cellule B7
        Range("A1").Select
                    x Len(monfichier) - 4  ' 4 nb de caractères pour l'extension .csv
        nom = Left(monfichier, x)
        'MsgBox "nom onglet = " & nom
       
        Range("B7") = nom
        ActiveSheet.Name = nom
                       
        monfichier = Dir()
     
        'Réactive les messages d'alerte
        Application.DisplayAlerts = True
       
       
    'Formatage des colonnes etc par copier/coller du formatage de la feuille "format"
   
    Sheets("format").Select
    Cells.Select
    Application.CutCopyMode = False     'vide le presse papier ???
    Selection.Copy
    Sheets(nom).Select
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        
            
               
    Wend
   Sheets("format").Visible = False  'cache la feuille "format"
     
End Sub

chevalpat
0