Extraire le nom du fichier du chemin d'un fichier [Résolu]

Signaler
Messages postés
15
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
20 juillet 2012
-
Messages postés
15
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
20 juillet 2012
-
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

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
erratum :

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

fd_p_title = Dir(fd_p)

A+
Messages postés
133
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
8 juin 2012
4
Bonjour,

A mon avis, + simple

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


Cordialement

ctac
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

fd_p = Dir(DialogueFichiers)

A+
Messages postés
15
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
20 juillet 2012

Excellent ! Merci beaucoup bigfish !
Messages postés
15
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
20 juillet 2012

Ca marche aussi, merci Ctac.