Selection multiples dans une commondialogbox

5/5 (2 avis)

Snippet vu 3 826 fois - Téléchargée 36 fois

Contenu du snippet

On peut sélectionner plusieurs fichiers dans une boite de dialogue ouvrir.
FileName renvoie une chaîne contenant le chemin ainsi que le nom de tous les fichiers sélectionnés, séparés par des espaces.

Source / Exemple :


Sub selectionMultiples()
Dim cheminFichier as String
Dim fichiers() as String

With nomForm.nomCommonDialog
    .nomCommonDialog.Flags = cdlOFNAllowMultiselect
        ' On ajoute un flag qui autorise la selection de plusieurs fichiers
    .MaxFileSize = 32767
        ' On redéfini la taille maximale d'un nom de fichier sélectionné
    .nomCommonDialog.ShowOpen
        ' Ouvre la boîte de dialogue Ouvrir du contrôle CommonDialog
    
         fichiers = Split(.nomCommonDialog.Filename, " ")
             ' On decoupe la chaine contenant les fichiers et on les place dans le tableau
             ' Attention la première entrée du tableau contient le chemin d'accès aux fichiers 
             ' Dans le cas d'une selection unique cette entrée contient également le nom du fichier  
         cheminFichier = Fichier(0) + "\"
        ' On récupère la chaîne contenant le chemin d'accès aux fichiers
End With
end sub

A voir également

Ajouter un commentaire

Commentaires

gilardh
Messages postés
70
Date d'inscription
mercredi 21 août 2002
Statut
Membre
Dernière intervention
22 février 2008

Bonjour SibosisITS,

Pourrais n'utile tu pas la fonction split ?

Regards

gilardh
SibosisITS
Messages postés
72
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
20 juin 2003

C'est utile en effet pour ceux qui ne le savent pas. Mais je crois que ce qui intérresse tout le monde, c'est comment séparer les différents noms (découpage de la chaîne) :

Sub RecupeListe(Chaine as String, ByRef Chemin as String, ByRef Fichiers() as String)
Dim ResteChaine as String
Dim Pos as Long
Pos=InStr(Chaine, chr$(0))
Chemin = Left(Chaine, Pos-1)
ResteChaine = Mid$(Chaine, Pos+1)
Redim Fichiers(0)
While ResteChaine<>""
Pos = InStr(ResteChaine, chr$(0))
Fichiers(Ubound(Fichiers)) = Left(ResteChaine, Pos-1)
ResteChaine = Mid$(ResteChaine, Pos+1)
Redim Preserve Fichiers(Ubound(Fichiers)+1)
Wend
On Error Resume Next
Redim Preserve Fichiers(Ubound(Fichiers)-1)
End Sub

L'argument Chemin est une référence à la chaine qui contiendra le dossier
L'argument Fichiers() est un tableau (déclaration de la forme 'Dim Nom_Tabl()', avec rien dans les parenthèses) qui contiendra la liste des fichiers...

@++ et bonne prog...

(: Sibo ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.