Nom de fichier dans une case

Bonjour,

Afin de rapatrier des données pour les analyser mon fichier Excel ouvre un fichier .txt (avec un code VBA), copie les données sur une feuille, ferme le fichier .txt et ensuite les données sont traitées et il en ressort un tableau avec différentes infos.

alors une question comme il existe environ 280 fichiers .txt est-il possible après l'ouverture d'un des fichier .txt de stocker automatiquement le nom du fichier dans une case de mon fichier Excel afin de savoir à quoi se rapporte les données?

en effet je travail à une évolution de mon fichier pour pouvoir analyser les données par 10 fichiers mais le pb est qu'il faut avoir le nom pour si retrouver après.

Ci joint le code d'import du fichier .txt il faudrait mettre le nom en case CK8.

Par avance je vous remercie pour votre aide.

Sub Import()

Dim contenuligne As Variant
Dim ligne As Integer
    'Fichier = "import.txt"

    Dim CheminEtTypeFichier As String, Fichier As String

   Columns("AK:AK").Select
    Application.CutCopyMode = False
    Selection.ClearContents

'Variable à définir : Le chemin par défaut
CheminEtTypeFichier = "Choix du fichier"

Fichier = BrowseFile(CheminEtTypeFichier)

If Fichier <> "" Then

Split(Fichier, "")(UBound(Split(Fichier, ""))) & """"
Else
MsgBox "Aucune sélection a été effectuée."
End If

    Open Fichier For Input As #1

        Do While Not EOF(1) And ligne < 601
        Line Input #1, contenuligne

        Range("AK" & 1 + ligne).Value = contenuligne
        ligne = ligne + 1
        Loop
    Close #1

End Sub
Function BrowseFile(CheminEtTypeFichier) As String
With Application.FileDialog(msoFileDialogFilePicker)
'Définit un titre pour la boîte de dialogue
.Title = "CHOISIR LE FICHIER A IMPORTER"
'Empêcher la multi-sélection
.AllowMultiSelect = False
'Répertoire par défaut suivi du type de fichier par défaut
.InitialFileName = CheminEtTypeFichier
'Efface les filtres existants.
.Filters.Clear
'Définit une liste de filtres pour le champ "Type de fichiers".
.Filters.Add "Classeurs Excel et Fichier Texte", "*.TXT; *.CSV; *.xls*"
'Définit le filtre qui s'affiche par
'défaut dans le champ "Type de fichiers "."
.FilterIndex = 13
'Indique le type d'affichage dans la boîte de dialogue
'(exemple visualisation des propriétés)
.InitialView = msoFileDialogViewProperties
'Affiche la boîte de dialogue
.Show
If .SelectedItems.Count > 0 Then
BrowseFile = .SelectedItems(1)
Else
BrowseFile = ""
End If
End With
End Function

J'ai mis le code pour info mais je n'ai besoin que du code qui va me mettre le nom du fichier dans ma case.

bonjour,

dans quelle cellule veux-tu le nom du fichier ?

CK8 Merci

bonjour,

voici, j'ai mis en commentaire l'instruction qui donne une erreur, ne sachant pas exactement le résultat attendu.

Sub Import()

    Dim contenuligne As Variant
    Dim ligne As Integer
    'Fichier = "import.txt"

    Dim CheminEtTypeFichier As String, Fichier As String

    Columns("AK:AK").Select
    Application.CutCopyMode = False
    Selection.ClearContents

    'Variable à définir : Le chemin par défaut
    CheminEtTypeFichier = "Choix du fichier"

    Fichier = BrowseFile(CheminEtTypeFichier)

    If Fichier <> "" Then

        'Split(Fichier, "")(UBound(Split(Fichier, ""))) & """"
        Range("CK8").Value = Fichier
    Else
        MsgBox "Aucune sélection a été effectuée."
    End If

    Open Fichier For Input As #1

    Do While Not EOF(1) And ligne < 601
        Line Input #1, contenuligne

        Range("AK" & 1 + ligne).Value = contenuligne
        ligne = ligne + 1
    Loop
    Close #1

End Sub

Bonjour,

Merci j'ai bien le nom qui s'affiche mais il y a le chemin du fichier alors est-il possible de n'avoir que le nom du fichier peut-être en passant par une cellule intermédiaire et en mettant une formule en CK8 qui ne va garder que le nom du fichier.

encore merci

bonjour/bonsoir,

adaptation du code

Sub Import()

    Dim contenuligne As Variant
    Dim ligne As Integer, v
    'Fichier = "import.txt"

    Dim CheminEtTypeFichier As String, Fichier As String

    Columns("AK:AK").Select
    Application.CutCopyMode = False
    Selection.ClearContents

    'Variable à définir : Le chemin par défaut
    CheminEtTypeFichier = "Choix du fichier"

    Fichier = BrowseFile(CheminEtTypeFichier)

    If Fichier <> "" Then
        v = Split(Fichier, Application.PathSeparator)
        Range("CK8") = v(UBound(v))
    Else
        MsgBox "Aucune sélection a été effectuée."
    End If

    Open Fichier For Input As #1

    Do While Not EOF(1) And ligne < 601
        Line Input #1, contenuligne

        Range("AK" & 1 + ligne).Value = contenuligne
        ligne = ligne + 1
    Loop
    Close #1

End Sub

Bonjour,

super j'ai juste le nom du fichier.
un grand merci vous êtes au top.

bonne continuation
Rechercher des sujets similaires à "nom fichier case"