IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Boite dialogue pour sélectionner plusieurs fichiers


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Boite dialogue pour sélectionner plusieurs fichiers
    Bonjour,

    J'aimerais un fonction qui:
    * grâce à une boîte de dialogue, permet la sélection d'une série de fichiers
    * retourne l'ensemble des noms fichiers (path + filename + extension) sélectionné.

    Je parviens à le faire pour un seul et unique répertoire (code ci-après), mais pas pour une sélection multiple de fichiers.

    Enfin, j'aimerais avoir un filtre sur la boîte de dialogue, p.ex: *.txt

    Merci.

    Note OS: Win7, idéalement ce serait mieux si fonctionne de XP à 8.1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    dim objShell
    dim objFolder
    dim ssfWINDOWS
    ' Flags for the options parameter
    Const BIF_Foldersonly = 0
    Const BIF_Browseallfiles =16384
    Const BIF_returnonlyfsdirs   = &H0001
    Const BIF_dontgobelowdomain  = &H0002
    Const BIF_statustext         = &H0004
    Const BIF_returnfsancestors  = &H0008
    Const BIF_editbox            = &H0010
    Const BIF_validate           = &H0020
    Const BIF_browseforcomputer  = &H1000
    Const BIF_browseforprinter   = &H2000
    Const BIF_browseincludefiles = &H4000
     
    ssfWINDOWS =  BIF_Foldersonly
    set objShell = CreateObject("shell.application")
    set objFolder = objShell.BrowseForFolder(0, "Select the folder you want", ssfWINDOWS, "E:\")
    if (not objFolder is nothing) then
    	'Add code here.
    	Msgbox objFolder
    end if
    set objFolder = nothing
    set objShell = nothing

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, tu regardes du côté de FileDialog(Type:=msoFileDialogOpen) avec les options AllowMultiSelect = True et InitialFileName = "*.txt" , ou de GetOpenFilename le tout dans l'aide en ligne VBA ou la FAQ

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 416
    Points : 5 808
    Points
    5 808
    Par défaut
    Bonjour;
    Avec l'objet FileDialog, on peut faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub cmdOpen_Click()
     
        Dim fd As FileDialog
        Dim SelectedFile As Variant, strRet$
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
        strRet$ = "Liste des fichiers sélectionnés" & vbNewLine & vbNewLine
        fd.InitialFileName = "" 'pour vider le champ "Nom de fichier"
        With fd
            .AllowMultiSelect = True
            .Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.bmp; *.ico; *.wmf", 1
            If .Show = -1 Then
                For Each SelectedFile In .SelectedItems
                   'Pour ne retourner que le nom du fichier on utilise la ligne suivante :
                   '' strRet$ = strRet$ & Right(SelectedFile, Len(SelectedFile) - InStrRev(SelectedFile, "\", , vbTextCompare)) & vbNewLine
                   'Pour retourner le chemin complet on utilise :
                    strRet$ = strRet$ & SelectedFile & vbNewLine
                Next SelectedFile
            End If
        End With
        MsgBox strRet$
        Set fd = Nothing
    End Sub

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    bonjour,

    ah, le retour du copié/collé à l'arrache...
    la technique qui consiste à détourner la fonction BrowseForFolder est un vieux truc (+ de 10ans)
    qui ne donne pas un résultat très ergonomique, le treeview n'étant pas adapté à la navigation.
    un exemple fonctionnel ici (bas de page)
    et de toute façon, pas de filtres ni de sélection multiple

    et sinon plutôt que de perdre son temps à chercher sur le web des exemples très approximatifs, il y a la

    la version complète qui supporte les filtres
    en revanche, la sélection multiple n'est pas possible

    pour l'obtenir, cette 2ème technique également dans la faq pourrait peut-être fonctionner en ajoutant l'attribut "multiple"
    et si IE v10 ou supérieur est installé

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 416
    Points : 5 808
    Points
    5 808
    Par défaut
    C'est sensé marcher sous VBA et cela marche sur ma machine utilisant XP SP3; et avec l'adaptation nécessaire, cela devrait en principe donner un résultat.
    Peut-être pas avec d'autres versions de Windows, de toute façon je ne l'ai pas testé

Discussions similaires

  1. Boite de dialogue pour sélectionner un fichier / un répertoire
    Par Sylvaner dans le forum Téléchargez
    Réponses: 7
    Dernier message: 06/11/2019, 11h27
  2. asp:FileUpload pour sélectionner plusieurs fichiers
    Par Tristan Zwingelstein dans le forum ASP.NET
    Réponses: 8
    Dernier message: 24/11/2009, 08h53
  3. Réponses: 2
    Dernier message: 10/07/2007, 16h55
  4. Réponses: 3
    Dernier message: 25/12/2006, 17h28
  5. [VB6]boite de dialogue pour selectionner un fichier
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/04/2006, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo