si c'est chaque fois un autre csv avec un autre mise en page, prenez la solution PQ et après vous pouvez retourner vers VBA ou rester en PQ. Autrement ce sera quelque chose comme ceci (à améliorer encore, avec text vers colonnes).
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\Eigenaar\Downloads\csv-anonyme.csv", Destination:=Range("$A$1"))
.CommandType = 0
.Name = "csv-anonyme"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 4, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 1, 1, 4, 1, 1, 4, _
4, 1, 4, 4, 4, 4, 1, 4, 1, 1, 1, 4, 4, 1, 4, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 4, 4, 1, 1, 4, 4, 1, 1, 2, 2, 2, 2, 4, 1, 1 _
, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 1, 1, 1, 1, 1, 1, 1, 4)
.TextFileThousandsSeparator = "."
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Cells.EntireColumn.AutoFit