VBA – Boîte de Dialogue pour Ouvrir un Fichier
VBA vous permet de choisir un fichier à ouvrir à l’aide de la méthode Application.GetOpenFilename. Dans ce tutoriel, vous apprendrez à ouvrir une boîte de dialogue de fichier et à définir ses paramètres.
Si vous voulez apprendre comment ouvrir et fermer un fichier, vous pouvez cliquer sur ce lien : VBA Ouvrir/Fermer un fichier
Ouvrir une Boîte de Dialogue de Fichier en VBA
Si vous voulez ouvrir un fichier en VBA, vous devez d’abord ouvrir une boîte de dialogue pour choisir un fichier. Voici le code :
Dim strFichier As String
strFichier = Application.GetOpenFilename( _
FileFilter:="Fichiers Excel (*.xlsx*), *.xlsx*", _
Title:="Choisissez un fichier Excel à ouvrir", _
MultiSelect:=True)
Comme vous pouvez le voir, la méthode a plusieurs paramètres. FileFilter vous permet de filtrer les types de fichiers dont vous avez besoin, dans notre cas les fichiers .xlsx.
Dans le paramètre Title, vous pouvez définir un titre pour la boîte de dialogue. Si vous voulez permettre l’ouverture de plusieurs fichiers, vous devez définir MultipleSelect à True. Si vous ne définissez pas ce paramètre, un seul fichier peut être sélectionné.
Image 1. Dialogue d’ouverture d’un fichier
Comme vous pouvez le voir dans l’image 1, la boîte de dialogue apparaît avec le titre Choisissez un fichier Excel à ouvrir. Seuls les fichiers Excel sont filtrés et nous pouvons sélectionner plusieurs fichiers.
Ouvrir une Boîte de Dialogue de Fichier dans un Dossier Spécifique
Si vous voulez ouvrir une boîte de dialogue dans un dossier spécifique, vous devez utiliser la méthode .FileDialog avec le paramètre msoFileDialogFilePicker. Dans l’exemple, nous allons ouvrir une boîte de dialogue dans le dossier « C:\Dossier VBA ». Voici le code :
Dim fd As Office.FileDialog
Dim strFichier As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "Fichiers Excel", "*.xlsx?", 1
.Title = "Choisissez un fichier Excel"
.AllowMultiSelect = False
.InitialFileName = "C:\Dossier VBA"
If .Show = True Then
strFichier = .SelectedItems(1)
End If
End With
Tout d’abord, vous devez déclarer la variable fd de type Office.FileDialog et la variable string pour la prise de fichier :
Dim fd As Office.FileDialog
Dim strFichier As String
Ensuite, vous devez définir fd comme un objet Application.FileDialog(msoFileDialogFilePicker) :
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Maintenant, en utilisant une structure With fd … End With, nous pouvons définir plusieurs paramètres :
.Filters.Clear
.Filters.Add "Fichiers Excel", "*.xlsx ?", 1
.Title = "Choisissez un fichier Excel"
.AllowMultiSelect = False
Ici, nous effaçons les filtres de fichiers (.Filters.Clear) et nous les réglons à .xlsx (.Filters.Add « Excel Files », « *.xlsx ? », 1).
Nous pouvons également définir le titre de la boîte de dialogue : .Title = « Choisissez un fichier Excel ».
Nous pouvons limiter l’utilisateur à la sélection d’un seul fichier par : .AllowMultiSelect = False
Pour ouvrir une boîte de dialogue dans un dossier spécifique, nous devons mettre cette ligne de code :
.InitialFileName = "C:\Dossier VBA"
A la fin, ce code permet d’ouvrir la boîte de dialogue avec tous les paramètres précédemment définis :
If .Show = True Then
strFichier = .SelectedItems(1)
End If
Lorsque nous exécutons ce code, la boîte de dialogue d’ouverture de fichier apparaît dans le dossier C:\Dossier VBA:
Image 2. Dialogue d’ouverture d’un fichier dans un dossier spécifique
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!