droits d'accés fichier en VBA

G

GP2

Guest
Bonjour !

Je souhaiterais développer une routine qui permet d'obtenir quels sont les droits utilisateurs sur un fichier donné du réseau (plusieurs postes sous win2000 qui n'ont pas tous le droit d'écriture sur le fichier concerné).
Pouvez-vous m'éclairer ?

Merci d'avance...
 
J

jmps

Guest
Bonjour GP2,

Essaye ceci:

Private Sub Workbook_Open()
  If ThisWorkbook.ReadOnly = True Then
    MsgBox ("En lecture seule")
  Else
    MsgBox ("En lecture écriture")
  End If
End Sub


Je n'ai pas essayé sur un lecteur réseau, seulement en modifiant l'attribut lecture seule du fichier, mais ça doit être pareil.

A+

José
 
G

GP2

Guest
Merci José mais en fait ce n'est pas pareil justement !
J'ai bien défini les attributs du fichier en lecture-écriture et d'ailleurs la fonction getattr m'indique que le fichier n'est pas en lecture seule.
Le Pb est donc de récupérer les infos de propriétés d'accés du fichier dans windows.

J'ai des pistes avec le code suivant mais ça ne fonctionne pas car je ne parviens pas à fournir l'argument OwnerWnd à la fonction.
Merci de m'aider !!

-------------------------------------------------------------
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type

Const SEE_MASK_INVOKEIDLIST = &HC
Const SEE_MASK_NOCLOSEPROCESS = &H40
Const SEE_MASK_FLAG_NO_UI = &H400

Private Declare Function ShellExecuteEX Lib "shell32.dll" Alias "ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long

Private Function File_Properties_DialogBox(FileName As String, OwnerhWnd As Long)
Dim SEI As SHELLEXECUTEINFO
With SEI
.cbSize = Len(SEI)
.fMask = SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST _
Or SEE_MASK_FLAG_NO_UI
.hwnd = OwnerhWnd
.lpVerb = "properties"
.lpFile = FileName
.lpParameters = vbNullChar
.lpDirectory = vbNullChar
.nShow = 0
.hInstApp = 0
.lpIDList = 0
End With
Call ShellExecuteEX(SEI)
End Function
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 963
Messages
2 093 996
Membres
105 906
dernier inscrit
aifa