Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment afficher une liste de sous répertoire et fichiers

Ancien nº de publication de cet article : F05623
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.
Symptômes

Comment afficher dans une boîte de dialogue la liste des sous répertoires
et des fichiers d'un répertoire particulier ?

Résolution

Voici la macro permettant de réaliser ceci :

Cette macro permet d'afficher une double liste déroulante. La première
affichera la liste des répertoires et la seconde affichera la liste des
fichiers de ce répertoire. Les noms de répertoires et fichiers
sélectionnés dans cette boîte de dialogue par l'utilisateur seront
respectivement stockés dans Dlg.c1 et Dlg.c2.

REMARQUES D'UTILISATION :

- DLG.C1 Contient le nom du répertoire sélectionne par l'utilisateur
dans
la première liste.

- DLG.C2 Contient le nom d'un fichier sélectionné dans la liste des
fichiers.

NOTA :
Au début de la macro il faudra définir un répertoire par défaut (ex :
par la commande CHDIR C:\WINWORD ) mais aussi les types de fichiers que
l'on désire afficher/sélectionner dans la seconde boîte de dialogue (ex :
DIRSPEC$="*.*" pour proposer tous types de fichiers).

CONTENU DE LA MACRO :

Declare Function GetFocus Lib "User"() As Integer
Declare Function CreateWindow Lib "User"(lpClassname$, lpWindowName$, \
dwStyle As Long, X As Integer, Y As Integer, nWidth As Integer, \
nHeight As Integer, hWndParent As Integer, hMenu As Integer, \
hInstance As Integer, lpParam$) As Integer
Declare Function DestroyWindow Lib "User"(hWnd As Integer) As Integer
Declare Function SendMessageString Lib "user"(hWnd As Integer, wMsg As
Integer, \
wParam As Integer, lParam$) As Integer Alias "SendMessage"
Declare Function SendMessage Lib "user"(hWnd As Integer, wMsg As Integer,
\
wParam As Integer, lParam As Long) As Integer

Sub MAIN
DirSpec$ = "*.*"
ChDir "c:\ww20fr"
hWnd = GetFocus
ListBoxhWnd = CreateWindow("ListBox", "GetDirTempListBox", 1084227715, \
10, 10, 100, 100, hWnd, CtrlID, hInstance, lpParam$)
résults = SendMessageString(ListBoxhWnd, 1038,(- 32752), DirSpec$)
count = SendMessage(ListBoxhWnd, 1036, 0, 0)

Dim Dir$(count)
For XX = 0 To count - 1
Dir$(XX) = String$(255, Chr$(0))
worked = SendMessageString(listBoxhWnd, 1034, XX, Dir$(XX))
Next XX
résults1 = SendMessageString(ListBoxhWnd, 1038, 0, DirSpec$)
count1 = SendMessage(ListBoxhWnd, 1036, 0, 0)

Dim Dir1$(count1)
For XX = 0 To count1 - 1
Dir1$(XX) = String$(255, Chr$(0))
worked = SendMessageString(listBoxhWnd, 1034, XX, Dir1$(XX))
Next XX

Killed = DestroyWindow(ListBoxhWnd)
Begin Dialog UserDialog 556, 170, "Microsoft Word"
ComboBox 10, 6, 160, 108, Dir$(), .C1
ComboBox 194, 7, 160, 108, dir1$(), .C2
OKButton 439, 7, 100, 21
CancelButton 439, 31, 99, 21
End Dialog
Dim dlg As UserDialog
On Error Goto Done
Dialog dlg
Done:
End Sub
Propriétés

ID d'article : 455623 - Dernière mise à jour : 02/23/2004 18:53:29 - Révision : 3.0

  • Microsoft Word 2.0c
  • Microsoft Word 2.0 Standard Edition
  • Microsoft Word 2.0a
  • macro KB455623
Commentaires