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

johann91 46 Messages postés jeudi 2 décembre 2004Date d'inscription 21 juillet 2006 Dernière intervention - 5 avril 2006 à 12:03 - Dernière réponse : johann91 46 Messages postés jeudi 2 décembre 2004Date d'inscription 21 juillet 2006 Dernière intervention
- 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
cs_Willi 2381 Messages postés jeudi 12 juillet 2001Date d'inscription 13 février 2015 Dernière intervention - 5 avril 2006 à 12:24
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

Merci cs_Willi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

micmerle 32 Messages postés mercredi 24 mars 2004Date d'inscription 3 août 2006 Dernière intervention - 5 avril 2006 à 12:50
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
cs_Willi 2381 Messages postés jeudi 12 juillet 2001Date d'inscription 13 février 2015 Dernière intervention - 5 avril 2006 à 13:04
0
Merci
250449 micmerle => C'est du vb et johann91 cherche pour du vbs
johann91 46 Messages postés jeudi 2 décembre 2004Date d'inscription 21 juillet 2006 Dernière intervention - 5 avril 2006 à 13:40
0
Merci
Impeccable merci pour à tous pour vos réponses. micmerle c'est exactement ce qu'il me fallait.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.