VBA - tester si un classeur est ouvert+Nom utilisateur
3 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <alex.audiens63@free.fr> a écrit dans le message de
news:bqf6h5$4ej$1@s1.read.news.oleane.net...
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.
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.
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.
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" <mpierron@europtest.com> a écrit dans le message de
news:OW4FqbBuDHA.2456@TK2MSFTNGP12.phx.gbl...
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" <alex.audiens63@free.fr> a écrit dans le message de
news:bqf6h5$4ej$1@s1.read.news.oleane.net...
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.
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.
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.
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" <alex.audiens63@free.fr> a écrit dans le message de
news:bqg0hq$km8$1@s1.read.news.oleane.net...
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" <mpierron@europtest.com> a écrit dans le message de
news:OW4FqbBuDHA.2456@TK2MSFTNGP12.phx.gbl...
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" <alex.audiens63@free.fr> a écrit dans le message de
news:bqf6h5$4ej$1@s1.read.news.oleane.net...
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.
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.