Ouvrir des fichiers CSV

Bonjour,

Lorsque j'ouvre mes deux fichiers au format ". Csv" dans une cession Excel les données se trouvent bien rangées dans chaque colonne.

Dans mon code ci dessous, la macro ouvre les deux fichiers et fait un copier coller. Cependant lorsque qu'elle colle les données, celle ci sont rassemblées en une ou plusieurs colonnes séparées par un point virgule.

Sub test()

Dim SourceFile As String, ThisFile As String, ShtToCopy As String, SourceFile2 As String
Dim Ws As Workbook, wf As Workbook
 Dim sht As Worksheet

    SourceFile = Dir("/Users/raphael-guillaume/Desktop/Essai/032018.CSV")
    ThisFile = Dir("/Users/raphael-guillaume/Desktop/Essai/Classeur4.xlsx")
    ShtToCopy = "032018"
    ShtToCopy2 = "042018"

    SourceFile2 = Dir("/Users/raphael-guillaume/Desktop/Essai/042018.CSV")

    On Error Resume Next
Workbooks.Open ("/Users/raphael-guillaume/Desktop/Essai/042018.CSV")
    On Error GoTo 0

    Workbooks(SourceFile).Worksheets(ShtToCopy).Activate
    Cells.Copy
    Workbooks(ThisFile).Worksheets("Janvier").Activate
    Range("A1").Select: ActiveSheet.Paste: Range("A1").Select
    Application.CutCopyMode = False
    Range("A1").Select
Workbooks("032018.CSV").Close False
On Error Resume Next
    Set Ws = Workbooks(SourceFile2)
    If Ws Is Nothing Then Workbooks.Open SourceFile2

    Set wf = Workbooks(ThisFile)
    If wf Is Nothing Then Workbooks.Open ThisFile
    On Error GoTo 0

    Workbooks(SourceFile2).Worksheets(ShtToCopy2).Activate
    Cells.Copy
    Workbooks(ThisFile).Worksheets("Fevrier").Activate
    Range("A1").Select: ActiveSheet.Paste: Range("A1").Select
    Application.CutCopyMode = False
    Range("A1").Select
    Workbooks("042018.CSV").Close False
    end Sub

Pouvez vous m'aider s'il vous plaît

Bonjour

voila une macro pour importer un fichier .CSV

Private Sub ChoixFicCsv()
Dim dossier As FileDialog
ChoixChemin = ActiveWorkbook.Path & Application.PathSeparator
   Set dossier = Application.FileDialog(msoFileDialogFilePicker)
      With dossier
         .AllowMultiSelect = False
         .InitialFileName = ChoixChemin
         .Title = "Choix d'un fichier CSV"
         .Filters.Clear
         .Filters.Add "Fichier Csv ", "*.csv*", 1
            If .Show = -1 Then
               Chemin = .SelectedItems(1)
               LireMan Chemin
            End If
      End With
   Set dossier = Nothing
End Sub

Sub LireMan(NomFichier)
Dim Ar() As String
   With Application
      .ScreenUpdating = False
      .EnableEvents = False
      .Calculation = xlManual
   End With
Rows("1:" & Rows.Count).ClearContents
Sep = ";"
Lig = 1
' -----------------------------------------
On Error Resume Next
   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).Value = CStr(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
End Sub

A+

Maurice

Merci de ta reponse, mon problème est dans le copier

Dans mon , la macro ouvre les deux fichiers et fait un copier coller. Cependant lorsque qu'elle colle les données, celle ci sont rassemblées en une ou plusieurs colonnes séparées par un point virgule.

Bonjour,

Avec ta version Excel (2016) tu peux envisager de travailler avec Récupérer et transformer (Power Query).

Un lien pour t'expliquer la chose.

re

tu a mis Ouvrir des fichiers CSV

mes bon voila pour exporter un CSV

A+

Maurice

Private Sub ExportCSV()
Dim Chemin As String
Dim Fichier As String
Dim CheminFiche As String
Application.ScreenUpdating = False
Nom = "Test1" ' nom du fichier
Ext = ".csv"
Fichier = Nom & Ext
Chemin = ActiveWorkbook.Path & Application.PathSeparator
CheminFiche = Chemin & Fichier
Sep = ";"
Nlig = Cells(Rows.Count, 1).End(xlUp).Row
   Set Plage = Cells(1, 1).CurrentRegion 'Range("A1:V" & Nlig)
      Open CheminFiche For Output As #1
         For Each Lig In Plage.Rows
            Ligne = ""
               For Each Cel In Lig.Cells
                  Ligne = Ligne & CStr(Cel.Text) & Sep
               Next
             Print #1, Left(Ligne, Len(Ligne) - 1)
         Next
      Close
   Set Plage = Nothing
Application.ScreenUpdating = True
MsgBox "Terminer"
End Sub
Rechercher des sujets similaires à "ouvrir fichiers csv"