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