Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 20 janv. 2005 à 20:07
il doit y avoir des dossiers avec attribut caché ou systéme ???
Private Sub SetAttributs(dossier As String)
Dim i As Integer
Dim nb As Integer
Dim Table() As String
Dim fichier As String
nb = 1
ReDim Table(1)
Table(1) = dossier
While i < nb
i = i + 1
dossier = Table(i)
If Left$(dossier, 1) <> "" Then dossier = dossier & ""
fichier = Dir(dossier & "*.*", vbDirectory Or vbHidden Or vbSystem)
Do Until fichier = ""
If Asc(fichier) <> 46 Then
If (GetAttr(dossier & fichier) And &H10) = vbDirectory Then
nb = nb + 1
ReDim Preserve Table(nb)
Table(nb) = dossier & fichier
Else
SetAttr dossier & fichier, vbReadOnly
End If
End If
fichier = Dir()
Loop
Wend
End Sub
Private Sub Form_Load()
SetAttributs Command$
End Sub
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 20 janv. 2005 à 20:56
ça doit être à cause de la ligne SetAttributs Command$
c'est ce qui récupère le paramètre passé au programme mais au départ Command$ est vide et j'ai pas mis de routine d'erreur.
enlève le et lance la procédure avec un bouton:
Private Sub Command1_Click()
SetAttributs "C:\formulaire"
End Sub
sylbar84
Messages postés14Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention20 décembre 2005 20 janv. 2005 à 17:04
oki mais le problème c'est qu'il ne mettra que "chemin" en lecture
seule et moi je dois aussi mettre tout ce qu'il contien en lecture
seule ( dossier sous dossier ficher etc)
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 20 janv. 2005 à 18:53
Private Sub SetAttributs(dossier As String)
Dim i As Integer
Dim nb As Integer
Dim Table() As String
Dim fichier As String
nb = 1
ReDim Preserve Table(1)
Table(1) = dossier
While i < nb
i = i + 1
dossier = Table(i)
If Left$(dossier, 1) <> "" Then dossier = dossier & ""
fichier = Dir(dossier & "*.*", vbDirectory)
Do Until fichier = ""
If Asc(fichier) <> 46 Then
If GetAttr(dossier & fichier) = vbDirectory Then
nb = nb + 1
ReDim Preserve Table(nb)
Table(nb) = dossier & fichier
Else
SetAttr dossier & fichier, vbReadOnly
End If
End If
fichier = Dir()
Loop
Wend