Extraire le nom du fichier du chemin d'un fichier

Résolu
MrZurg12 Messages postés 15 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 20 juillet 2012 - 31 mai 2012 à 11:12
MrZurg12 Messages postés 15 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 20 juillet 2012 - 1 juin 2012 à 11:40
Bien le bonjour !

Je me tourne vers vous en cette belle matinée car j'ai besoin d'aide. J'ai trouvé une fonction qui me permet de "parcourir" le disque dur pour que l'utilisateur sélectionne un fichier; cette fonction utilise FileDialog. La voici :
Public Function DialogueFichiers() As String
DialogueFichiers = ""
Dim fd As FileDialog
'Crée une boite de dialogue de sélection de fichiers :
Set fd = Application.FileDialog(msoFileDialogFilePicker)

dialog_show:
fd.Show
'limite la sélection à un fichier
If fd.SelectedItems.Count > 1 Then GoTo dialog_show

DialogueFichiers = fd.SelectedItems(1)
Set fd = Nothing
End Function


Du coup, dans ma procédure, j'utilise le chemin donné par la fonction pour ouvrir le fichier. Mais ce que j'aimerai, après avoir ouvert le fichier, c'est récupérer juste le nom de mon fichier (monfichier.xlsx) afin de le mettre dans une variable, et pouvoir récupérer des données et les coller dans mon fichier actuel. Voila mon code
Public Sub Qexport_test_parcourir()
Dim xls As Workbook       ' déclaration d'une variable objet de type classeur Excel
Dim var1 As String          'variable dans laquelle on stocke les valeurs à copier
Dim fd_p As String

fd_p = DialogueFichiers

Workbooks.Open Filename:=(fd_p)
Set xls = Workbooks(fd_p)   'instanciation de l'objet (qui devient ici le fichier excel indiqué)

'on entre des données dans monfichier.xlsx
With xls
   .Worksheets(1).Range("B6").Value = "a"
   .Worksheets(1).Range("B18").Value = "b"
   .Worksheets(1).Range("A18").Value = "c"
End With

' import de données: on choisit les valeurs qui nous intéresse
var1 = xls.Worksheets(1).Range("C2").Value

'on met ces valeurs dans la cellule de notre fichier
ThisWorkbook.Worksheets(2).Range("B2").Value = var1

' une fois que vous avez fini d'utiliser la variable xls, pensez à la détruire
xls.Save
xls.Close True
Set xls = Nothing

End Sub


Vous l'aurez compris, la ligne problématique est "Set xls=Workbook(fd_p)".
En gros il me faudrait une nouvelle variable, qui soit fd_p_title, c'est à dire juste le nom de mon fichier.

Merci de votre aide

Z

5 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
31 mai 2012 à 11:23
erratum :

mais tu auras surement corrigé par toi même:

fd_p_title = Dir(fd_p)

A+
3
CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 5
31 mai 2012 à 19:13
Bonjour,

A mon avis, + simple

'Workbooks.Open Filename:=(fd_p)
Set xls = Workbooks.Open(fd_p)


Cordialement

ctac
3
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
31 mai 2012 à 11:17
Salut,

fd_p = Dir(DialogueFichiers)

A+
0
MrZurg12 Messages postés 15 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 20 juillet 2012
31 mai 2012 à 11:28
Excellent ! Merci beaucoup bigfish !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MrZurg12 Messages postés 15 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 20 juillet 2012
1 juin 2012 à 11:40
Ca marche aussi, merci Ctac.
0
Rejoignez-nous