Lister fichiers sous vba
Résolu/Fermé
payou70
Messages postés
10
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
18 novembre 2010
-
20 août 2008 à 16:08
payou70 Messages postés 10 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 18 novembre 2010 - 21 août 2008 à 17:57
payou70 Messages postés 10 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 18 novembre 2010 - 21 août 2008 à 17:57
A voir également:
- Lister fichiers sous vba
- Wetransfer gratuit fichiers lourd - Guide
- Renommer plusieurs fichiers - Guide
- Explorateur de fichiers - Guide
- Fichiers dat - Guide
- Fichiers bin - Guide
4 réponses
Utilisateur anonyme
20 août 2008 à 18:39
20 août 2008 à 18:39
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
payou70
Messages postés
10
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
18 novembre 2010
21 août 2008 à 16:13
21 août 2008 à 16:13
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.
Utilisateur anonyme
21 août 2008 à 16:49
21 août 2008 à 16:49
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
payou70
Messages postés
10
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
18 novembre 2010
21 août 2008 à 17:57
21 août 2008 à 17:57
re
Merci pour ces explications, ton code est maintenant limpide pour moi.
Payou.
Merci pour ces explications, ton code est maintenant limpide pour moi.
Payou.