Public Const csvSeparator As String = ";"
Sub test()
Dim myFso, lignesParOnglet As Long, tabStr() As String, i As Integer, csvFile, compteurLignes As Long, noFeuilleExtract As Integer, cellExtract As Range
Set myFso = CreateObject("Scripting.FileSystemObject")
Set csvFile = myFso.OpenTextFile(Application.GetOpenFilename("Fichier .csv, *.csv"), 1)
lignesParOnglet = 60000
noFeuilleExtract = 0
compteurLignes = lignesParOnglet
While Not csvFile.AtEndOfStream
If compteurLignes >= lignesParOnglet Then
noFeuilleExtract = noFeuilleExtract + 1: compteurLignes = 0
ThisWorkbook.Sheets.Add after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = "Extract_" & noFeuilleExtract
Set cellExtract = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Range("A1")
End If
tabStr = Split(csvFile.ReadLine, csvSeparator)
For i = LBound(tabStr) To UBound(tabStr)
cellExtract.Offset(0, i).Value = tabStr(i)
Next i
compteurLignes = compteurLignes + 1
Set cellExtract = cellExtract.Offset(1, 0)
Wend
End Sub