Excuse-moi Kazuya, mais je ne trouve pas ta fonction super nickel (Code spaghetti, 2 boucles successives, bcp de variables, ...) alors j'en ait fait une autre :
Private Function GetArrayFromFile(sFile As String, ReturnedArray() As Long) As Boolean
Dim i As Long, j As Long, X As Long, Y As Long, Idx As Long
Dim FN As Long, sLine As String, sBuffer As String
If sFile "" Or Dir$(sFile) "" Then
GetArrayFromFile = False
Exit Function
End If
FN = FreeFile
Open sFile For Input As #FN
Line Input #FN, sLine
Idx = InStr(sLine, " ")
X = CLng(Left$(sLine, Idx - 1))
Y = CLng(Mid$(sLine, Idx + 1))
ReDim ReturnedArray(1 To X, 1 To Y)
i = 1
While Not EOF(FN)
Line Input #FN, sLine
sLine = sLine & " "
For j = 1 To Y
Idx = InStr(sLine, " ")
ReturnedArray(i, j) = CLng(Left$(sLine, Idx - 1))
sLine = Mid$(sLine, Idx + 1)
If j < Y And Trim$(sLine) = "" Then
GetArrayFromFile = False
Exit Function
End If
Next
i = i + 1
Wend
If i <= X Then
GetArrayFromFile = False
Exit Function
End If
Close #FN
GetArrayFromFile = True
End Function
Cette fonction prend en arg le nom du fichier et le tableau de long dans lequel sera rangé le résultat, et renvoi True si celui-ci est significatif, et false sinon (Pb dans la lecture du fichier ou nb de lignes/valeur par ligne incohérent avec les données de la 1ere ligne)
Je suis parti du postulat de départ que les données était séparé par des espaces sur chaque ligne et qu'il s'agissait d'un fichier texrte simple (sortant du notepad par exemple)
Christophe R.