Créer un sélecteur de fichiers (File Picker) dans un formulaire utilisateur (UserForm), Excel VBA

Créer un sélecteur de fichiers (File Picker) dans un formulaire utilisateur (UserForm), Excel VBA

Voici un guide détaillé en français pour créer un sélecteur de fichiers (File Picker) dans un formulaire utilisateur (UserForm) avec VBA dans Excel.
Étapes :
1. Créer un formulaire utilisateur : Tout d’abord, vous devez créer un formulaire utilisateur avec un bouton qui déclenche l’ouverture du sélecteur de fichiers.
2. Utiliser FileDialog : Utilisez l’objet Application.FileDialog pour ouvrir la boîte de dialogue de sélection de fichiers.
3. Afficher le fichier sélectionné : Après que l’utilisateur ait sélectionné un fichier, vous pouvez afficher le chemin du fichier dans une zone de texte ou traiter le fichier selon vos besoins.
Code VBA détaillé
Étape 1 : Créer le formulaire utilisateur
1. Dans l’éditeur VBA, allez dans Insertion > UserForm.
2. Ajoutez un CommandButton (pour ouvrir le sélecteur de fichiers) et un TextBox (pour afficher le chemin du fichier sélectionné).
3. Renommez le CommandButton en btnOpenFilePicker et le TextBox en txtFilePath pour plus de clarté.
Étape 2 : Ajouter le code
Voici le code complet pour le formulaire utilisateur :

Private Sub btnOpenFilePicker_Click()
    Dim FileDialog As FileDialog
    Dim SelectedFile As String
    ' Créer l'objet FileDialog
    Set FileDialog = Application.FileDialog(msoFileDialogFilePicker)
    ' Paramètres du FileDialog (optionnel)
    FileDialog.Title = "Sélectionnez un fichier"  ' Titre de la boîte de dialogue
    FileDialog.Filters.Clear           ' Effacer tous les filtres par défaut
    FileDialog.Filters.Add "Tous les fichiers", "*.*" ' Permet tous les types de fichiers (vous pouvez changer cela pour des types spécifiques comme *.txt, *.xlsx, etc.)
    ' Afficher la boîte de dialogue de sélection de fichiers
    If FileDialog.Show = -1 Then ' Si un fichier est sélectionné
        SelectedFile = FileDialog.SelectedItems(1) ' Récupérer le chemin du premier fichier sélectionné
        txtFilePath.Value = SelectedFile  ' Afficher le chemin du fichier dans la TextBox
    Else
        MsgBox "Aucun fichier sélectionné.", vbExclamation, "Attention" ' Si l'utilisateur annule la boîte de dialogue
    End If
    ' Libérer l'objet FileDialog
    Set FileDialog = Nothing
End Sub

Explication du code :
1. Objet FileDialog : L’objet FileDialog est créé avec Application.FileDialog(msoFileDialogFilePicker). L’option msoFileDialogFilePicker indique à Excel d’afficher une boîte de dialogue permettant de sélectionner un fichier.
2. Propriétés de la boîte de dialogue :

  • FileDialog.Title = "Sélectionnez un fichier" : Définit le titre de la boîte de dialogue.
  • FileDialog.Filters.Clear : Efface tous les filtres par défaut qui peuvent être appliqués (par exemple, pour les fichiers Excel ou texte).
  • FileDialog.Filters.Add "Tous les fichiers", "*.*" : Ajoute un filtre pour tous les types de fichiers. Vous pouvez ajuster ce filtre pour ne permettre que certains types de fichiers, comme *.txt, *.xlsx, etc.

3. Affichage du fichier sélectionné :

  • If FileDialog.Show = -1 Then : La méthode .Show affiche la boîte de dialogue. Si un fichier est sélectionné, elle renvoie -1.
  • SelectedFile = FileDialog.SelectedItems(1) : Récupère le chemin du premier fichier sélectionné.
  • txtFilePath.Value = SelectedFile : Affiche le chemin du fichier sélectionné dans la TextBox.

4. Gestion des erreurs :

  • Si l’utilisateur annule la boîte de dialogue (c’est-à-dire s’il ne sélectionne pas de fichier), une boîte de message s’affiche avec le texte "Aucun fichier sélectionné." pour avertir l’utilisateur.

5. Libération des objets :

  • La commande Set FileDialog = Nothing permet de libérer l’objet FileDialog après son utilisation pour éviter des fuites de mémoire.

Étape 3 : Tester le formulaire utilisateur
1. Appuyez sur F5 pour exécuter le formulaire utilisateur.
2. Cliquez sur le bouton pour ouvrir la boîte de dialogue de sélection de fichiers.
3. Après avoir sélectionné un fichier, le chemin du fichier sélectionné doit apparaître dans la TextBox.
Améliorations optionnelles :

    • Sélection multiple de fichiers : Si vous souhaitez permettre à l’utilisateur de sélectionner plusieurs fichiers, vous pouvez définir FileDialog.AllowMultiSelect = True avant d’afficher la boîte de dialogue.
FileDialog.AllowMultiSelect = True If FileDialog.Show = -1 Then Dim i As Integer For i = 1 To FileDialog.SelectedItems.Count Debug.Print FileDialog.SelectedItems(i) ' Traitez chaque fichier sélectionné Next i End If
  • Boîte de dialogue de sauvegarde : Si vous souhaitez que l’utilisateur choisisse un emplacement et un nom de fichier pour enregistrer un fichier, vous pouvez utiliser msoFileDialogSaveAs au lieu de msoFileDialogFilePicker.

Cette approche permet de créer un sélecteur de fichiers efficace et interactif dans votre formulaire utilisateur Excel VBA.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x