Convertir en masse .csv en .xls

Mopi92 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Mopi92 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

Je cherche un script VBA pour convertir plusieurs .csv avec un séparateur ; en tableau .xls.

Il faudrait en plus que je puisse choisir les fichiers à convertir et que cela ne supprime pas les sources.

Voilà

2 réponses

  1. Maurice
     
    Bonjour
    voila une macro pour faire des cumuls de fichier CSV
    Sub ListeFichier()
    Dim Dossier As FileDialog
          Chemin = ActiveWorkbook.Path & Application.PathSeparator
    Set Dossier = Application.FileDialog(msoFileDialogOpen)
       With Dossier
          .AllowMultiSelect = False
          .InitialFileName = Chemin
          .Title = "Choix d'une fichier Elise"
                With .Filters
                   .Clear
                   .Add "Fichiers Textes", "*.csv", 1
                End With
          .InitialFileName = ""
          'Interdit la multi sélection
          .AllowMultiSelect = False
             If .Show = -1 Then
                   Fichier = .SelectedItems(1)
                   Call LireFichier(Fichier)
                Else
                   Exit Sub
             End If
       End With
    Set Dossier = Nothing
    End Sub
    
    Sub LireFichier(NomFichier)
    Dim Ar() As String
       With Application
          .ScreenUpdating = False
          .EnableEvents = False
          .Calculation = xlManual
       End With
    Sep = ";"
    Lig = Range("A" & Rows.Count).End(xlUp).Row + 1
    If Lig = 2 Then Lig = 1
    ' -------------------------------------
        Open NomFichier For Input As #1
            Do While Not EOF(1)
                Line Input #1, Chaine
                   Ar = Split(Chaine, Sep)
                   Col = 1
                      For X = LBound(Ar) To UBound(Ar)
                         Cells(Lig, Col) = Ar(X)
                         Col = Col + 1
                      Next
                Lig = Lig + 1
            Loop
        Close #1
    ' -------------------------------------
       With Application
          .ScreenUpdating = True
          .Calculation = xlCalculationAutomatic
          .EnableEvents = True
          .CutCopyMode = False
          .Goto [A1], True
       End With
       MsgBox "Terminer"
    End Sub
    

    A+
    Maurice
    2
    1. Mopi92 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour Maurice

      J'ai ajouté une réponse au sujet pour compléter l'explication du cas que je souhaite traiter.

      @+
      0
  2. Mopi92 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour Maurice

    La conversion en tableau est bien faîte.

    Par contre j'aurais souhaité que cela créé un nouveau fichier et que cela soit autorisé pour plusieurs fichiers sources simultanément.

    1 : lancer la macro (avec un bouton) depuis un fichier exel "macro cumuls de fichiers CSV"
    2 : l'explorateur de dossier s'ouvre avec un filtre sur les fichiers type .csv
    3 : on est autorisé à choisir 1 ou plusieurs fichiers (100 par ex!)
    4 : la macro créée autant de nouveaux fichiers en .xls avec le même nom et les données en tableau (séparation ;) et ils sont enregistrés dans le même dossier que les fichiers sources.

    C'est peut-être mieux expliqué sous cette forme.

    Merci bien pour tes réponses.

    Antoine
    0