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

VBA Discussion :

Option Multiselect dans OpenFileDialog


Sujet :

VBA

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut Option Multiselect dans OpenFileDialog
    Bonjour

    J'ai trouvé ce code sur MSDN, mais comment on fait pour activer la propriété Multiselect ?

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
         Option Explicit
     
           Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
             "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
           Private Type OPENFILENAME
             lStructSize As Long
             hwndOwner As Long
             hInstance As Long
             lpstrFilter As String
             lpstrCustomFilter As String
             nMaxCustFilter As Long
             nFilterIndex As Long
             lpstrFile As String
             nMaxFile As Long
             lpstrFileTitle As String
             nMaxFileTitle As Long
             lpstrInitialDir As String
             lpstrTitle As String
             flags As Long
             nFileOffset As Integer
             nFileExtension As Integer
             lpstrDefExt As String
             lCustData As Long
             lpfnHook As Long
             lpTemplateName As String
           End Type
     
           Sub Openfiledialog()
             Dim OpenFile As OPENFILENAME
             Dim lReturn As Long
             Dim sFilter As String
             OpenFile.lStructSize = Len(OpenFile)
             'OpenFile.hwndOwner = Form1.HWND
             'OpenFile.hInstance = App.hInstance
             sFilter = "AUTOCAD Files (*.dwg)" & Chr(0) & "*.dwg" & Chr(0)
             OpenFile.lpstrFilter = sFilter
             OpenFile.nFilterIndex = 1
             OpenFile.lpstrFile = String(257, 0)
             OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
             OpenFile.lpstrFileTitle = OpenFile.lpstrFile
             OpenFile.nMaxFileTitle = OpenFile.nMaxFile
             OpenFile.lpstrInitialDir = "T:\"
             OpenFile.lpstrTitle = "choix des plans"
             OpenFile.flags = 5
             lReturn = GetOpenFileName(OpenFile)
             If lReturn = 0 Then
                MsgBox "The User pressed the Cancel Button"
             Else
                MsgBox "The user Chose " & Trim(OpenFile.lpstrFile)
             End If
           End Sub

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    Cette fonction de l'Api de Windows est faite pour sélectionner un fichier, pas plusieurs...

    Quelle est la raison pour laquel tu souhaites en sélectionner plusieurs à la fois ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    salut uctofou

    Je souhaite, dans Autocad, créer une liste de fichiers pour effectuer des traitements automatiques : ouverture, extraction de données, puis fermeture, etc...
    J'ai pensé utiliser cette API pour sélectionner plusieurs fichiers à la fois pour effectuer cette opération à la chaîne. Mais maintenant que j'y pense, je vais plutôt fonctionner par parcours et exploration de répertoire, et traitement sur chaque fichier. Je ferai le test sur un seul fichier et basta...
    Par contre est-ce que c'est la même API pour sélectionner un répertoire plutôt que d'un fichier ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub repertoireLister()
        Dim fs, f, f1, fc, s, NomRep
        NomRep = ActiveWorkbook.path & "\"
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFolder(NomRep)
        Set fc = f.SubFolders
        For Each f1 In fc
            s = s & f1.Name
            s = s & vbCrLf
        Next
        MsgBox s
    End Sub
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ListerLesRépertoires()
    Dim chemin as string, NomRep as string, Rep as boolean
        Chemin = "c:\Windows\"
        NomRep = Dir(Chemin, vbDirectory)
        Do While NomRep <> ""
            If NomRep <> "." And NomRep <> ".." Then
                Rep = (GetAttr(Chemin & NomRep) And vbDirectory) = vbDirectory
                If Rep Then msgbox NomRep
            End If
            NomFich = Dir
        Loop
    End Sub

Discussions similaires

  1. Selectionner l'option voulue dans select
    Par LeParrain735 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/01/2006, 23h45
  2. Option Debug dans access
    Par uskiki85 dans le forum Access
    Réponses: 11
    Dernier message: 26/09/2005, 15h15
  3. Réponses: 8
    Dernier message: 05/05/2004, 16h28
  4. [VB6]Multiselect dans un CommonDialog...
    Par Rumeurs dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 18/03/2003, 10h13

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