Conversion de données
Bonjour la communauté,
Voilà je cherche dans un premier temps a copier coller des données issu de fichier CSV sur un fichier XLSM. Jusque là pas de problème mis à part que ca colle la feuille sur une seule colonne pour chaque ligne avec des ";" pour séparer les données.
Vous me direz il suffit de faire une conversion de donnée. Oui mais j'aimerai l'automatisé via une macro... L'enregistreur me donne un code qui semble fonctionner cependant le fameux code change la valeur d'une de mes colonne qui correspond à la date d'investissement.
Quelqu'un peut m'aider à faire une macro de conversion tout en conservant les données exactes du fichier ?
Cordialement,
Voiilà le code que j'ai
MsgBox "Choisir le fichier de log 'suivi de prod'"
FileToOpen = Application.GetOpenFilename("Fichiers CSV(*.csv), *.csv", , "Choisir le fichier de log 'suivi de prod'")
If FileToOpen = False Then
MsgBox "Operation annulée", vbExclamation
Exit Sub
End If
Workbooks.Open FileToOpen
Cells.Select
Selection.Copy
Windows("Suivi des contrôles.xlsm").Activate
Sheets("Suivi_de_Prod").Activate
Range("A1").Select
ActiveSheet.Paste
Columns("A:A").Select
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1)), TrailingMinusNumbers:=True
Bonjour,
avec un fichier csv exemple, ce serait mieux !
bonjour
voila un début de macro import 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
Bonjour,
Tu travailles avec Excel 2016. Tu disposes donc de Power Query (Ruban, Récupérer et transformer).
Donc, Ruban, Données, Récupérer et transformer, Nouvelle requête, A partir d'un fichier CSV.
Nul besoin de VBA, et avec l'aide de notre ami commun Google, tu peux t'en sortir rapidement.
Sinon, comme demandé précédemment, joins un fichier CSV.
Cdlt.
Bonjour,
lorsque tu enregistres ta macro, à l'étape 3 de Convertir sélectionne tes colonnes date et choisi le bon format (JMA sans doute).
eric