Nom et chemin d'un fichier

fileofish

XLDnaute Occasionnel
Bonjour le forum


J'espère que vous aller bien !
Peut être pourrez vous m'aider : Je souhaite récupérer le nom et chemin d'un fichier sélectionné
Le chemin fonctionne mais le nom du fichier ne fonctionne pas :confused:

Sub choix_fichiers()

Dim fichier As String
Dim File_name As String

With Application.FileDialog(msoFileDialogFilePicker)
.Show
On Error Resume Next
chemin = .SelectedItems.Item(1)
nomfich = Mid(chemin.Name, 1, InStrRev(chemin.Name, ".") - 1)
End With
If chemin <> "" Then Range("Chemin_du_fichier").Value = chemin
If chemin <> "" Then Range("Nom_du_fichier").Value = nomfich

End Sub


Avez vous une idée
Merci encore
Philippe
 

Roland_M

XLDnaute Barbatruc
bonjour,

un exemple :

Code:
Sub Choix_Fichiers()
Dim Chemin As String, Fichier As String
With Application.FileDialog(msoFileDialogFilePicker):  .Show
   Chemin = .SelectedItems.Item(1)
End With
If Chemin <> "" Then 'test !?
   Fichier = Mid(Chemin, InStrRev(Chemin, "\") + 1)
   Chemin = Left(Chemin, InStrRev(Chemin, "\") - 1)
   Range("Chemin_du_fichier").Value = Chemin
   Range("Nom_du_fichier").Value = Fichier
End If
End Sub
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Philippe, bonjour le forum,

Peut-être comme ça :

VB:
Sub choix_fichiers()

Dim Filename As String
Dim chemin As String
Dim fichier As String

With Application.FileDialog(msoFileDialogFilePicker)
    .Show
    On Error Resume Next
    Filename = .SelectedItems.Item(1)
    chemin = Left(Filename, InStrRev(Filename, "\", -1, vbTextCompare) - 1)
    fichier = Mid(Filename, InStrRev(Filename, "\") + 1)
End With
If chemin <> "" Then Range("Chemin_du_fichier").Value = chemin
If chemin <> "" Then Range("Nom_du_fichier").Value = fichier
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Philippe, Roland_M, Robert :)

@fileofish

Pourquoi 2 fois les conditions if fichier <>"" then, puisque de toute façon tu vas le sélectionné?? :rolleyes:
Et si après coups tu te dis "Non j'en ai pas besoin"

If Filename = "" Then Exit Sub

VB:
On Error Resume Next
With Application.FileDialog(msoFileDialogFilePicker)
    .Show
    Filename = .SelectedItems.Item(1)
    If Filename = "" Then Exit Sub
       chemin = Left(Filename, InStrRev(Filename, "\"))
      fichier = Mid(Filename, InStrRev(Filename, "\") + 1)
End With
Range("Chemin_du_fichier") = chemin
Range("Nom_du_fichier") = fichier
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Pourquoi les conditions if fichier <>"" then, puisque de toute façon tu vas le sélectionné?? :rolleyes:
Rien de moins sûr…
Mais c'est vrai que j'aurais préféré à un moment If .SelectedItems.Count = 0 Then Exit Sub
Remarque: pour un seul fichier je trouve GetOpenFileName plus simple. Quelqu'un d'entre vous voit-il néanmoins une supériorité de FileDialog(msoFileDialogFilePicker) ?
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 883
Membres
103 014
dernier inscrit
moimoi31