GNT sans publicité, site mobile, fonctionnalitées exclusives...

lister contenu répertoire

Le
Elicend_News
Bonjour,

savez vous s'il est possible de lister le contenu d'un répertoire (ex, un
CD, avec les sous répertoires) avec une macro ?

merci d'avance!

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________
Lire les 13 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Boss Hog
Le #15655011
Salut,

tu parle de macro excel ou word ??
si tu à accès au fso FileSystemObject
il te suffit d'utiliser une For Each

@+
Boss Hog
"Elicend_News" <inconicoAfreePOINTfr> wrote in message
news:4173c47a$0$29526$
Bonjour,

savez vous s'il est possible de lister le contenu d'un répertoire (ex, un
CD, avec les sous répertoires) avec une macro ?

merci d'avance!

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________





ng
Le #15655001
Salut,

Ah non surtout pas de FSO en vb !!! On peut faire mieux (APIs pour la
recursivité car Dir$() ne marche pas dans ce cas).

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Salut,

tu parle de macro excel ou word ??
si tu à accès au fso FileSystemObject
il te suffit d'utiliser une For Each

@+
Boss Hog
"Elicend_News" <inconicoAfreePOINTfr> wrote in message
news:4173c47a$0$29526$
Bonjour,

savez vous s'il est possible de lister le contenu d'un répertoire
(ex, un CD, avec les sous répertoires) avec une macro ?

merci d'avance!

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________




ng
Le #15654991
Salut,

On utilise les APIs FindFirstFile(), FindNextFile() et FindClose().

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Elicend_News wrote:
Bonjour,

savez vous s'il est possible de lister le contenu d'un répertoire
(ex, un CD, avec les sous répertoires) avec une macro ?

merci d'avance!

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________


Boss Hog
Le #15654981
salut,
si j'ai bien lu il parle de macro alors si tu peut accéder aux API en VBA
dit moi comment,
de plus cet espece de snobisme qui consiste à ré-inventer la roue me fait
plutot rire,

FSO c'est len(quoi que sur des job simple cela suffit largement) mais sa
marche et les API windows ne sont pas forcément à la porté de tous les
developpeurs(faudrai peut etre pas l'oublier).
j'ai API guide et tout le toutim et des fois il m'arrive d'utilisé le FSO et
j'en suis pas mort(pas encore).

quand à ta réponse je doit dire quel à le merite d'etre super claire:
Ah non surtout pas de FSO en vb !!! On peut faire mieux (APIs pour la
recursivité car Dir$() ne marche pas dans ce cas).

me voila équiper pour l'hiver, merci.

cdlt
Boss Hog

"ng" news:
Salut,

Ah non surtout pas de FSO en vb !!! On peut faire mieux (APIs pour la
recursivité car Dir$() ne marche pas dans ce cas).

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

> Salut,
>
> tu parle de macro excel ou word ??
> si tu à accès au fso FileSystemObject
> il te suffit d'utiliser une For Each
>
> @+
> Boss Hog
> "Elicend_News" <inconicoAfreePOINTfr> wrote in message
> news:4173c47a$0$29526$
>> Bonjour,
>>
>> savez vous s'il est possible de lister le contenu d'un répertoire
>> (ex, un CD, avec les sous répertoires) avec une macro ?
>>
>> merci d'avance!
>>
>> @ plus
>> Elicend
>> ________________________
>>
>> Attention adresse e-mail :
>> inconicoAfreePOINTfr
>> A = @
>> POINT = .
>> ________________________




ng
Le #15654971
Salut,

Les APIs fonctionnent très bien sous VBA, voici un module de ma création
utilisable tel quel :

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA"
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long)
As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA"
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

Const MAX_PATH = 260
Const MAXDWORD = &HFFFF
Const INVALID_HANDLE_VALUE = -1
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Const FILE_ATTRIBUTE_HIDDEN = &H2
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_ATTRIBUTE_READONLY = &H1
Const FILE_ATTRIBUTE_SYSTEM = &H4
Const FILE_ATTRIBUTE_TEMPORARY = &H100

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Private Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, vbNullChar) > 0) Then _
OriginalStr = Left$(OriginalStr, InStr(OriginalStr, vbNullChar) - 1)
StripNulls = OriginalStr
End Function

Public Function ListFolder(ByVal strFolderPath As String, Optional
bRecursive As Boolean = False, Optional bDirOnly As Boolean = False) As
Boolean
Dim dwID As Long, lpFindDATA As WIN32_FIND_DATA
Dim bContinue As Boolean
Dim strFileName As String
If Right$(strFolderPath, 1) <> "" Then _
strFolderPath = strFolderPath & ""
Do
If dwID = 0 Then
dwID = FindFirstFile(strFolderPath & "*", lpFindDATA)
bContinue = True
Else
bContinue = FindNextFile(dwID, lpFindDATA)
End If
strFileName = StripNulls(lpFindDATA.cFileName)
If strFileName If bDirOnly Then
If (lpFindDATA.dwFileAttributes And
FILE_ATTRIBUTE_DIRECTORY) Then _
Call FileFound(strFolderPath & strFileName)
Else
Call FileFound(strFolderPath & strFileName)
End If
If bRecursive And (lpFindDATA.dwFileAttributes And
FILE_ATTRIBUTE_DIRECTORY) Then
Call ListFolder(strFolderPath & strFileName, True, bDirOnly)
End If
End If
Loop Until Not bContinue
Call FindClose(dwID)
End Function

Public Sub FileFound(strFileName As String)
Debug.Print strFileName
End Sub


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

salut,
si j'ai bien lu il parle de macro alors si tu peut accéder aux API en
VBA dit moi comment,
de plus cet espece de snobisme qui consiste à ré-inventer la roue me
fait plutot rire,

FSO c'est len(quoi que sur des job simple cela suffit largement) mais
sa marche et les API windows ne sont pas forcément à la porté de tous
les developpeurs(faudrai peut etre pas l'oublier).
j'ai API guide et tout le toutim et des fois il m'arrive d'utilisé le
FSO et j'en suis pas mort(pas encore).

quand à ta réponse je doit dire quel à le merite d'etre super claire:
Ah non surtout pas de FSO en vb !!! On peut faire mieux (APIs pour
la recursivité car Dir$() ne marche pas dans ce cas).

me voila équiper pour l'hiver, merci.

cdlt
Boss Hog

"ng" news:
Salut,

Ah non surtout pas de FSO en vb !!! On peut faire mieux (APIs pour la
recursivité car Dir$() ne marche pas dans ce cas).

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Salut,

tu parle de macro excel ou word ??
si tu à accès au fso FileSystemObject
il te suffit d'utiliser une For Each

@+
Boss Hog
"Elicend_News" <inconicoAfreePOINTfr> wrote in message
news:4173c47a$0$29526$
Bonjour,

savez vous s'il est possible de lister le contenu d'un répertoire
(ex, un CD, avec les sous répertoires) avec une macro ?

merci d'avance!

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________








Publicité
Suivre les réponses
Poster une réponse
Anonyme