Convertir en masse .csv en .xls

Mopi92 Messages postés 3 Statut Membre -  
Mopi92 Messages postés 3 Statut Membre -
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à
A voir également:

2 réponses

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
Mopi92 Messages postés 3 Statut Membre
 
Bonjour Maurice

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

@+
0
Mopi92 Messages postés 3 Statut Membre
 
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