1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
Sub lireFichierTexte()
Dim Tbl() As String
Dim Ligne As String
Dim X As Double
Dim Y As Double
Dim Z As Double
Dim I As Long
Dim J As Long
Dim PosX As Integer
Dim PosY As Integer
Dim PosZ As Integer
'ouvre le fichier texte et stocke les données
'dans un tableau
Open "F:\Fichier.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
I = I + 1
ReDim Preserve Tbl(1 To I)
Tbl(I) = Ligne
Loop
'referme le fichier
Close #1
'pour l'inscription à partir de la ligne 2
J = 1
For I = 1 To UBound(Tbl)
'recherche la ligne des points
If InStr(Tbl(I), "en point") <> 0 Then
'remplace le point par la virgule (à voir si nécessaire ?)
Tbl(I) = Replace(Tbl(I), ".", ",")
'récupère la position des lettres
PosX = InStr(Tbl(I), "X")
PosY = InStr(Tbl(I), "Y")
PosZ = InStr(Tbl(I), "Z")
'extrait les valeurs numériques
X = CDbl(Mid(Tbl(I), PosX + 2, PosY - PosX - 2))
Y = CDbl(Mid(Tbl(I), PosY + 2, PosZ - PosY - 2))
Z = CDbl(Mid(Tbl(I), PosZ + 2, Len(Tbl(I)) - PosY - 2))
'et les inscrit dans la feuille active à partir de la seconde ligne
J = J + 1
Range("A" & J) = X
Range("B" & J) = Y
Range("C" & J) = Z
End If
Next I
End Sub |
Partager