Re
ne pas typé ta variable fich_txt dans la déclaration en string mais en variant
et forcer sa conversion en string dans l'appel de ta fonction shortfilmane avec CStr()
fred
Sub import_donnees_test()
Dim fich_txt as variant
Application.ScreenUpdating = False
'effacement des données présentes
Feuil1.Range("B7:B" & Feuil1.Cells(Rows.Count, 2).End(xlUp).Row).ClearContents
ChDrive Range("ap22")
ChDir Range("ao22")
'demande a l'utilisateur de choisir un fichier
fich_txt = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
'ouverture du fichier txt
If fich_txt = False Then MsgBox ("appuie cancel"): Exit Sub
Workbooks.OpenText Filename:=fich_txt, Origin:=xlWindows, StartRow:=1, _
DataType:=xlDelimited, Local:=True, Semicolon:=True
'copie des lignes
ActiveWorkbook.Sheets(1).Range("A1:A" & ActiveWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row).Copy 'Workbooks(fich_source).Feuil1.Range("A1")
'collage spéciale des valeurs
ThisWorkbook.Sheets(1).[B7].PasteSpecial xlValues
'fermeture du fichier
Application.DisplayAlerts = False
ActiveWorkbook.Close False
Application.DisplayAlerts = True
Range("B5") = ShortFilename(CStr(fich_txt))
'Range("am6") = ShortFilename(fich_txt)
Application.ScreenUpdating = True
End Sub