Lister fichiers sous vba
Résolu
payou70
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
payou70 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
payou70 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis sous excel 2003 et je voudrais faire une macro vba qui enregistre tous les fichiers présents dans un dossier (c:\Divers) dans une liste appelée ListeFichiers.
Merci pour votre aide.
Payou.
Je suis sous excel 2003 et je voudrais faire une macro vba qui enregistre tous les fichiers présents dans un dossier (c:\Divers) dans une liste appelée ListeFichiers.
Merci pour votre aide.
Payou.
A voir également:
- Lister fichiers sous vba
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
- Fichiers bin - Guide
4 réponses
Bonjour,
Exemple type :
Lupin
Exemple type :
Option Explicit ' Const cteRepertoire = "C:\Divers\" Const cteExcel = ".xls" ' Sub ParcoursDossier() Dim varFichier As Variant, ListeFichiers As String ListeFichiers = "" varFichier = Dir(cteRepertoire & "*" & cteExcel, vbDirectory) Do While varFichier <> "" If ((varFichier <> ".") And (varFichier <> "..")) Then If Not ((GetAttr(cteRepertoire & varFichier) And vbDirectory) = vbDirectory) Then ListeFichiers = ListeFichiers & vbLf & varFichier End If End If varFichier = Dir Loop MsgBox ListeFichiers End Sub '
Lupin
Merci Lupin pour cette réponse, ça marche nickel.
Par contre j'ai essayé de comprendre comment marche ton code et il y 2 ligne de test IF dont je ne vois pas quelle est leur rôle :
If ((varFichier <> ".") And (varFichier <> "..")) Then
et
If Not ((GetAttr(cteRepertoire & varFichier) And vbDirectory) = vbDirectory) Then
Peut-tu me dire à quoi elle serve stp.
Merci.
Payou.
Par contre j'ai essayé de comprendre comment marche ton code et il y 2 ligne de test IF dont je ne vois pas quelle est leur rôle :
If ((varFichier <> ".") And (varFichier <> "..")) Then
et
If Not ((GetAttr(cteRepertoire & varFichier) And vbDirectory) = vbDirectory) Then
Peut-tu me dire à quoi elle serve stp.
Merci.
Payou.
re :
La première ligne :
If ((varFichier <> ".") And (varFichier <> "..")) Then
Outre la racine d'un disque virtuel, logique ou physique, lorsque l'on crée un dossier quelconque
2 "pseudo sous-dossier" sont créé par le systèeme de fichier. Ceux-ci sont en fait l'équivalent
d'une table des matières du sous-dossier créé. La ligne sert donc à les exclure de la liste.
La seconde ligne :
If Not ((GetAttr(cteRepertoire & varFichier) And vbDirectory) = vbDirectory) Then
GetAttr(cteRepertoire & varFichier) => Prend l'attribut de l'élément ciblé
And vbDirectory => Effectue un ET logique avec attribut Dossier (i.e. répertoire) est-ce un dossier ?
Si condition est non : If Not ((GetAttr(cteRepertoire & varFichier) And vbDirectory) = vbDirectory) Then
(i.e. si n'est pas un dossier).
Le but étant d'être absolument sur d'avoir uniquement la liste des fichiers.
Lupin
La première ligne :
If ((varFichier <> ".") And (varFichier <> "..")) Then
Outre la racine d'un disque virtuel, logique ou physique, lorsque l'on crée un dossier quelconque
2 "pseudo sous-dossier" sont créé par le systèeme de fichier. Ceux-ci sont en fait l'équivalent
d'une table des matières du sous-dossier créé. La ligne sert donc à les exclure de la liste.
La seconde ligne :
If Not ((GetAttr(cteRepertoire & varFichier) And vbDirectory) = vbDirectory) Then
GetAttr(cteRepertoire & varFichier) => Prend l'attribut de l'élément ciblé
And vbDirectory => Effectue un ET logique avec attribut Dossier (i.e. répertoire) est-ce un dossier ?
Si condition est non : If Not ((GetAttr(cteRepertoire & varFichier) And vbDirectory) = vbDirectory) Then
(i.e. si n'est pas un dossier).
Le but étant d'être absolument sur d'avoir uniquement la liste des fichiers.
Lupin