Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/02/2008, 09h20   #1
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 114
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 114
Points : 29
Points : 29
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 :
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
patbeautifulday1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 17h44   #2
Inactif
 
Inscription : juillet 2007
Messages : 4 555
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 4 555
Points : 5 002
Points : 5 002
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 ?
ucfoutu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 12h23   #3
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 114
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 114
Points : 29
Points : 29
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 ?
patbeautifulday1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 12h31   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Code :
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 :
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
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h17.


 
 
 
 
Partenaires

Hébergement Web