Fichier VBA FileDialog

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 le Filedialog, la partie cool de l'utilisation de ce est que nous n'avons pas besoin de fournir le chemin d'accès au code à la place, 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 notre article précédent «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.

Vous pouvez télécharger ce modèle Excel VBA FileDialog ici - Modèle Excel VBA FileDialog

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

Une fois que la variable est déclarée comme «FileDialog», c'est 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 du avec l'instruction, mettez un point pour voir la liste IntelliSense des propriétés et méthodes de l'option FileDialog.

Pour ne voir que 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 c'est FALSE l'utilisateur ne peut sélectionner qu'un seul fichier à la fois.

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

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

Maintenant, nous devons enfin 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.

Maintenant, dans l'instruction with, sélectionnez «SelectedItems». Attribuez le chemin du dossier des éléments sélectionnés à la variable nouvellement définie.

Maintenant, affichez enfin le chemin du dossier sélectionné dans la boîte de message VBA.

Maintenant, je vais exécuter le programme pour voir la boîte de dialogue.

Maintenant, j'ai sélectionné le nom du fichier comme «1. Charts.xlsx »dans le sous-dossier« Charts ». Si je clique sur OK, nous pouvons voir le chemin complet du dossier dans la boîte de message.

Ainsi, comme ceci, nous pouvons utiliser l'option FileDialog pour sélectionner les fichiers dans le dossier dans Excel. Utilisez le code ci-dessous pour sélectionner les fichiers.

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