Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA - tester si un classeur est ouvert+Nom utilisateur

3 réponses
Avatar
Alex
Bonjour,
Je souhaiterai tester en VBA, si un classeur (en réseau) est déjà ouvert ou
pas, et si il est ouvert, récupérer le nom de l'utilisateur, sous
environnement Windows NT.
Merci par avance pour votre aide
Bonne journée.

3 réponses

Avatar
Michel Pierron
Salut Alex;
Question récurrente, affiche la liste des utilisateurs en cours de consultation du
fichier.

Private Sub UsersList()
Dim Users, Msg As String, Status As String, i As Integer
Users = ThisWorkbook.UserStatus
For i = 1 To UBound(Users, 1)
Msg = Msg & Users(i, 1) & " " & Format(Users(i, 2), "dd/mm/yy h:mm") & " "
If Users(i, 3) = 1 Then Status = "(Exclusive mode)" Else Status = "(Shared
mode)"
Msg = Msg & Status & vbLf
Next
MsgBox Msg, 64
End Sub

1 - Le classeur doit être en mode partagé.
2 - Les consultations en mode lecture seule ne sont pas affichées (si ma mémoire
est bonne).

MP

"Alex" a écrit dans le message de
news:bqf6h5$4ej$
Bonjour,
Je souhaiterai tester en VBA, si un classeur (en réseau) est déjà ouvert ou
pas, et si il est ouvert, récupérer le nom de l'utilisateur, sous
environnement Windows NT.
Merci par avance pour votre aide
Bonne journée.




Avatar
Alex
Merci pour ta réponse, mais je veux seulement savoir si le classeur est déjà
ouvert, afin d'éviter de l'ouvrir en lecture seule et par la même occasion
connaître le nom de la personne qui la ouvert.


"Michel Pierron" a écrit dans le message de
news:
Salut Alex;
Question récurrente, affiche la liste des utilisateurs en cours de
consultation du

fichier.

Private Sub UsersList()
Dim Users, Msg As String, Status As String, i As Integer
Users = ThisWorkbook.UserStatus
For i = 1 To UBound(Users, 1)
Msg = Msg & Users(i, 1) & " " & Format(Users(i, 2), "dd/mm/yy h:mm") &
" "

If Users(i, 3) = 1 Then Status = "(Exclusive mode)" Else Status "(Shared
mode)"
Msg = Msg & Status & vbLf
Next
MsgBox Msg, 64
End Sub

1 - Le classeur doit être en mode partagé.
2 - Les consultations en mode lecture seule ne sont pas affichées (si ma
mémoire

est bonne).

MP

"Alex" a écrit dans le message de
news:bqf6h5$4ej$
Bonjour,
Je souhaiterai tester en VBA, si un classeur (en réseau) est déjà ouvert
ou


pas, et si il est ouvert, récupérer le nom de l'utilisateur, sous
environnement Windows NT.
Merci par avance pour votre aide
Bonne journée.








Avatar
Michel Pierron
Salut Alex;
J'en déduis que le fichier n'est pas partagé. En ce cas, il te faut rapatrier dans
un fichier texte la liste des fichiers ouverts à partir du serveur et rechercher
dans cette liste si le nom du fichier en question y figure (le nom de
l'utilisateur figure en regard du nom de fichier) à l'aide de la commande Net
file.
Cela suppose que ton OS local soit de type NT avec les droits d'administration
adéquats.
MP

"Alex" a écrit dans le message de
news:bqg0hq$km8$
Merci pour ta réponse, mais je veux seulement savoir si le classeur est déjà
ouvert, afin d'éviter de l'ouvrir en lecture seule et par la même occasion
connaître le nom de la personne qui la ouvert.


"Michel Pierron" a écrit dans le message de
news:
Salut Alex;
Question récurrente, affiche la liste des utilisateurs en cours de
consultation du

fichier.

Private Sub UsersList()
Dim Users, Msg As String, Status As String, i As Integer
Users = ThisWorkbook.UserStatus
For i = 1 To UBound(Users, 1)
Msg = Msg & Users(i, 1) & " " & Format(Users(i, 2), "dd/mm/yy h:mm") &
" "

If Users(i, 3) = 1 Then Status = "(Exclusive mode)" Else Status > "(Shared
mode)"
Msg = Msg & Status & vbLf
Next
MsgBox Msg, 64
End Sub

1 - Le classeur doit être en mode partagé.
2 - Les consultations en mode lecture seule ne sont pas affichées (si ma
mémoire

est bonne).

MP

"Alex" a écrit dans le message de
news:bqf6h5$4ej$
Bonjour,
Je souhaiterai tester en VBA, si un classeur (en réseau) est déjà ouvert
ou


pas, et si il est ouvert, récupérer le nom de l'utilisateur, sous
environnement Windows NT.
Merci par avance pour votre aide
Bonne journée.