Hierbij een oplossing om je .csv om te zetten naar een .txt en DIE dan te openen. Met een .txt heb je per array (veld) de mogelijkheid om aan te geven wat voor datatype je gaat binnenhalen...
Sub OpenCSV_Leo()
Set fso = CreateObject("Scripting.FileSystemObject")
BestandsnaamCSV = Application.GetOpenFilename("Text Files (*.csv), *.csv", , "Zoek bank-bestand...")
If BestandsnaamCSV <> False Then
BestandsnaamTXT = Replace(BestandsnaamCSV, fso.GetExtensionName(BestandsnaamCSV), ".txt")
Name BestandsnaamCSV As BestandsnaamTXT
Workbooks.OpenText Filename:=BestandsnaamTXT, Origin:=65001, _
StartRow:=1, 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, 4), 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)), TrailingMinusNumbers:=True
Else
MsgBox "Er is op Cancel gedrukt bij het zoeken naar het .csv bestand. Verwerking afgebroken...", vbOKOnly, "Verwerking gestopt..."
End If
Columns("A:N").EntireColumn.AutoFit
Range("A1").Select
End Sub
Daarnaast niet met een vast pad in de code, maar een uitvraging van de bestandsnaam via een windows venster. Vind ik persoonlijk altijd een stuk netter.