bonsoir,
Une solution :
Sub Galopin()
Dim myFile$, Arr, i%, cpt%, FirstLine%
FirstLine = 24
myFile = Application.GetOpenFilename()
Workbooks.OpenText Filename:=myFile, _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, _
Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1)), TrailingMinusNumbers:=True
Arr = ActiveSheet.[A1].CurrentRegion.Value
ActiveWorkbook.Close
With ActiveSheet
For i = 1 To UBound(Arr)
If Mid(Arr(i, 1), 1, 3) = "100" Then
.Cells(FirstLine + cpt, 1) = Mid(Arr(i, 1), 4, 1)
.Cells(FirstLine + cpt, 2) = Format(Mid(Arr(i, 1), 15, 4), "0000")
.Cells(FirstLine + cpt, 3) = Mid(Arr(i, 1), 5, 2)
.Cells(FirstLine + cpt, 4) = Mid(Arr(i, 1), 6, 3)
.Cells(FirstLine + cpt, 5) = Arr(i, 2)
cpt = cpt + 1
End If
Next
End With
End Sub
Nota : J'ai mis FirstLine à 24... A adapter...
A+