Table des matières:
Vidéo: Excel VBA - Double Click 2025
Si votre procédure VBA doit demander à l'utilisateur un nom de fichier, vous pouvez utiliser la fonction InputBox et laisser l'utilisateur Excel taper quelque chose. Une zone de saisie n'est généralement pas le meilleur outil pour ce travail, car la plupart des utilisateurs ont du mal à se souvenir des chemins, des barres obliques inverses, des noms de fichiers et des extensions de fichiers. En d'autres termes, il est beaucoup trop facile de bousiller lorsque vous tapez un nom de fichier.
Pour une meilleure solution à ce problème, utilisez la méthode GetOpenFilename de l'objet Application, ce qui garantit que votre code met la main sur un nom de fichier valide, y compris son chemin complet. La méthode GetOpenFilename affiche la boîte de dialogue Ouvrir familière (une sonnerie morte pour la boîte de dialogue Excel s'affiche lorsque vous choisissez Fichier → Ouvrir → Parcourir).
La méthode GetOpenFilename n'ouvre pas réellement le fichier spécifié. Cette méthode renvoie simplement le nom de fichier sélectionné par l'utilisateur en tant que chaîne. Ensuite, vous pouvez écrire du code pour faire ce que vous voulez avec le nom de fichier.
La syntaxe de la méthode GetOpenFilename
La syntaxe officielle de la méthode GetOpenFilename est la suivante:
objet. GetOpenFilename ([fileFilter], [filterIndex], [titre], [buttonText], [multiSelect])
La méthode GetOpenFilename prend les arguments facultatifs ci-dessous.
Argument | Signification |
---|---|
FileFilter | Détermine les types de fichiers qui apparaissent dans la boîte de dialogue
(par exemple, *.TXT). Vous pouvez spécifier plusieurs filtres pour l'utilisateur parmi lesquels choisir. |
FilterIndex | Détermine quels filtres de fichiers la boîte de dialogue affiche par
par défaut. |
Titre | Spécifie la légende de la barre de titre de la boîte de dialogue
. |
ButtonText | Ignoré (utilisé uniquement pour la version Macintosh d'Excel). |
MultiSelect | Si True, l'utilisateur peut sélectionner plusieurs fichiers. |
Un exemple GetOpenFilename
L'argument fileFilter détermine ce qui apparaît dans la liste déroulante Type de fichier de la boîte de dialogue. Cet argument consiste en des paires de chaînes de filtres de fichiers suivies de la spécification de filtre de fichier générique, avec des virgules séparant chaque partie et chaque paire. Si cette option est omise, cet argument est par défaut:
Tous les fichiers (*. *), *. *
Notez que cette chaîne se compose de deux parties séparées par une virgule:
Tous les fichiers (*. *)
et
*. *
La première partie de cette chaîne est le texte affiché dans la liste déroulante Type de fichier. La deuxième partie détermine les fichiers que la boîte de dialogue affiche. Par exemple, *. * signifie tous les fichiers.
Le code de l'exemple suivant ouvre une boîte de dialogue demandant à l'utilisateur un nom de fichier.La procédure définit cinq filtres de fichiers. Notez que la séquence de continuation de ligne VBA est utilisée pour configurer la variable Filter; Cela permet de simplifier cet argument plutôt compliqué.
Sub GetImportFileName () Dim Finfo As Chaîne Dim FilterIndex As Long Dim Titre As Chaîne Dim FileName As Variante 'Configurer la liste des filtres de fichiers FInfo = "Fichiers texte (*.txt), *. txt, "& _" Lotus Files (*. prn), *. prn, "& _" Fichiers séparés par des virgules (*. csv), *. csv, "& _" Fichiers ASCII (*. asc), *. asc, "& _" Tous les fichiers (*. *), *. *" ' Afficher *. * par défaut FilterIndex = 5 'Définir la légende de la boîte de dialogue Title = "Sélectionner un fichier à importer"' Obtenir le nom de fichier FileName = Application. GetOpenFilename (FInfo, _ FilterIndex, Titre) 'Gérer les informations de retour de la boîte de dialogue Si NomFichier = Faux, puis MsgBox "Aucun fichier n'a été sélectionné. "Else MsgBox" Vous avez sélectionné "& FileName End If End Sub
Voici la boîte de dialogue affichée par Excel lorsque vous exécutez cette procédure. L'apparence peut varier en fonction de la version de Windows que vous utilisez et des options d'affichage que vous avez définies.
Dans une application réelle, vous feriez quelque chose de plus significatif avec le nom de fichier. Par exemple, vous souhaiterez peut-être l'ouvrir en utilisant une instruction comme celle-ci:
Classeurs. Open FileName
Notez que la variable FileName est déclarée en tant que type de données Variant. Si l'utilisateur clique sur Annuler, cette variable contient une valeur booléenne (False). Sinon, FileName est une chaîne. Par conséquent, l'utilisation d'un type de données Variant gère les deux possibilités.
