Trouver un fichier VBA Excel
Résolu
2pax.cruz
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un formulaire excel et j'aimerais que l'utilisateur puisse rechercher un fichier afin d'utiliser l'emplacement du fichier dans le fichier excel.
Je ne sais pas si je suis clair.
Mais il y'aurais un menu comme lorsqu'on veut ouvrir un fichier. Mais ici, il selectionnerait le fichier en naviguant au travers des dossiers, puis on récupérerait l'emplacement du fichier pour l'utiliser dans Excel.
Merci.
j'ai un formulaire excel et j'aimerais que l'utilisateur puisse rechercher un fichier afin d'utiliser l'emplacement du fichier dans le fichier excel.
Je ne sais pas si je suis clair.
Mais il y'aurais un menu comme lorsqu'on veut ouvrir un fichier. Mais ici, il selectionnerait le fichier en naviguant au travers des dossiers, puis on récupérerait l'emplacement du fichier pour l'utiliser dans Excel.
Merci.
A voir également:
- Trouver un fichier VBA Excel
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Liste déroulante excel - Guide
4 réponses
Salut,
Tu peux adapter la fonction SelectionFichier() trouvée dans cette astuce, comme ceci :
Tu peux adapter la fonction SelectionFichier() trouvée dans cette astuce, comme ceci :
Sub SelectionFichier()
Dim nomfich As String, i As Integer
nomfich = Application.GetOpenFilename(FileFilter:="(*.*),*.*" _
, Title:="Sélectionnez le fichier à convertir")
If nomfich = "Faux" Then 'pas de sélection faite
Exit Sub
End If
For i = Len(nomfich) To 2 Step -1
If Mid(nomfich, i, 1) = "" Then Exit For
Next i
Chemin = Left(nomfich, i)
Fichier = Mid(nomfich, i + 1)
MsgBox Chemin & " " & Fichier
End Sub
Ca fonctionne très bien!
Par contre, est-il possible de seulement récupérer le nom du fichier?
Car ça me donne l'emplacement entier. Par exemple : c:\blabla\fichier.doc
Or, je voudrais juste avoir le "fichier.doc"
Car le fichier est destiné à être envoyé et vu que les dossiers varient d'un pc à l'autre...
Par contre, est-il possible de seulement récupérer le nom du fichier?
Car ça me donne l'emplacement entier. Par exemple : c:\blabla\fichier.doc
Or, je voudrais juste avoir le "fichier.doc"
Car le fichier est destiné à être envoyé et vu que les dossiers varient d'un pc à l'autre...
Bien sur, en manipulant un peu le code et la chaîne de caractère tu peux faire :
Sub SelectionFichier()
Dim nomfich As String, i As Integer
nomfich = Application.GetOpenFilename(FileFilter:="(*.*),*.*" _
, Title:="Sélectionnez le fichier à convertir")
If nomfich = "Faux" Then 'pas de sélection faite
Exit Sub
End If
For i = Len(nomfich) To 2 Step -1
If Mid(nomfich, i, 1) = "\" Then Exit For
Next i
nomfich = Right(nomfich, Len(nomfich) - i)
MsgBox nomfich
End Sub
bonjour,
a la bourre mais
la boucle est inutile dans ce cas
attention quand m^me aux astuces ccm...
a la bourre mais
la boucle est inutile dans ce cas
Dim nomfich As String, i As Integer
nomfich = Application.GetOpenFilename(FileFilter:="(*.*),*.*" _
, Title:="Sélectionnez le fichier à convertir")
If nomfich = "Faux" Then 'pas de sélection faite
Exit Sub
End If
tablo = Split(nomfich, "\")
nomfich = tablo(UBound(tablo))
attention quand m^me aux astuces ccm...
Et pour rester dans la m^me technique pour extraire le chemin seul (il y a d'autres manières mais...)
ma réflexion sur les astuces ne concernait pas la qualité de l'auteur mais un code pouvant être amélioré comme souvent dans cette rubrique et comme souvent dans ceux que je propose
Dim nomfich As String, chemin As String
Dim tablo
nomfich = Application.GetOpenFilename(FileFilter:="(*.*),*.*" _
, Title:="Sélectionnez le fichier à convertir")
If nomfich = "Faux" Then 'pas de sélection faite
Exit Sub
End If
tablo = Split(nomfich, "\")
nomfich = tablo(UBound(tablo))
ReDim Preserve tablo(UBound(tablo) - 1)
chemin = Join(tablo, "\")
ma réflexion sur les astuces ne concernait pas la qualité de l'auteur mais un code pouvant être amélioré comme souvent dans cette rubrique et comme souvent dans ceux que je propose