Convertir en masse .csv en .xls

Fermé
Mopi92 Messages postés 3 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 17 décembre 2015 - 16 déc. 2015 à 18:04
Mopi92 Messages postés 3 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 17 décembre 2015 - 17 déc. 2015 à 10:56
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

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 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 17 décembre 2015
17 déc. 2015 à 10:56
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 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 17 décembre 2015
17 déc. 2015 à 09:49
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