Import CSV dans Excel

Résolu
Bonjour à tous,

J'ai besoin d'importer les données CSV (qui sont toutes dans un même répertoire) et de les mettre dans un unique classeur Excel (j'utilise Excel 2013).
Les fichiers CSV sont tous nommés par leur date (ex : "20161124")
et j'ai besoin de mettre tous les CSV dans la même feuille, les uns à la suite des autres, en ajoutant une colonne date qui reprend le nom du CSV importés.
Est-ce quelqu'un aurait des lignes de codes ou LE code pour m'aider ?
Merci,

5 réponses

  1. bonjour
    pour ma par j'utilise ce code
    Sub Tst()
    Dim Fichier As Variant
    ChDir ThisWorkbook.Path
    Fichier = Application.GetOpenFilename("Text Files (*.csv), *.csv")
    If Fichier <> False Then
    Lire Fichier
    End If
    End Sub

    Sub Lire(ByVal NomFichier As String)

    Dim Chaine As String
    Dim Ar() As String
    Dim i As Long
    Dim iRow As Long, iCol As Long
    Dim NumFichier As Integer
    Dim Separateur As String * 1

    ' Séparateur Point Virgule
    Separateur = ";"

    Cells.Clear
    Application.ScreenUpdating = False
    NumFichier = FreeFile
    iRow = 1

    Open NomFichier For Input As #NumFichier
    Do While Not EOF(NumFichier)
    iCol = 1
    Line Input #NumFichier, Chaine
    Ar = Split(Chaine, Separateur)
    For i = LBound(Ar) To UBound(Ar)
    Ar(i) = Replace(Ar(i), "M-", "")
    Cells(iRow, iCol) = Ar(i)
    iCol = iCol + 1
    Next

    Select Case Cells(iRow, 1)
    Case Is = Cells(iRow, 2)

    End Select

    iRow = iRow + 1
    Loop
    Close #NumFichier

    Application.ScreenUpdating = True
    End Sub


    cela marche très bien
    0
    1. Modérateur
      pour lancer un .cmd, il ne faut normalement pas faire clic-droit/executer, mais juste double cliquer dessus. Avec le clic-droit/executer il ne se lance pas dans le répertoire courant.

      ou alors tu as un soucis avec les extensions de noms de fichier. Sont-elles affichées pour tous tes fichiers ? Tes .csv c'est affiché dans l'explorateur 20161123.csv ou 20161123 ?

      (là je vais me déconnecter)
              un étranger, c'est un ami qu'on n'a pas encore rencontré.
      0
      1. J'ai essayé avec le code suivant : copy *.csv fichiercomplet.csv que j'ai ensuite renommé en fichier .bat
        Double clique dessus et ça a marché nickel
        merci pour ton aide
        0
      2. Modérateur
        @Shrek007super ! merci pour le retour

        tu peux aussi voir la solution de cedri0715 là dans excel
        0
    2. Modérateur
      tu devrais en fin du fichier .cmd une ligne avec la commande
       pause


      Et alors tu auras la trace de ce qui se passe comme :



              un étranger, c'est un ami qu'on n'a pas encore rencontré.
      0
      1. je viens d'ajouter une ligne avec le code pause, mais toujours rien...
        0
    3. Merci mais comment exécuter ces lignes (je ne me souviens plus de comment lancer le terminal....)
      0
      1. Modérateur
        tu fais avec le bloc-notes un fichier qui s'appelle csv.cmd, tu le places dans le répertoire où il y a les csv et dans l'explorateur tu lances le csv.cmd
        0
      2. j'ai créé le fichier à partir du bloc note que j'ai renommé "csv.cmd"
        j'ai ensuite exécuté avec un clic droit... ca a tourné.. et puis plus rien... le fichier texte n'a (apparemment) pas été créé... d'ou peut venir le bug ?
        0
    4. Modérateur
      Salut,

      Tu pourrais concaténer les fichiers csv en dehors d'excel, par exemple avec un .cmd qui contiendrait :
      del new.txt new.csv
      for %%f in (*.csv) do (for /f "delims=" %%l in (%%f) do echo %%~nf;%%l >>new.txt)
      ren new.txt new.csv
      (les lignes affichées en 2 et 3 sont une seule et même ligne)

      cdlt
              un étranger, c'est un ami qu'on n'a pas encore rencontré.
      0
      1. comment spécifier le répertoire où se trouve les fichiers csv ?
        0