Dim F1 As Worksheet, F2 As Worksheet, code$
Dim Pnom%, Lnom%, Pgrade%, Lgrade%, P As Range, x$, lig&
Dim c As Range, dest As Range, dossier$, s, i%, y$, c1 As Range
Dim Fichier As Variant
Dim Ka As Workbook, Extract As Workbook
'---données--
Set Extract = ThisWorkbook
Set F1 = Feuil1 'CodeName
Set F2 = Feuil2 'CodeName
'récupération des données du .txt
Fichier = Application.GetOpenFilename _
(Title:="Ouvrir", _
filefilter:="Text (*.txt),*.txt")
If Fichier = False Then
MsgBox "Pas de fichier sélectionné.", , "Microsoft"
Exit Sub
Else
Workbooks.OpenText Filename:=Fichier, _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
Array(0, 1), Array(3, 2), Array(20, 1), Array(28, 1), Array(30, 1)), _
TrailingMinusNumbers:=True
With ActiveWorkbook
If LCase(Right(.Name, 4)) = ".txt" Then 'sécurité
Application.DisplayAlerts = False 'si le fichier .xlsx existe déjà
.SaveAs Left(.Name, Len(.Name) - 4), 51 '51 => format .xlsx
End If
End With
Set Ka = ActiveWorkbook
Range("A1:E" & Range("A" & Rows.Count).End(xlUp).Row).Select
Selection.Copy
Extract.Activate
F1.Activate
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Ka.Close
End If
End Sub