Ouverture d'une boite de dialogue permettant de sélectionner un fichier [Résolu]

Messages postés
46
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
21 juillet 2006
- - Dernière réponse : 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
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
2376
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
16
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 190 internautes nous ont dit merci ce mois-ci

Messages postés
32
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
3 août 2006
0
Merci
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
Messages postés
2376
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
16
0
Merci
250449 micmerle => C'est du vb et johann91 cherche pour du vbs
Messages postés
46
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
21 juillet 2006
0
Merci
Impeccable merci pour à tous pour vos réponses. micmerle c'est exactement ce qu'il me fallait.