'méthode rapide, ne permet pas l'accès à des fichiers trop volumineux
Public Function CountFileLines(ByVal sPath As String) As Long
Dim FF As Integer
On Local Error GoTo Err_Handler
FF = FreeFile
Open sPath For Input As #FF
On Local Error Resume Next
CountFileLines = UBound(Split(Input(LOF(FF), #FF), vbCrLf)) + 1
Close #FF
Exit Function
Err_Handler:
Err.Clear
CountFileLines = -1
End Function
'méthode un peu plus lente, permettant l'ouverture de fichiers plus volumineux
Public Function CountFileLines(ByVal sPath As String) As Long
Dim FF As Integer, sTemp As String
On Local Error GoTo Err_Handler
CountFileLines = 0
FF = FreeFile
Open sPath For Input As #FF
Do While Not EOF(FF)
Line Input #1, sTemp
CountFileLines = CountFileLines + 1
Loop
Close #FF
Exit Function
Err_Handler:
Err.Clear
CountFileLines = -1
End Function