[VBA / Excel] Nom de fichier sans adresse

sfritz Messages postés 49 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
j'utilise cette méthode pour ouvrir un fichier texte (.txt), puis j'afficher son adresse dans un textbox:

fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> "Faux" Then
Open fileToOpen For Input As #1

NomFic = fileToOpen

TextBox1.Text = NomFic

NomFic contient l'adresse complète de mon fichier ( C:\....\texte.txt), mais j'aimerai juste afficher le nom du fichier (texte.txt),
comment afficher juste le nom du fichier?

Merci
Configuration: Windows XP
Firefox 2.0.0.11

4 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Essaies ces instructions
    fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If fileToOpen <> "Faux" Then
    Open fileToOpen For Input As #1

    tablo = Split(fileToOpen, "\")
    NomFic = tablo(UBound(tablo))

    End If
    0
  2. sfritz Messages postés 49 Statut Membre 6
     
    Merci, ça marche.

    Mais n'y a-t-il pas une méthode moins sauvage que de créer un tableau?
    Du genre:

    NomFic = fileToOpen.name ?

    Merci
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bin pourquoi tu demandes de l'aide, alors?
    filetoopen est une variable de type String!!! donc tonfiletoopen.name est un non-sens.
    0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour tous,
    Peut-être une autre façon pour avoir les données d'un fichier, mais tout aussi "SAUVAGE".
    Donnée uniquement à titre d'info.
    Sub AfficheInfoAccesFichier()
    Dim specfichier As String
    specfichier = CheminEtNomEtExt
        Dim fs, D, F, G, s
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set F = fs.GetFile(specfichier)
        s = "Le nom du fichier est : " & F.Name & vbCrLf
        s = s & UCase(F.Path) & vbCrLf
        s = s & "Créé le : " & F.DateCreated & vbCrLf
        s = s & "Dernier accès le : " & F.DateLastAccessed & vbCrLf
        s = s & "Dernière modification le : " & F.DateLastModified
        MsgBox s, 0, "Infos sur le fichier : " &  F.Name 
    End Sub

    Bien sûr, tu peu n'employer que les 3 lignes qui t'intéresse
    A+
    0