Bonjour Michel, Creepy, le Forum
Ben tu as été plus rapide que moi Michel mais j'avais aussi pratiquement l'équivalent, en partie de Clément Marcotte :
Sub TxtLineCountMethodOne()
Dim Chemin As String, Fichier As String
Dim FSO As Object, TXT As Object
Dim Nbr As Long
Chemin = ThisWorkbook.Path & "\"
Fichier = "UpTo20040102.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TXT = FSO.OpenTextFile(Chemin & Fichier, 8, False)
Nbr = TXT.Line - 1
MsgBox "le Fichier " & Fichier & " contient " & Nbr & " lignes "
TXT.Close
Set FSO = Nothing
Set TXT = Nothing
End Sub
Par contre on notera, Michel, que lorsque l'on fait un Set d'Object il est toujours préfarable et recommandé de songer à le(les) vider à "Nothing" en sortie de procédure.
Sinon, vu que Creepy utilise "Split" pour récupérer ces champs, il peut aussi faire un truc comme ceci :
Sub TxtLinesCountMethodTwo()
Dim Chemin As String, Fichier As String
Dim Nbr As Long
Dim i As Integer, ii As Long, iii As Integer
Dim Record As String
Dim Container As Variant
Chemin = ThisWorkbook.Path & "\"
Fichier = "UpTo20040102.txt"
ii = 1
Open Chemin & Fichier For Input As #1
Do While Not EOF(1)
Line Input #1, Record
Nbr = Nbr + 1
Container = Split(Record, Chr(59))
For i = 1 To UBound(Container)
iii = i - 1
Cells(ii, i) = Container(iii)
Next
ii = ii + 1
Loop
Close #1
MsgBox "le Fichier " & Fichier & " contient " & Nbr & " lignes" & vbCrLf & _
"reportée jusqu'en ligne " & Range("A65536").End(xlUp).Row
End Sub
Bonne Journée à Tous et Toutes
@+Thierry