Attention : aussi étrange que ça puisse paraître, Application.GetOpenFileName ne fonctionne PAS dans VBA Access.
Utilisation basique de GetOpenFileName
Sub OuvreFichier1()
Dim QuelFichier
QuelFichier = Application.GetOpenFilename()
MsgBox QuelFichier
End Sub
Dans le cas ou l'utilisateur clique sur Annuler au lieu de Ouvrir, alors, QuelFichier contient simplement False
Sub OuvreFichier2()
Dim QuelFichier
QuelFichier = Application.GetOpenFilename()
If QuelFichier <> False Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné
de fichier"
End If
End Sub
Ici, nous donnons la possibilité de choisir plusieurs types de fichiers. Si vous exécutez ce code, vous aurez ceci dans la liste des types de fichiers :
Sub OuvreFichier3()
Dim QuelFichier
QuelFichier = Application.GetOpenFilename("Fichiers
Visual Basic,*.bas;*.txt, Trucs Excel, *.xls;*.xlt;*.xla")
MsgBox QuelFichier
End Sub
Comme il ne s'agit pas forcément d'ouvrir le fichier choisi, nous avons la possibilité de donner un autre titre à la boîte de dialogue :
Sub OuvreFichier4()
Dim QuelFichier
QuelFichier = Application.GetOpenFilename(, , "Sélectionnez
votre source de données")
MsgBox QuelFichier
End Sub
Dans le cas ou l'on désire pouvoir sélectionner plusieurs fichiers à la fois, ce n'est plus simplement dans une variable QuelFichier que va être stocké le nom du fichier, mais comme il y en a plusieurs, c'est dans un tableau de chaînes de caractères qu'ils vont être stockés, de 1 jusqu'au nombre de fichiers. Vous constatez d'ailleurs que QuelFichier s'est transformé en QuelFichier(). Ubound(QuelFichier) renvoie le nombre de fichiers sélectionnés, et les différents fichiers sont stockés dans QuelFichier(1), QuelFichier(2), etc. jusqu'a QuelFichier(Ubound(QuelFichier))
Sub OuvreFichier5()
Dim QuelFichier()
QuelFichier = Application.GetOpenFilename(, , , , True)
For Ctr = 1 To UBound(QuelFichier)
MsgBox QuelFichier(Ctr)
Next
End Sub
Ecrivez un programme qui demande à l'utilisateur de sélectionner un certain nombre de fichiers à l'extension .DOC, et stockez leur nom dans les cellules A1, A2, A3, etc. dans la feuille courante. La solution se trouve ici plus bas, mais en blanc sur fond blanc. Pour la découvrir, il vous faut la copier/Coller dans votre environnement VBA
Sub OuvreFichierExercice()
Dim QuelFichier()
QuelFichier = Application.GetOpenFilename("Fichiers Word,*.doc",
, , , True)
For Ctr = 1 To UBound(QuelFichier)
Cells(Ctr, 1) = QuelFichier(Ctr)
Next
End Sub