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

Rechercher des sujets similaires à "conversion donnees"