Comment afficher une liste de sous répertoire et fichiers

Numéro d'article: 455623 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F05623
Agrandir tout | Réduire tout

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

Numéro d'article: 455623 - Dernière mise à jour: lundi 23 février 2004 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Word 2.0c
  • Microsoft Word 2.0 Standard Edition
  • Microsoft Word 2.0a
Mots-clés : 
macro KB455623
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
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.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com