Enfin un source simple pour créer une boite de dialogue d'ouverture de fichier. Tout simplement basé sur le principe d'un common dialog, ce code ne pose aucun problème de licence et autre trucs du style (je l'ai utilisé avec le minimum possible d'options office intallées). Il ya a deux parties pour le code. Créez d'abord un Form avec un bouton de commande appelé Command1 et une TextBox appelée Text1. La première partie du code doit être entrée dans un nouveau module (insert\Module). La deuxième partie est une private sub qui récupérera dans la textbox le résultat de votre sélection de fichier. A vous d'en faire ce que vous voulez! ;)
Remarquez que vous pouvez changer pas mal de paramètres dans la fenêtre de sélection.
Source / Exemple :
'******************************************************
'* A mettre dans le module *
'******************************************************
Option Compare Database
Private 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
Function LaunchCD(strform As Form) As String
Dim OpenFile As OPENFILENAME
Dim lReturn As Long
Dim sFilter As String
OpenFile.lStructSize = Len(OpenFile)
OpenFile.hwndOwner = strform.hwnd
sFilter = "Text Files (*.TXT)" & Chr(0) & "*.TXT" & Chr(0) 'Choisissez ici le filtre de fichiers
OpenFile.lpstrFilter = sFilter
OpenFile.nFilterIndex = 1
OpenFile.lpstrFile = String(257, 0)
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
OpenFile.lpstrFileTitle = OpenFile.lpstrFile
OpenFile.nMaxFileTitle = OpenFile.nMaxFile
OpenFile.lpstrInitialDir = "C:\" 'Choisissez ici le répertoire initial
OpenFile.lpstrTitle = "Titre" 'Entrez ici le titre de votre boite de dialogue
OpenFile.flags = 0
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
MsgBox "No File selected!", vbInformation, _ 'Personnalisez le message d'erreur
"Please select a Text File"
Else
LaunchCD = Trim(Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, vbNullChar) - 1))
End If
End Function
'*******************************************
'* A mettre dans le code du form *
'*******************************************
Private Sub Command1_Click()
Me!Text1 = LaunchCD(Me)
End Sub
Conclusion :
Merci à MSDN! ;)
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.