Importation .csv vers une feuille Excel

Bonjour, je cherche à utiliser une fichier csv et le mettre dans une feuille xlsm. Pour cela j'utilise un code que j'ai trouvé sur votre site et créé par STEELSON. Néanmoins le code fonctionne mais pas pour tous les fichiers csv. Voici la macro utilisé et le fichier csv. Merci dd'avance

6lecture-csv.xlsm (14.23 Ko)

Bonjour,

Sinon avec cette méthode :

Sub ImportCsv()

Dim Fichiercsv, icsv, jcsv, Contenucsv, Tablecsv, Ncsv

    Fichiercsv = Application.GetOpenFilename("Fichiers csv, *.csv")
    If Fichiercsv = False Then Exit Sub

    Workbooks.OpenText Filename:=Fichiercsv, Origin:=65001, StartRow _
        :=4, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, _
        Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 4), 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)), _
        TrailingMinusNumbers:=True

    ActiveWorkbook.SaveAs Filename:=Mid(Fichiercsv, 1, Len(Fichiercsv) - 4) & ".xlsx", FileFormat:=xlOpenXMLWorkbook

End Sub

Bonjour,
Une autre approche.
On peut imaginer créer un tableau structuré (listobject) et formater les colonnes.
Cdlt.

Public Sub lecture()
Dim wb As Workbook
Dim dialogBox As FileDialog
Dim sPath As String, sFilename As String, selectedFile As String
Dim arr As Variant

    Set wb = ThisWorkbook
    sPath = wb.Path & Application.PathSeparator
    sFilename = Left(wb.Name, (InStrRev(wb.Name, ".", -1, vbTextCompare) - 1)) & ".xlsx"

    Set dialogBox = Application.FileDialog(msoFileDialogFilePicker)

    With dialogBox
        .Filters.Add "CSV", "*.CSV", 1
        .AllowMultiSelect = False
        If .Show = True Then
            selectedFile = .SelectedItems(1)
        End If
    End With

    If selectedFile <> "" Then
        Workbooks.OpenText Filename:=selectedFile, startrow:=4, DataType:=xlDelimited, semicolon:=True, local:=True
        arr = ActiveWorkbook.Worksheets(1).Cells(1).CurrentRegion
        wb.Worksheets("Feuil1").Cells(1, 1).Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
        ActiveWorkbook.Close savechanges:=False
    End If

    'ActiveWorkbook.SaveAs Filename:=sPath & sFilename, FileFormat:=xlOpenXMLWorkbook
    'ActiveWorkbook.SaveAs Filename:=sPath & sFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled

End Sub

Merci pour vos réponse mais cela ne fonctionne malheureusement pas comme je veux. Ce code fait partie d'un ensemble plus grand que je vous joint ci-dessous. Les valeurs du fichier csv sont censées arriver dans l'onglet "Valeurs" ou bien en créer un autre que je renomme "Valeurs" peu importe.

10certificat.zip (398.72 Ko)
Rechercher des sujets similaires à "importation csv feuille"