VBA vous permet de choisir un fichier à ouvrir en utilisant le Application.GetOpenFilename méthode. Dans ce didacticiel, vous apprendrez à ouvrir une boîte de dialogue de fichier et à définir des paramètres.
Si vous voulez savoir comment ouvrir et fermer un fichier, vous pouvez cliquer sur ce lien : VBA Open/Close File
Ouvrir une boîte de dialogue de fichier dans VBA
Si vous souhaitez ouvrir un fichier en VBA, vous devez d'abord ouvrir une boîte de dialogue de fichier pour choisir un fichier. Voici le code :
123 | Dim strFile As StringstrFile = Application.GetOpenFilename( |
Comme vous pouvez le voir, la méthode a plusieurs paramètres. Filtre de fichiers vous permet de filtrer les types de fichiers dont vous avez besoin, dans notre cas les fichiers .xlsx.
Dans le Titre paramètre, vous pouvez définir un titre de la boîte de dialogue. Si vous souhaitez autoriser l'ouverture de plusieurs fichiers, vous devez définir MultipleSelect à vrai. Si vous ne définissez pas ce paramètre, un seul fichier peut être sélectionné.
Image 1. Ouvrir une boîte de dialogue de fichier
Comme vous pouvez le voir dans l'image 1, la boîte de dialogue apparaît avec le titre Choisissez un fichier Excel. 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 souhaitez 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 :
123456789101112131415161718192021 | Dim fd As Office.FileDialogDim strFile As StringDéfinir fd = Application.FileDialog(msoFileDialogFilePicker)Avec fd.Filtres.Effacer.Filtres.Ajouter "Fichiers Excel", "*.xlsx?", 1.Title = "Choisir un fichier Excel".AllowMultiSelect = False.InitialFileName = "C:\VBA Folder"Si .Show = True AlorsstrFile = .SelectedItems(1)Fin siTerminer par |
Vous devez d'abord déclarer la variable fd taper Office.FileDialog et la variable chaîne pour la prise de fichier :
12 | Dim fd As Office.FileDialogDim strFile As String |
Après cela, vous devez définir fd à Application.FileDialog(msoFileDialogFilePicker) :
1 | Définir fd = Application.FileDialog(msoFileDialogFilePicker) |
Maintenant, à l'intérieur Avec fd Terminer avec, nous pouvons définir plusieurs paramètres :
1234567 | .Filtres.Effacer.Filtres.Ajouter "Fichiers Excel", "*.xlsx?", 1.Title = "Choisir un fichier Excel".AllowMultiSelect = False |
Ici, nous effaçons les filtres de fichiers (.Filtres.Effacer) et définissez-le sur .xlsx (.Filters.Add "Fichiers Excel", "*.xlsx?", 1).
De plus, nous pouvons définir le titre de la boîte de dialogue : .Title = "Choisir un fichier Excel".
Nous pouvons limiter un utilisateur à sélectionner un seul fichier par : .AllowMultiSelect = False
Pour ouvrir une boîte de dialogue dans le dossier que nous voulons, nous devons mettre cette ligne de code :
1 | .InitialFileName = "C:\VBA Folder" |
À la fin, nous ouvrirons simplement la boîte de dialogue avec tous les paramètres précédemment définis :
12345 | Si .Show = True AlorsstrFile = .SelectedItems(1)Fin si |
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. Ouvrir une boîte de dialogue de fichier dans un dossier spécifique