Dans Windows, les fichiers possèdent des attributs qui peuvent changer leur comportement dans l’explorateur de fichiers. Par exemple, les fichiers cachés n’apparaitront pas dans l’explorateur de fichiers, ou encore, les fichiers à lecture seule ne pourront pas être modifiés.
Modifier les attributs d’un fichier
En utilisant l’instruction VBA SetAttr, vous pouvez modifier l’attribut d’un fichier quelconque. Voici sa syntaxe :
SetAttr "chemin", attribut
Où chemin est le chemin complet du fichier dont vous voulez modifier l’attribut et attribut est l’attribut que vous voulez lui donner.
Les différents attributs utilisables sont résumés dans ce tableau :
Paramètre | Valeur numérique | Description |
vbNormal | 0 | Fichier normal |
vbReadOnly | 1 | Lecture seule |
vbHidden | 2 | Fichier caché |
vbSystem | 4 | Fichier système |
vbArchive | 32 | Archive |
vbAlias | 64 | Lien symbolique |
Par exemple, pour affecter l’attribut Lecture seule au fichier c:\data\a.pdf, vous utiliserez cette instruction :
SetAttr "c:\data\a.pdf", vbReadOnly
Vous pouvez également passer la valeur numérique correspondante à SetAttr :
SetAttr "c:\data\a.pdf", 1
Si nécessaire, vous pouvez cumuler plusieurs attributs en les additionnant. Par exemple, pour affecter les attributs Lecture seule et Fichier caché au fichier c:\data\a.pdf, vous utiliserez cette instruction :
SetAttr "c:\data\a.pdf", vbReadOnly + vbHidden
Ou encore :
SetAttr "c:\data\a.pdf", 3
Lire les attributs d’un fichier
Vous voulez connaitre l’attribut d’un fichier ? Utilisez la fonction GetAttr() :
GetAttr("chemin")
Où chemin est le chemin complet du fichier dont vous voulez connaitre les attributs.
Cette fonction retourne l’attribut du fichier spécifié sous une valeur numérique.
Par exemple, pour connaitre l’attribut de l’hypothétique fichier c:\data\a.pdf et l’afficher dans une boîte de dialogue, vous utiliserez cette instruction :
MsgBox "Le fichier c:\data\a.pdf a pour attribut : " & GetAttr("c:\data\a.pdf")
Ici, le fichier est en lecture seule :
Bonjour,
Je cherche à identifier lire les attributs de chaque fichier. Or le premier fichier du répertoire est un fichier caché, comment le lire et voir ses attributs. Mon but est de faire une macro qui pourrait s’appliquer à plusieurs répertoires.
Voici mon code :
Sub Liste()
Dim Chemin As String, Fichier As String
Chemin = Range(« A2 »).Value
Fichier = Dir(Chemin & « *.* »)
Do While Fichier « »
MsgBox « Le fichier » & Chemin & Fichier & » a pour attribut : » & GetAttr(Chemin & Fichier)
Fichier = Dir
Loop
End Sub
liste des fichiers dudit répertoire
~$List1Repert.xlsm AnalizCaractR.xlsm Fichier Anomalie.xlsx etc
comment faire pour accéder au fichier : ~$List1Repert.xlsm
M. JULLIEN Ph.