[Boite de dialogue] Sélection multiple

Fermé
ryders91 Messages postés 1 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 27 juillet 2014 - Modifié par pijaku le 28/07/2014 à 08:19
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 27 juil. 2014 à 13:44
Bonjour,

Actuellement je suis à la recherche de solution pour un point me bloquant depuis pas mal de temps.

Il s'agit de la sélection multi fichier que je veux ensuite réutiliser.

    sub test ()

    Dim fd As Office.FileDialog


    'Créer un objet FileDialog
    Set fd = Application.FileDialog(msoFileDialogOpen)
  
    'Titre de la boîte de dialogue
    fd.title = "Sélectionnez un ou plusieurs fichiers"

    'Autoriser la sélection multiple
    fd.AllowMultiSelect = False
  
    'Définir les types de fichiers autorisés
    fd.Filters.Clear
    fd.Filters.Add "Tous les fichiers", "*.*"
    fd.Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.png; *.bmp"
  
    'Présélectionner le type de fichier
    fd.FilterIndex = 1
  
    'Pas de nom par défaut
    fd.InitialFileName = ""
  
    'Afficher la boîte de dialogue
    If fd.Show() Then
    ' Lister les chemins de tous les fichiers sélectionnés
    For Each varFichier In fd.SelectedItems
    strListe = strListe & varFichier
    Next

    End If
    Set fd = Nothing

    End Sub



Le problème étant que si fd.AllowMultiSelect = False alors il ne prend que par exemple
"C:\dossier/dossier/fichier"
Pour ce cas la, ça fonctionne.

Les choses se compliquent une fois que fd.AllowMultiSelect = True ce qui signifie qu'il est possible de sélectionner dans la boite de dialogue par un CTR + clique plusieurs fichiers.
Cependant ma variable strListe si je choisis plusieurs fichiers va être comme ceci :
"C:\dossier/dossier/fichierC:\dossier/dossier/fichierC:\dossier/dossier/fichier" les répertoires se mettent bout à bout et il est donc impossible de réutiliser la variable dans quoi que ce soit.

j'avais testé de mettre strListe = strListe & varFichier & ","
comme ça lorsque je sélectionne plusieurs fichier les noms de répertoires se sépare pas une virgules mais dérrière impossible de séparer chaque répertoires.


Autre solution utiliser les SelectedItems(1),SelectedItems(2)etc...
Le problème étant que lorsque l'on sélectionne plusieurs fichiers au delà des SelectedItems(2) ici par exemple on a une erreur. Il faut choisir autant de fichier que on a déclaré de SelectedItems, et je ne veux pas brider les utilisateurs en nombre de fichier à sélectionner.


Il me faut une astuce pour que un utilisateur quelconque puisse ouvrir la boite de dialogue, sélectionner un ou plusieurs fichiers et que ces fichiers soit stockés dans une ou plusieurs variables afin de les réutiliser ( dans un mail automatique ) .

Merci d'avance
A voir également:

1 réponse

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
27 juil. 2014 à 13:44
0