Ouverture d'une boite de dialogue permettant de sélectionner un fichier

Résolu
johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006 - 5 avril 2006 à 12:03
johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006 - 5 avril 2006 à 13:40
Bonjour,

Je suis débutant en vbs, et malgré toutes les recherches que j'ai pu faire jusqu'à présent, je n'ai pas trouvé de solution satisfaisante, donc je tente ici !!

Je souhaiterais faire apparaître à l'écran une boîte de dialogue permettant à l'utilisateur de sélectionner un fichier dans une arborescence. Je voudrais également récupérer le nom et le chemin du fichier sélectionné.

Lors de mes recherches, j'ai trouvé que OpenFileDialog permettrait d'ouvrir une telle boîte. Mais comme je suis totalement novice en vb, je ne sais pas du tout comment l'utiliser ! Est-ce que quelqu'un connaît la démarche à suivre pour utiliser OpenFileDialog, ou pour ouvrir ma boîte de dialogue d'une autre façon ??

Merci d'avance

4 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
5 avril 2006 à 12:24
Salut,
Il y a pas mal d'exemples si tu recherches sur google.

En voici un
-----------------------------------------------------
Dim ObjFSO
Set ObjFSO = CreateObject("UserAccounts.CommonDialog")


ObjFSO.Filter = "Fichier texte|*.txt|Fichier Word|*.doc|All Files|*.*"


ObjFSO.FilterIndex = 3


InitFSO = ObjFSO.ShowOpen


If InitFSO = False Then
Wscript.Echo "Script Error: Please select a file!"
Wscript.Quit
Else
Wscript.Echo "You selected the file: " & ObjFSO.FileName
End If
3
micmerle Messages postés 32 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 3 août 2006
5 avril 2006 à 12:50
Salut,
Pour des raisons? pas réussi à télécharger la biblitohèque pour avoir les common dialog. Par dépit, j'ai trouvé ce code qui marche bien aussi. A nettoyer un peu peut etre.

Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long


Public 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



Public Function GetTheFileName(ByVal filter As String) As String


Dim F As OPENFILENAME
Dim R As Long
Dim fileName As String
Dim myFileExtension As String
Dim myDefaultTitle As String
Dim index As Integer

With F
.lStructSize = Len(F)
.lpstrFile = Space$(1024) & vbNullChar & vbNullChar
.nMaxFile = Len(.lpstrFile)
.lpstrFileTitle = vbNullChar & Space$(512) & vbNullChar & vbNullChar
.nMaxFileTitle = Len(.lpstrFileTitle)
'.nFileExtension = fileExtension '
'name of root folder....
.lpstrInitialDir = ActiveWorkbook.Path
'.lpstrInitialDir = "c:\ emp" & vbNullChar & vbNullChar
.lpstrFilter = filter ' "Text file (*.txt)" + Chr$(0) + "*.txt" + Chr$(0)
'dialog box
.lpstrTitle = "Select a file"
End With


R = GetOpenFileName(F)

If R Then
fileName = Application.WorksheetFunction.Clean(F.lpstrFile)

'get the file extension
index = 1
Do Until (Right(fileName, index) Like "*.*")
index = index + 1
Loop
myFileExtension = Replace(Right(fileName, index), Chr$(0), "")

'check if extension included
index = 1
If fileName Like "*.*" Then
Do Until (Right(fileName, index) Like "*.*")
index = index + 1
Loop
myFileExtension = Right(fileName, index)
fileName = Replace(fileName, myFileExtension, "")
End If
fileName = fileName & myFileExtension
Else
fileName = vbNullString
End If


GetTheFileName = fileName


End Function
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
5 avril 2006 à 13:04
250449 micmerle => C'est du vb et johann91 cherche pour du vbs
0
johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006
5 avril 2006 à 13:40
Impeccable merci pour à tous pour vos réponses. micmerle c'est exactement ce qu'il me fallait.
0
Rejoignez-nous