Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupérer le chemin et le nom d'un fichier

7 réponses
Avatar
Moos
Comment faire par programmation, pouyr afficher une boite de dialogue pour
selectionner un fichier sur le disque. Je souhaiterai ensuite récupérer le
chemin complet pour un traitement.
Comment faire?

a+.

7 réponses

Avatar
papou
Bonjour
NomFichier = Application.GetOpenFilename
MsgBox NomFichier
(NB : Le fichier n'est pas ouvert avec cette méthode)
Cordialement
Pascal

"Moos" a écrit dans le message de
news:
Comment faire par programmation, pouyr afficher une boite de dialogue pour
selectionner un fichier sur le disque. Je souhaiterai ensuite récupérer le
chemin complet pour un traitement.
Comment faire?

a+.


Avatar
denis P
Pour commencer bonjour (voir les règles du forum)

Solution clefs en main avec API ( trop facile )
denis p.

'=======DP 2002=================================== Option Explicit
'Microsoft Developer Support.
'adaptation Denis Pasquier
'Code Example
'--------------------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type


Private Function SelectAFile(Optional filtre As String = "*.*", Optional
titre As String = "Choix fichier ") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Tous les fichiers (" & filtre & ")" & Chr(0) & filtre & Chr(0)
With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
'.lpstrInitialDir = "C:"
.lpstrTitle = titre
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
SelectAFile = "erann"
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function


Sub test()
'Denis pasquier

Dim Fichier_a_ouvrir As Variant
Fichier_a_ouvrir = SelectAFile("*.xls", "Toto")
If Fichier_a_ouvrir <> "erann" Then
MsgBox Fichier_a_ouvrir

End If
End Sub
===Þnis pasquier 2002=====================================


"Moos" a écrit dans le message de
news:
Comment faire par programmation, pouyr afficher une boite de dialogue pour
selectionner un fichier sur le disque. Je souhaiterai ensuite récupérer le
chemin complet pour un traitement.
Comment faire?

a+.


Avatar
Pierre CFI [mvp]
bonjour
là Denis, tu compliques, car GetOpenFileName existe comme fonction
Application.GetOpenFileName en plus avec l'aide et exemples
tu me diras si tout le monde consulte l'aide, excelabo.net (j'ai pas dit la bible pour AV), et google on fait quoi ? tirer à boulets
rouges sur jps et son compére testou ??? :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"denis P" a écrit dans le message de news:
Pour commencer bonjour (voir les règles du forum)

Solution clefs en main avec API ( trop facile )
denis p.

'=======DP 2002=================================== > Option Explicit
'Microsoft Developer Support.
'adaptation Denis Pasquier
'Code Example
'--------------------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type


Private Function SelectAFile(Optional filtre As String = "*.*", Optional
titre As String = "Choix fichier ") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Tous les fichiers (" & filtre & ")" & Chr(0) & filtre & Chr(0)
With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
'.lpstrInitialDir = "C:"
.lpstrTitle = titre
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
SelectAFile = "erann"
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function


Sub test()
'Denis pasquier

Dim Fichier_a_ouvrir As Variant
Fichier_a_ouvrir = SelectAFile("*.xls", "Toto")
If Fichier_a_ouvrir <> "erann" Then
MsgBox Fichier_a_ouvrir

End If
End Sub
===Þnis pasquier 2002===================================== >


"Moos" a écrit dans le message de
news:
Comment faire par programmation, pouyr afficher une boite de dialogue pour
selectionner un fichier sur le disque. Je souhaiterai ensuite récupérer le
chemin complet pour un traitement.
Comment faire?

a+.






Avatar
denis P
Oui c'est plus compliqué.
mais c'est un peut plus souple d'utilisation, tu peux profiter des fonctions
de filtrage (*.xls, *.txt, ect..), fonction lecture seule, changer le tire
de la boîte de dialogue...

et puis pour le fun...

denis p.

"Pierre CFI [mvp]" a écrit dans le message de
news:%23$
bonjour
là Denis, tu compliques, car GetOpenFileName existe comme fonction
Application.GetOpenFileName en plus avec l'aide et exemples
tu me diras si tout le monde consulte l'aide, excelabo.net (j'ai pas dit
la bible pour AV), et google on fait quoi ? tirer à boulets

rouges sur jps et son compére testou ??? :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"denis P" a écrit dans le message de
news:

Pour commencer bonjour (voir les règles du forum)

Solution clefs en main avec API ( trop facile )
denis p.

'=======DP 2002=================================== > > Option Explicit
'Microsoft Developer Support.
'adaptation Denis Pasquier
'Code Example
'--------------------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type


Private Function SelectAFile(Optional filtre As String = "*.*", Optional
titre As String = "Choix fichier ") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Tous les fichiers (" & filtre & ")" & Chr(0) & filtre &
Chr(0)


With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
'.lpstrInitialDir = "C:"
.lpstrTitle = titre
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
SelectAFile = "erann"
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function


Sub test()
'Denis pasquier

Dim Fichier_a_ouvrir As Variant
Fichier_a_ouvrir = SelectAFile("*.xls", "Toto")
If Fichier_a_ouvrir <> "erann" Then
MsgBox Fichier_a_ouvrir

End If
End Sub
===Þnis pasquier 2002===================================== > >


"Moos" a écrit dans le message de
news:
Comment faire par programmation, pouyr afficher une boite de dialogue
pour



selectionner un fichier sur le disque. Je souhaiterai ensuite
récupérer le



chemin complet pour un traitement.
Comment faire?

a+.










Avatar
Pierre CFI [mvp]
le fun actuellement est de trouver une réponse à testou, qu'il arrive à la faire marcher, et qu'il le dise
Méme notre maitre, grand prédicateur, JPS le bien nommé renonce

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"denis P" a écrit dans le message de news:
Oui c'est plus compliqué.
mais c'est un peut plus souple d'utilisation, tu peux profiter des fonctions
de filtrage (*.xls, *.txt, ect..), fonction lecture seule, changer le tire
de la boîte de dialogue...

et puis pour le fun...

denis p.

"Pierre CFI [mvp]" a écrit dans le message de
news:%23$
bonjour
là Denis, tu compliques, car GetOpenFileName existe comme fonction
Application.GetOpenFileName en plus avec l'aide et exemples
tu me diras si tout le monde consulte l'aide, excelabo.net (j'ai pas dit
la bible pour AV), et google on fait quoi ? tirer à boulets

rouges sur jps et son compére testou ??? :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"denis P" a écrit dans le message de
news:

Pour commencer bonjour (voir les règles du forum)

Solution clefs en main avec API ( trop facile )
denis p.

'=======DP 2002=================================== > > > Option Explicit
'Microsoft Developer Support.
'adaptation Denis Pasquier
'Code Example
'--------------------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type


Private Function SelectAFile(Optional filtre As String = "*.*", Optional
titre As String = "Choix fichier ") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Tous les fichiers (" & filtre & ")" & Chr(0) & filtre &
Chr(0)


With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
'.lpstrInitialDir = "C:"
.lpstrTitle = titre
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
SelectAFile = "erann"
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function


Sub test()
'Denis pasquier

Dim Fichier_a_ouvrir As Variant
Fichier_a_ouvrir = SelectAFile("*.xls", "Toto")
If Fichier_a_ouvrir <> "erann" Then
MsgBox Fichier_a_ouvrir

End If
End Sub
===Þnis pasquier 2002===================================== > > >


"Moos" a écrit dans le message de
news:
Comment faire par programmation, pouyr afficher une boite de dialogue
pour



selectionner un fichier sur le disque. Je souhaiterai ensuite
récupérer le



chemin complet pour un traitement.
Comment faire?

a+.














Avatar
twinley
s ! nonce ??

je croyais qu'il avait re noncé à la religion...
--
à+twinley
"Pierre CFI [mvp]" a écrit dans le message de
news:
le fun actuellement est de trouver une réponse à testou, qu'il arrive à la
faire marcher, et qu'il le dise

Méme notre maitre, grand prédicateur, JPS le bien nommé renonce

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"denis P" a écrit dans le message de
news:

Oui c'est plus compliqué.
mais c'est un peut plus souple d'utilisation, tu peux profiter des
fonctions


de filtrage (*.xls, *.txt, ect..), fonction lecture seule, changer le
tire


de la boîte de dialogue...

et puis pour le fun...

denis p.

"Pierre CFI [mvp]" a écrit dans le message de
news:%23$
bonjour
là Denis, tu compliques, car GetOpenFileName existe comme fonction
Application.GetOpenFileName en plus avec l'aide et exemples
tu me diras si tout le monde consulte l'aide, excelabo.net (j'ai pas
dit



la bible pour AV), et google on fait quoi ? tirer à boulets
rouges sur jps et son compére testou ??? :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"denis P" a écrit dans le message de
news:

Pour commencer bonjour (voir les règles du forum)

Solution clefs en main avec API ( trop facile )
denis p.

'=======DP 2002=================================== > > > > Option Explicit
'Microsoft Developer Support.
'adaptation Denis Pasquier
'Code Example
'--------------------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type


Private Function SelectAFile(Optional filtre As String = "*.*",
Optional




titre As String = "Choix fichier ") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Tous les fichiers (" & filtre & ")" & Chr(0) & filtre &
Chr(0)


With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
'.lpstrInitialDir = "C:"
.lpstrTitle = titre
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
SelectAFile = "erann"
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function


Sub test()
'Denis pasquier

Dim Fichier_a_ouvrir As Variant
Fichier_a_ouvrir = SelectAFile("*.xls", "Toto")
If Fichier_a_ouvrir <> "erann" Then
MsgBox Fichier_a_ouvrir

End If
End Sub
===Þnis pasquier 2002===================================== > > > >


"Moos" a écrit dans le message de
news:
Comment faire par programmation, pouyr afficher une boite de
dialogue





pour
selectionner un fichier sur le disque. Je souhaiterai ensuite
récupérer le



chemin complet pour un traitement.
Comment faire?

a+.


















Avatar
Clément Marcotte
Bonjour,

Et même "Michel" est en train de renoncer.


"Pierre CFI [mvp]" a écrit dans le message
de news:
le fun actuellement est de trouver une réponse à testou, qu'il
arrive à la faire marcher, et qu'il le dise

Méme notre maitre, grand prédicateur, JPS le bien nommé renonce

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"denis P" a écrit dans le message de
news:

Oui c'est plus compliqué.
mais c'est un peut plus souple d'utilisation, tu peux profiter des
fonctions


de filtrage (*.xls, *.txt, ect..), fonction lecture seule, changer
le tire


de la boîte de dialogue...

et puis pour le fun...

denis p.

"Pierre CFI [mvp]" a écrit dans le
message de


news:%23$
bonjour
là Denis, tu compliques, car GetOpenFileName existe comme
fonction



Application.GetOpenFileName en plus avec l'aide et exemples
tu me diras si tout le monde consulte l'aide, excelabo.net (j'ai
pas dit



la bible pour AV), et google on fait quoi ? tirer à boulets
rouges sur jps et son compére testou ??? :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"denis P" a écrit dans le message de
news:

Pour commencer bonjour (voir les règles du forum)

Solution clefs en main avec API ( trop facile )
denis p.

'=======DP 2002=================================== > > > > Option Explicit
'Microsoft Developer Support.
'adaptation Denis Pasquier
'Code Example
'--------------------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME)
As Long





Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type


Private Function SelectAFile(Optional filtre As String "*.*", Optional
titre As String = "Choix fichier ") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As
String




OpenFile.lStructSize = Len(OpenFile)
sFilter = "Tous les fichiers (" & filtre & ")" & Chr(0) &
filtre &




Chr(0)
With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
'.lpstrInitialDir = "C:"
.lpstrTitle = titre
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
SelectAFile = "erann"
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function


Sub test()
'Denis pasquier

Dim Fichier_a_ouvrir As Variant
Fichier_a_ouvrir = SelectAFile("*.xls", "Toto")
If Fichier_a_ouvrir <> "erann" Then
MsgBox Fichier_a_ouvrir

End If
End Sub
===Þnis pasquier 2002===================================== > > > >


"Moos" a écrit dans le
message de




news:
Comment faire par programmation, pouyr afficher une boite de
dialogue





pour
selectionner un fichier sur le disque. Je souhaiterai
ensuite





récupérer le
chemin complet pour un traitement.
Comment faire?

a+.