1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| Public Function OuvrirUnFichier(Handle As Long, _
titre As String, _
TypeRetour As Byte, _
Optional TitreFiltre As String, _
Optional TypeFichier As String, _
Optional RepParDefaut As String) As String
' OuvrirUnFichier est la fonction à utiliser dans votre formulaire pour ouvrir _
' la boîte de dialogue de sélection d'un fichier.
' Explication des paramètres
' Handle = le handle de la fenêtre
' Titre = titre de la boîte de dialogue
' TypeRetour (définit la valeur, de type String, renvoyée par la fonction)
' 1 = chemin complet + nom du fichier
' 2 = nom fichier seulement
' TitreFiltre = titre du filtre
' Exemple: fichier Access
' N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
' TypeFichier = extention du fichier (sans le .)
' Exemple: MDB
' N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
' RepParDefaut = répertoire d'ouverture par défaut
' Exemple: C:\windows\system32
' Si vous laissez l'argument vide, par défaut il se place dans le répertoire de votre application
Dim StructFile As OPENFILENAME
Dim sFiltre As String
' Construction du filtre en fonction des arguments spécifiés
If Len(TitreFiltre) > 0 And Len(TypeFichier) > 0 Then
sFiltre = TitreFiltre & " (" & TypeFichier & ")" & Chr$(0) & "*." & TypeFichier & Chr$(0)
End If
sFiltre = sFiltre & "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0)
' Configuration de la boîte de dialogue
With StructFile
.lStructSize = Len(StructFile) ' Initialisation de la grosseur de la structure
.hwndOwner = Handle ' Identification du handle de la fenêtre
.lpstrFilter = sFiltre ' Application du filtre
.lpstrFile = String$(254, vbNullChar) ' Initialisation du fichier '0' x 254
.nMaxFile = 254 ' Taille maximale du fichier
.lpstrFileTitle = String$(254, vbNullChar) ' Initialisation du nom du fichier '0' x 254
.nMaxFileTitle = 254 ' Taille maximale du nom du fichier
.lpstrTitle = titre ' Titre de la boîte de dialogue
.flags = OFN_HIDEREADONLY ' Option de la boite de dialogue
If ((IsNull(RepParDefaut)) Or (RepParDefaut = "")) Then
RepParDefaut = CurrentDb.Name
PathStripPath (RepParDefaut)
.lpstrInitialDir = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Mid$(RepParDefaut, 1, _
InStr(1, RepParDefaut, vbNullChar) - 1)))
Else: .lpstrInitialDir = RepParDefaut
End If
End With
If (GetOpenFileName(StructFile)) Then ' Si un fichier est sélectionné
Select Case TypeRetour
Case 1: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFile, InStr(1, StructFile.lpstrFile, vbNullChar) - 1))
Case 2: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFileTitle, InStr(1, StructFile.lpstrFileTitle, vbNullChar) - 1))
End Select
End If
End Function |
Partager