Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Bonjour,
Une fa on de faire ;-)
Option Explicit
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 * 260
cAlternate As String * 14
End Type
Private Declare Function FindFirstFileA Lib "kernel32" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Lo ng
Private Declare Function FindNextFileA Lib "kernel32" _
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Dim Arr() As String
Dim NbFichiers As Long
Dim FileFindData As WIN32_FIND_DATA
Dim Fichier As String
Dim objFSO As Object, F As Object
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "D:" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
Sub test()
If Dir(Repertoire, vbDirectory) <> "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
ReDim Arr(1 To 1)
NbFichiers = 0
Recurse Repertoire
If NbFichiers > 0 Then
Application.ScreenUpdating = False
With Worksheets(NomFeuilleDestination)
With .Range(Adr).Resize(NbFichiers)
.Value = Application.Transpose(Arr)
.Sort .Item(1, 1)
.EntireColumn.AutoFit
End With
End With
Else
MsgBox "Aucun fichier ayant cette extension : " & Masque
End If
Else
MsgBox "Chemin inexistant " & Repertoire
End If
Set objFSO = Nothing
End Sub
Private Sub Recurse(ByVal Chemin As String)
Dim hFindFile As Long
hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
FindNextFileA hFindFile, FileFindData
If FindNextFileA(hFindFile, FileFindData) = 0 Then
FindClose hFindFile
Exit Sub
End If
Do
Fichier = Chemin & Left$(FileFindData.cFileName, _
InStr(1, FileFindData.cFileName, vbNullChar) - 1)
If GetAttr(Fichier) And vbDirectory Then
Recurse Fichier & ""
ElseIf Fichier Like Masque Then
NbFichiers = NbFichiers + 1
ReDim Preserve Arr(1 To NbFichiers)
Arr(NbFichiers) = Fichier
End If
Loop While FindNextFileA(hFindFile, FileFindData)
FindClose hFindFile
End Sub
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion : igf2pp$n6..
Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Bonjour,
Une fa on de faire ;-)
Option Explicit
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 * 260
cAlternate As String * 14
End Type
Private Declare Function FindFirstFileA Lib "kernel32" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Lo ng
Private Declare Function FindNextFileA Lib "kernel32" _
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Dim Arr() As String
Dim NbFichiers As Long
Dim FileFindData As WIN32_FIND_DATA
Dim Fichier As String
Dim objFSO As Object, F As Object
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "D:" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
Sub test()
If Dir(Repertoire, vbDirectory) <> "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
ReDim Arr(1 To 1)
NbFichiers = 0
Recurse Repertoire
If NbFichiers > 0 Then
Application.ScreenUpdating = False
With Worksheets(NomFeuilleDestination)
With .Range(Adr).Resize(NbFichiers)
.Value = Application.Transpose(Arr)
.Sort .Item(1, 1)
.EntireColumn.AutoFit
End With
End With
Else
MsgBox "Aucun fichier ayant cette extension : " & Masque
End If
Else
MsgBox "Chemin inexistant " & Repertoire
End If
Set objFSO = Nothing
End Sub
Private Sub Recurse(ByVal Chemin As String)
Dim hFindFile As Long
hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
FindNextFileA hFindFile, FileFindData
If FindNextFileA(hFindFile, FileFindData) = 0 Then
FindClose hFindFile
Exit Sub
End If
Do
Fichier = Chemin & Left$(FileFindData.cFileName, _
InStr(1, FileFindData.cFileName, vbNullChar) - 1)
If GetAttr(Fichier) And vbDirectory Then
Recurse Fichier & ""
ElseIf Fichier Like Masque Then
NbFichiers = NbFichiers + 1
ReDim Preserve Arr(1 To NbFichiers)
Arr(NbFichiers) = Fichier
End If
Loop While FindNextFileA(hFindFile, FileFindData)
FindClose hFindFile
End Sub
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion : igf2pp$n6.. .@speranza.aioe.org...
Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Bonjour,
Une fa on de faire ;-)
Option Explicit
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 * 260
cAlternate As String * 14
End Type
Private Declare Function FindFirstFileA Lib "kernel32" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Lo ng
Private Declare Function FindNextFileA Lib "kernel32" _
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Dim Arr() As String
Dim NbFichiers As Long
Dim FileFindData As WIN32_FIND_DATA
Dim Fichier As String
Dim objFSO As Object, F As Object
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "D:" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
Sub test()
If Dir(Repertoire, vbDirectory) <> "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
ReDim Arr(1 To 1)
NbFichiers = 0
Recurse Repertoire
If NbFichiers > 0 Then
Application.ScreenUpdating = False
With Worksheets(NomFeuilleDestination)
With .Range(Adr).Resize(NbFichiers)
.Value = Application.Transpose(Arr)
.Sort .Item(1, 1)
.EntireColumn.AutoFit
End With
End With
Else
MsgBox "Aucun fichier ayant cette extension : " & Masque
End If
Else
MsgBox "Chemin inexistant " & Repertoire
End If
Set objFSO = Nothing
End Sub
Private Sub Recurse(ByVal Chemin As String)
Dim hFindFile As Long
hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
FindNextFileA hFindFile, FileFindData
If FindNextFileA(hFindFile, FileFindData) = 0 Then
FindClose hFindFile
Exit Sub
End If
Do
Fichier = Chemin & Left$(FileFindData.cFileName, _
InStr(1, FileFindData.cFileName, vbNullChar) - 1)
If GetAttr(Fichier) And vbDirectory Then
Recurse Fichier & ""
ElseIf Fichier Like Masque Then
NbFichiers = NbFichiers + 1
ReDim Preserve Arr(1 To NbFichiers)
Arr(NbFichiers) = Fichier
End If
Loop While FindNextFileA(hFindFile, FileFindData)
FindClose hFindFile
End Sub
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion : igf2pp$n6..
Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Bonjour,
Une fa on de faire ;-)
Option Explicit
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 * 260
cAlternate As String * 14
End Type
Private Declare Function FindFirstFileA Lib "kernel32" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFileA Lib "kernel32" _
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Dim Arr() As String
Dim NbFichiers As Long
Dim FileFindData As WIN32_FIND_DATA
Dim Fichier As String
Dim objFSO As Object, F As Object
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "D:" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
Sub test()
If Dir(Repertoire, vbDirectory) <> "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
ReDim Arr(1 To 1)
NbFichiers = 0
Recurse Repertoire
If NbFichiers > 0 Then
Application.ScreenUpdating = False
With Worksheets(NomFeuilleDestination)
With .Range(Adr).Resize(NbFichiers)
.Value = Application.Transpose(Arr)
.Sort .Item(1, 1)
.EntireColumn.AutoFit
End With
End With
Else
MsgBox "Aucun fichier ayant cette extension : " & Masque
End If
Else
MsgBox "Chemin inexistant " & Repertoire
End If
Set objFSO = Nothing
End Sub
Private Sub Recurse(ByVal Chemin As String)
Dim hFindFile As Long
hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
FindNextFileA hFindFile, FileFindData
If FindNextFileA(hFindFile, FileFindData) = 0 Then
FindClose hFindFile
Exit Sub
End If
Do
Fichier = Chemin & Left$(FileFindData.cFileName, _
InStr(1, FileFindData.cFileName, vbNullChar) - 1)
If GetAttr(Fichier) And vbDirectory Then
Recurse Fichier & ""
ElseIf Fichier Like Masque Then
NbFichiers = NbFichiers + 1
ReDim Preserve Arr(1 To NbFichiers)
Arr(NbFichiers) = Fichier
End If
Loop While FindNextFileA(hFindFile, FileFindData)
FindClose hFindFile
End Sub
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion : igf2pp$
Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Bonjour,
Une fa on de faire ;-)
Option Explicit
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 * 260
cAlternate As String * 14
End Type
Private Declare Function FindFirstFileA Lib "kernel32" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFileA Lib "kernel32" _
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Dim Arr() As String
Dim NbFichiers As Long
Dim FileFindData As WIN32_FIND_DATA
Dim Fichier As String
Dim objFSO As Object, F As Object
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "D:" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
Sub test()
If Dir(Repertoire, vbDirectory) <> "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
ReDim Arr(1 To 1)
NbFichiers = 0
Recurse Repertoire
If NbFichiers > 0 Then
Application.ScreenUpdating = False
With Worksheets(NomFeuilleDestination)
With .Range(Adr).Resize(NbFichiers)
.Value = Application.Transpose(Arr)
.Sort .Item(1, 1)
.EntireColumn.AutoFit
End With
End With
Else
MsgBox "Aucun fichier ayant cette extension : " & Masque
End If
Else
MsgBox "Chemin inexistant " & Repertoire
End If
Set objFSO = Nothing
End Sub
Private Sub Recurse(ByVal Chemin As String)
Dim hFindFile As Long
hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
FindNextFileA hFindFile, FileFindData
If FindNextFileA(hFindFile, FileFindData) = 0 Then
FindClose hFindFile
Exit Sub
End If
Do
Fichier = Chemin & Left$(FileFindData.cFileName, _
InStr(1, FileFindData.cFileName, vbNullChar) - 1)
If GetAttr(Fichier) And vbDirectory Then
Recurse Fichier & ""
ElseIf Fichier Like Masque Then
NbFichiers = NbFichiers + 1
ReDim Preserve Arr(1 To NbFichiers)
Arr(NbFichiers) = Fichier
End If
Loop While FindNextFileA(hFindFile, FileFindData)
FindClose hFindFile
End Sub
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion : igf2pp$n6...@speranza.aioe.org...
Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Bonjour,
Une fa on de faire ;-)
Option Explicit
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 * 260
cAlternate As String * 14
End Type
Private Declare Function FindFirstFileA Lib "kernel32" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFileA Lib "kernel32" _
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Dim Arr() As String
Dim NbFichiers As Long
Dim FileFindData As WIN32_FIND_DATA
Dim Fichier As String
Dim objFSO As Object, F As Object
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "D:" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
Sub test()
If Dir(Repertoire, vbDirectory) <> "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
ReDim Arr(1 To 1)
NbFichiers = 0
Recurse Repertoire
If NbFichiers > 0 Then
Application.ScreenUpdating = False
With Worksheets(NomFeuilleDestination)
With .Range(Adr).Resize(NbFichiers)
.Value = Application.Transpose(Arr)
.Sort .Item(1, 1)
.EntireColumn.AutoFit
End With
End With
Else
MsgBox "Aucun fichier ayant cette extension : " & Masque
End If
Else
MsgBox "Chemin inexistant " & Repertoire
End If
Set objFSO = Nothing
End Sub
Private Sub Recurse(ByVal Chemin As String)
Dim hFindFile As Long
hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
FindNextFileA hFindFile, FileFindData
If FindNextFileA(hFindFile, FileFindData) = 0 Then
FindClose hFindFile
Exit Sub
End If
Do
Fichier = Chemin & Left$(FileFindData.cFileName, _
InStr(1, FileFindData.cFileName, vbNullChar) - 1)
If GetAttr(Fichier) And vbDirectory Then
Recurse Fichier & ""
ElseIf Fichier Like Masque Then
NbFichiers = NbFichiers + 1
ReDim Preserve Arr(1 To NbFichiers)
Arr(NbFichiers) = Fichier
End If
Loop While FindNextFileA(hFindFile, FileFindData)
FindClose hFindFile
End Sub
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion : igf2pp$
Bonjour,
Par macro, comment obtenir dans la plage A1:Ax le chemin complet
de tous les fichiers mp3 du lecteur D ?
Merci
Serge
Je viens de la tester nouveau, a roule correctement !
As-tu adapter la valeur de ces constantes selon ton environnement ?
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "C:MonChemin" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion :
Ave Denis,
Quand je lance ta macro test , j'obtiens toujours le message :
Aucun fichier n'ayant cette extenssion : *.mp3
Quelques claircissements :http://cjoint.com/?3bkruWkvSy5
Serge
On 10 jan, 09:10, "michdenis" wrote:
> Bonjour,
> Une fa on de faire ;-)
> Option Explicit
> 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 * 260
> cAlternate As String * 14
> End Type
> Private Declare Function FindFirstFileA Lib "kernel32" _
> (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
> Private Declare Function FindNextFileA Lib "kernel32" _
> (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Lon g
> Private Declare Function FindClose Lib "kernel32" _
> (ByVal hFindFile As Long) As Long
> Dim Arr() As String
> Dim NbFichiers As Long
> Dim FileFindData As WIN32_FIND_DATA
> Dim Fichier As String
> Dim objFSO As Object, F As Object
> '************Constante d finir*************
> Const Masque = "*.mp3" 'Type Extension du fichier
> Const NomFeuilleDestination = "Feuil1"
> Const Repertoire = "D:" 'Le lecteur
> Const Adr = "B5" 'Premi re cellule de la plage dans feuille
> '********************************************
> Sub test()
> If Dir(Repertoire, vbDirectory) <> "" Then
> Set objFSO = CreateObject("Scripting.FileSystemObject")
> ReDim Arr(1 To 1)
> NbFichiers = 0
> Recurse Repertoire
> If NbFichiers > 0 Then
> Application.ScreenUpdating = False
> With Worksheets(NomFeuilleDestination)
> With .Range(Adr).Resize(NbFichiers)
> .Value = Application.Transpose(Arr)
> .Sort .Item(1, 1)
> .EntireColumn.AutoFit
> End With
> End With
> Else
> MsgBox "Aucun fichier ayant cette extension : " & Masqu e
> End If
> Else
> MsgBox "Chemin inexistant " & Repertoire
> End If
> Set objFSO = Nothing
> End Sub
> Private Sub Recurse(ByVal Chemin As String)
> Dim hFindFile As Long
> hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
> FindNextFileA hFindFile, FileFindData
> If FindNextFileA(hFindFile, FileFindData) = 0 Then
> FindClose hFindFile
> Exit Sub
> End If
> Do
> Fichier = Chemin & Left$(FileFindData.cFileName, _
> InStr(1, FileFindData.cFileName, vbNullChar) - 1)
> If GetAttr(Fichier) And vbDirectory Then
> Recurse Fichier & ""
> ElseIf Fichier Like Masque Then
> NbFichiers = NbFichiers + 1
> ReDim Preserve Arr(1 To NbFichiers)
> Arr(NbFichiers) = Fichier
> End If
> Loop While FindNextFileA(hFindFile, FileFindData)
> FindClose hFindFile
> End Sub
> MichD
> --------------------------------------------
> "Tatanka" a crit dans le message de groupe de discussion : igf2pp$n6
> Bonjour,
> Par macro, comment obtenir dans la plage A1:Ax le chemin complet
> de tous les fichiers mp3 du lecteur D ?
> Merci
> Serge- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Je viens de la tester nouveau, a roule correctement !
As-tu adapter la valeur de ces constantes selon ton environnement ?
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "C:MonChemin" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion :
4d453c46-ea96-45ec-a035-e6f614601...@p7g2000prb.googlegroups.com...
Ave Denis,
Quand je lance ta macro test , j'obtiens toujours le message :
Aucun fichier n'ayant cette extenssion : *.mp3
Quelques claircissements :http://cjoint.com/?3bkruWkvSy5
Serge
On 10 jan, 09:10, "michdenis" <michde...@hotmail.com> wrote:
> Bonjour,
> Une fa on de faire ;-)
> Option Explicit
> 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 * 260
> cAlternate As String * 14
> End Type
> Private Declare Function FindFirstFileA Lib "kernel32" _
> (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
> Private Declare Function FindNextFileA Lib "kernel32" _
> (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Lon g
> Private Declare Function FindClose Lib "kernel32" _
> (ByVal hFindFile As Long) As Long
> Dim Arr() As String
> Dim NbFichiers As Long
> Dim FileFindData As WIN32_FIND_DATA
> Dim Fichier As String
> Dim objFSO As Object, F As Object
> '************Constante d finir*************
> Const Masque = "*.mp3" 'Type Extension du fichier
> Const NomFeuilleDestination = "Feuil1"
> Const Repertoire = "D:" 'Le lecteur
> Const Adr = "B5" 'Premi re cellule de la plage dans feuille
> '********************************************
> Sub test()
> If Dir(Repertoire, vbDirectory) <> "" Then
> Set objFSO = CreateObject("Scripting.FileSystemObject")
> ReDim Arr(1 To 1)
> NbFichiers = 0
> Recurse Repertoire
> If NbFichiers > 0 Then
> Application.ScreenUpdating = False
> With Worksheets(NomFeuilleDestination)
> With .Range(Adr).Resize(NbFichiers)
> .Value = Application.Transpose(Arr)
> .Sort .Item(1, 1)
> .EntireColumn.AutoFit
> End With
> End With
> Else
> MsgBox "Aucun fichier ayant cette extension : " & Masqu e
> End If
> Else
> MsgBox "Chemin inexistant " & Repertoire
> End If
> Set objFSO = Nothing
> End Sub
> Private Sub Recurse(ByVal Chemin As String)
> Dim hFindFile As Long
> hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
> FindNextFileA hFindFile, FileFindData
> If FindNextFileA(hFindFile, FileFindData) = 0 Then
> FindClose hFindFile
> Exit Sub
> End If
> Do
> Fichier = Chemin & Left$(FileFindData.cFileName, _
> InStr(1, FileFindData.cFileName, vbNullChar) - 1)
> If GetAttr(Fichier) And vbDirectory Then
> Recurse Fichier & ""
> ElseIf Fichier Like Masque Then
> NbFichiers = NbFichiers + 1
> ReDim Preserve Arr(1 To NbFichiers)
> Arr(NbFichiers) = Fichier
> End If
> Loop While FindNextFileA(hFindFile, FileFindData)
> FindClose hFindFile
> End Sub
> MichD
> --------------------------------------------
> "Tatanka" a crit dans le message de groupe de discussion : igf2pp$n6 ...@speranza.aioe.org...
> Bonjour,
> Par macro, comment obtenir dans la plage A1:Ax le chemin complet
> de tous les fichiers mp3 du lecteur D ?
> Merci
> Serge- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Je viens de la tester nouveau, a roule correctement !
As-tu adapter la valeur de ces constantes selon ton environnement ?
'************Constante d finir*************
Const Masque = "*.mp3" 'Type Extension du fichier
Const NomFeuilleDestination = "Feuil1"
Const Repertoire = "C:MonChemin" 'Le lecteur
Const Adr = "B5" 'Premi re cellule de la plage dans feuille
'********************************************
MichD
--------------------------------------------
"Tatanka" a crit dans le message de groupe de discussion :
Ave Denis,
Quand je lance ta macro test , j'obtiens toujours le message :
Aucun fichier n'ayant cette extenssion : *.mp3
Quelques claircissements :http://cjoint.com/?3bkruWkvSy5
Serge
On 10 jan, 09:10, "michdenis" wrote:
> Bonjour,
> Une fa on de faire ;-)
> Option Explicit
> 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 * 260
> cAlternate As String * 14
> End Type
> Private Declare Function FindFirstFileA Lib "kernel32" _
> (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
> Private Declare Function FindNextFileA Lib "kernel32" _
> (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Lon g
> Private Declare Function FindClose Lib "kernel32" _
> (ByVal hFindFile As Long) As Long
> Dim Arr() As String
> Dim NbFichiers As Long
> Dim FileFindData As WIN32_FIND_DATA
> Dim Fichier As String
> Dim objFSO As Object, F As Object
> '************Constante d finir*************
> Const Masque = "*.mp3" 'Type Extension du fichier
> Const NomFeuilleDestination = "Feuil1"
> Const Repertoire = "D:" 'Le lecteur
> Const Adr = "B5" 'Premi re cellule de la plage dans feuille
> '********************************************
> Sub test()
> If Dir(Repertoire, vbDirectory) <> "" Then
> Set objFSO = CreateObject("Scripting.FileSystemObject")
> ReDim Arr(1 To 1)
> NbFichiers = 0
> Recurse Repertoire
> If NbFichiers > 0 Then
> Application.ScreenUpdating = False
> With Worksheets(NomFeuilleDestination)
> With .Range(Adr).Resize(NbFichiers)
> .Value = Application.Transpose(Arr)
> .Sort .Item(1, 1)
> .EntireColumn.AutoFit
> End With
> End With
> Else
> MsgBox "Aucun fichier ayant cette extension : " & Masqu e
> End If
> Else
> MsgBox "Chemin inexistant " & Repertoire
> End If
> Set objFSO = Nothing
> End Sub
> Private Sub Recurse(ByVal Chemin As String)
> Dim hFindFile As Long
> hFindFile = FindFirstFileA(Chemin & "*.*", FileFindData)
> FindNextFileA hFindFile, FileFindData
> If FindNextFileA(hFindFile, FileFindData) = 0 Then
> FindClose hFindFile
> Exit Sub
> End If
> Do
> Fichier = Chemin & Left$(FileFindData.cFileName, _
> InStr(1, FileFindData.cFileName, vbNullChar) - 1)
> If GetAttr(Fichier) And vbDirectory Then
> Recurse Fichier & ""
> ElseIf Fichier Like Masque Then
> NbFichiers = NbFichiers + 1
> ReDim Preserve Arr(1 To NbFichiers)
> Arr(NbFichiers) = Fichier
> End If
> Loop While FindNextFileA(hFindFile, FileFindData)
> FindClose hFindFile
> End Sub
> MichD
> --------------------------------------------
> "Tatanka" a crit dans le message de groupe de discussion : igf2pp$n6
> Bonjour,
> Par macro, comment obtenir dans la plage A1:Ax le chemin complet
> de tous les fichiers mp3 du lecteur D ?
> Merci
> Serge- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -