![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre régulier
![]() Date d'inscription: novembre 2005
Messages: 112
|
Bonjour
J'ai trouvé ce code sur MSDN, mais comment on fait pour activer la propriété Multiselect ? Code :
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 (permalink) |
|
Inscrit(e)
Date d'inscription: juillet 2007
Localisation: au pays de la liberté d'esprit
Messages: 3 110
|
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 (permalink) |
|
Membre régulier
![]() Date d'inscription: novembre 2005
Messages: 112
|
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 (permalink) |
![]() Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 579
|
Code :
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 Code :
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
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
|
|
|
|
|
![]() |
![]() |
||
Option Multiselect dans OpenFileDialog
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|