Leçon 3 / 6 — Chapitre 5: UserForm, fichiers et organisation du code
Ouvrir un classeur externe via une boîte de dialogue
Le chapitre précédent a montré comment ouvrir un classeur externe avec un chemin de fichier codé en dur (Workbooks.Open "C:\Data\ventes.xlsx"). Cette approche suppose de connaître à l'avance l'emplacement exact du fichier — ce qui n'est pas toujours réaliste si l'utilisateur doit choisir un fichier différent à chaque exécution.
Laisser l'utilisateur choisir le fichier
Sub OuvrirViaDialogue()
Dim cheminFichier As Variant
cheminFichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx")
If cheminFichier <> False Then
Workbooks.Open cheminFichier
End If
End Sub
Application.GetOpenFilename ouvre la boîte de dialogue standard "Ouvrir un fichier" de Windows, filtrée ici sur les fichiers .xlsx, et renvoie le chemin complet choisi par l'utilisateur — sans jamais ouvrir le fichier elle-même, elle se contente de récupérer le chemin.
Le point essentiel : gérer l'annulation
Si l'utilisateur clique sur "Annuler" dans la boîte de dialogue, GetOpenFilename renvoie la valeur False plutôt qu'un chemin de fichier. Sans le test If cheminFichier <> False, la ligne suivante tenterait d'exécuter Workbooks.Open False, ce qui provoquerait une erreur — vérifier systématiquement ce cas évite un plantage de la macro dès qu'un utilisateur change d'avis.
Exemple concret : une macro de consolidation doit intégrer un fichier de données mensuel dont le nom exact change chaque mois (le mois est inclus dans le nom du fichier). Plutôt que deviner ou faire deviner un chemin, la boîte de dialogue laisse l'utilisateur naviguer et sélectionner lui-même le bon fichier.
À vous de jouer : écrivez une macro qui ouvre une boîte de dialogue de sélection de fichier, et affiche un message différent selon que l'utilisateur a choisi un fichier ou cliqué sur Annuler.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 76 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès