VBA FileDialog - Comment ouvrir la boîte de dialogue FilesDialog en utilisant le code VBA?

Table des matières

Fichier de dialogue Excel VBA

Dans VBA fieldialog est une propriété qui est utilisée pour représenter différentes instances, dans fileialog, il existe quatre types de constantes différents qui sont connus sous le nom de msofiledialogfilepicker qui est utilisé pour sélectionner un fichier à partir d'un chemin donné, le second est msofiledialogfolderpicker dont le nom suggère est utilisé pour choisir un dossier et le troisième est msofiledialog ouvert pour ouvrir un fichier et le dernier est msofiledialogsaveas qui est utilisé pour enregistrer un fichier en tant que nouveau fichier.

Il y a certaines circonstances où nous voulons les données de tout autre fichier ou de toute autre feuille de calcul, et comme VBA est utilisé pour automatiser notre travail, nous pouvons ouvrir différents autres fichiers en utilisant VBA, et cela se fait en utilisant la boîte de dialogue Fichier, la partie cool L'utilisation de cette méthode est que nous n'avons pas besoin de fournir le chemin d'accès au code au lieu de cela, nous demandons à l'utilisateur de parcourir le fichier.

Dans le cadre du projet VBA, nous pouvons avoir besoin d'ouvrir d'autres classeurs et d'exécuter une sorte de tâche avec eux. Dans l'un des articles précédents, «VBA Workbook.Open», nous avons montré comment ouvrir des fichiers avec un chemin et un fichier spécifiques. Là, nous devions fournir le chemin du dossier et le nom du fichier avec son extension. Mais que se passe-t-il si chaque fois qu'un utilisateur doit sélectionner les différents fichiers dans les différents dossiers. C'est là que l'option "FileDialog" entre en scène.

Comment fonctionne l'option VBA FileDialog?

"Si vous ne connaissez pas le chemin exact, FileDialog trouvera et sélectionnera le fichier." Au lieu de mentionner l'adresse du chemin et le nom du fichier, nous pouvons présenter une fenêtre de dialogue d'ouverture de fichier séparément pour sélectionner le fichier dans n'importe quel dossier de l'ordinateur.

«FileDialog» est un objet dans VBA. Pour utiliser cette option en premier, nous devons définir la variable comme FileDialog.

Une fois que la variable est déclarée comme «FileDialog», il s'agit d'une variable objet. Pour commencer à l'utiliser, nous devons définir l'objet à l'aide de Application.FileDialog.

Comme nous pouvons le voir dans l'image ci-dessus, FileDialog a quatre options avec lui.

  • msoFileDialogFilePicker: Cette option ouvre la fenêtre du sélecteur de fichiers devant l'utilisateur pour sélectionner le fichier souhaité selon son souhait.
  • msoFileDialogFolderPicker: Cette option ouvre la boîte de dialogue ou la fenêtre devant l'utilisateur pour sélectionner le dossier.
  • msoFileDialogOpen: Cela permettra à l'utilisateur d'ouvrir le fichier sélectionné à partir du dossier.
  • msoFileDialogSaveAs: Cela permettra à l'utilisateur d'enregistrer le fichier sous une autre copie.

À partir de maintenant, j'ai sélectionné l'option de msoFileDialogFilePicker.

Nous devons maintenant concevoir la boîte de dialogue qui apparaît devant nous.

En utilisant With Statement, nous pouvons concevoir la boîte de dialogue.

À l'intérieur de l'instruction with, placez un point pour afficher la liste IntelliSense des propriétés et méthodes de l'option FileDialog.

Pour voir uniquement les fichiers Excel lorsque la boîte de dialogue de fichier s'ouvre, nous devons d'abord supprimer l'un des filtres appliqués.

Maintenant, nous devons appliquer un nouveau filtre en tant que «Fichiers Excel» avec l'extension générique des fichiers Excel.

Modifions maintenant le titre de la boîte de dialogue du fichier.

Nous pouvons permettre à l'utilisateur de sélectionner un seul fichier à la fois, ou nous pouvons également lui permettre de sélectionner plusieurs fichiers. Pour cela, nous devons utiliser "Autoriser la sélection multiple".

Nous avons deux options ici. Si TRUE est sélectionné, cela permettra à l'utilisateur de sélectionner plusieurs fichiers. Si tel est le cas, l'utilisateur FALSE ne peut sélectionner qu'un seul fichier à la fois.

Une autre chose que nous pouvons concevoir avec FileDialog est que nous pouvons réellement insister sur ce qui devrait être le dossier par défaut lorsque la boîte de dialogue de fichier apparaît. Pour cette utilisation, nom du fichier initial.

Pour cela, nous devons mentionner le dossier par défaut à ouvrir le chemin de l'adresse.

Maintenant, enfin, nous devons appliquer la méthode «Afficher» pour voir la boîte de dialogue du fichier.

Code:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Choisissez votre fichier Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files" .Afficher End With End Sub

Exécutez maintenant le code VBA pour voir le résultat.

Comme nous pouvons le voir dans la boîte de dialogue du fichier image ci-dessus, a ouvert le dossier mentionné par défaut.

Maintenant, nous pouvons sélectionner n'importe quel sous-dossier et sélectionner les fichiers Excel.

Regardez l'image ci-dessus car nous avons appliqué le paramètre de filtre en tant que "Fichiers Excel" uniquement.

Cela sélectionnera simplement le fichier dans le dossier mentionné. Pour stocker le chemin complet, nous devons déclarer une autre variable sous forme de chaîne.

Now inside the with the statement, select “SelectedItems.” Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts.” If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use the below code to select the files.

Code:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Choisissez votre Fichier Excel!!!" .AllowMultiSelect = False .InitialFileName = "D: Excel Files" .Show FileAddress = .SelectedItems (1) End With MsgBox FileAddress End Sub

Articles intéressants...