Boite de dialogue de sélection de fichier

tedparker Messages postés 176 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 25 septembre 2006 - 1 juil. 2004 à 14:05
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 1 juil. 2004 à 14:55
J'aimerais faire une boite de dialogue pour sélectionner un fichier (pas l'ouvrir).
Quelqu'un a-t-il le code source de cette msgbox?
Merci

2 réponses

cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
1 juil. 2004 à 14:28
moi pour ca j'utilise une API, mais c'est pas un msgbox :
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 Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

ceci correspond à l'API et à un type qui lui est nécessaire.

pour l'appeler :
Dim OFName As OPENFILENAME
With OFName
.lStructSize = Len(OFName)
.hWndOwner = Me.hWnd
.hInstance = App.hInstance
.lpstrFilter = "Document texte (en .txt)" + Chr$(0) + "*.txt" + Chr$(0)
.lpstrFile = Space$(254)
.nMaxFile = 255
.lpstrFileTitle = Space$(254)
.nMaxFileTitle = 255
.lpstrInitialDir = "C:"
.lpstrTitle = "Choix du fichier"
.flags = 0
End With
If GetOpenFileName(OFName) Then
Resultat = Trim$(OFName.lpstrFile)
MsgBox Resultat, vbInformation
End If


la ligne qui commence par .lpstrFilter doit etre modifiée en fonction du type de fichier autorisé.

Houzéf@ - www.123toto.com
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
1 juil. 2004 à 14:55
Il Faut utiliser le Composant CommonDialogue en cochant les cases : Fichiers…Composants…
Microsoft Windows Common Control 6.0 (SP4)
Microsoft Windows Common Control-2 6.0 (SP4)

Ensuite dans ton Code :

CommonDialog1.CancelError = True' Attribue à CancelError la valeur True

On Error GoTo ErrHandler

CommonDialog1.DialogTitle = "Selection de Fichier" ' Définit le titre de la fenêtre

CommonDialog1.Flags = cdlOFNHideReadOnly' Définit la propriété Flags

CommonDialog1.InitDir = "C:" ' Chemin Initial

CommonDialog1.Filter = "Fichiers (*.*)|*.*"' Définit les filtres

CommonDialog1.FilterIndex = 2' Définit le filtre par défaut

CommonDialog1.ShowOpen' Affiche la boîte de dialogue Ouverture

TonChemin= CommonDialog1.FileName ‘ Enregistrement du Chemin Selectionné

Exit Sub
ErrHandler:
'L'utilisateur a cliqué sur Annuler
Exit Sub

It@li@
0
Rejoignez-nous