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

Qui a ouvert mon classeur !

8 réponses
Avatar
JohnFuss
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros problèmes
car tous les postes sont installé de manière identique, particluièrement le
nom de l'utilisateur Office de chaque poste. Du coup lorsque que l'on ouvre
un classeur déja ouvert, on ne sait pas qui est en écriture sur ce classeur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais les
utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir qui
est actuellement dans un fichier, mais n'est-il pas possible depuis mon Pc
par exemple de connaitre l'IP, le login ou le nom de machine qui a la main
sur un classeur du réseau ?

Merci d'avance.

JohnFuss

8 réponses

Avatar
JP25
Bonjour
Je pense que ton serveur saura te dire les users qui on ouvert le fichier
Quand tu ouvres Excel, il te renvoie le nom de la personne qui l'a ouvert a
condition d'avoir renseigné le nom utilisateur dans
Options onglet géneral, nom utilisateur
JP25
"JohnFuss" a écrit dans le message de news:
46541b04$0$6092$
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros
problèmes car tous les postes sont installé de manière identique,
particluièrement le nom de l'utilisateur Office de chaque poste. Du coup
lorsque que l'on ouvre un classeur déja ouvert, on ne sait pas qui est en
écriture sur ce classeur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais les
utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir
qui est actuellement dans un fichier, mais n'est-il pas possible depuis
mon Pc par exemple de connaitre l'IP, le login ou le nom de machine qui a
la main sur un classeur du réseau ?

Merci d'avance.

JohnFuss



Avatar
JohnFuss
Bonjour,

je ne peux pas repasser sur chaque machine pour mettre à jour l'utilisateur
office, et les serveurs étant administrés par une société de service je ne
peux faire appel à eux pour ça.

Je préférerais une solution en VBA (ou autre) permettant de récupérer ces
informations depuis mon poste.

JohnFuss.

"JP25" a écrit dans le message de news:

Bonjour
Je pense que ton serveur saura te dire les users qui on ouvert le fichier
Quand tu ouvres Excel, il te renvoie le nom de la personne qui l'a ouvert
a condition d'avoir renseigné le nom utilisateur dans
Options onglet géneral, nom utilisateur
JP25
"JohnFuss" a écrit dans le message de news:
46541b04$0$6092$
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros
problèmes car tous les postes sont installé de manière identique,
particluièrement le nom de l'utilisateur Office de chaque poste. Du coup
lorsque que l'on ouvre un classeur déja ouvert, on ne sait pas qui est en
écriture sur ce classeur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais
les utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir
qui est actuellement dans un fichier, mais n'est-il pas possible depuis
mon Pc par exemple de connaitre l'IP, le login ou le nom de machine qui a
la main sur un classeur du réseau ?

Merci d'avance.

JohnFuss







Avatar
Michel Pierron
Bonjour John;
Peut être ainsi (il te faut les droits Administrateur) :

' Remplacer <servername> par le nom de ton serveur
Sub WhoHasFileOpen()
Dim File As String
File = InputBox("Enter any part of Filename")
If File = "" Then Exit Sub
If Any_Part_Of_Filename = "" Then Exit Sub
Workbooks.Add
Rows(1).Font.Bold = True
Cells(1, 1) = "USER"
Cells(1, 2) = "PATH"
On Error Resume Next
Dim fso As Object, Res As Object, i&: i = 1
Set fso = GetObject("WinNT://<servername>/LanmanServer")
If IsEmpty(fso) Then Exit Sub
For Each Res In fso.resources
If Not Res.user = "" And Not Right(Res.user, 1) = "$" Then
If InStr(1, Res.Path, File, 1) Then
i = i + 1
Cells(i, 1) = Res.user
Cells(i, 2) = Res.Path
End If
End If
Next Res
Cells.Columns.AutoFit
MsgBox "Done !", 64
End Sub

MP


"JohnFuss" a écrit dans le message de news:
46541b04$0$6092$
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros
problèmes car tous les postes sont installé de manière identique,
particluièrement le nom de l'utilisateur Office de chaque poste. Du coup
lorsque que l'on ouvre un classeur déja ouvert, on ne sait pas qui est en
écriture sur ce classeur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais les
utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir
qui est actuellement dans un fichier, mais n'est-il pas possible depuis
mon Pc par exemple de connaitre l'IP, le login ou le nom de machine qui a
la main sur un classeur du réseau ?

Merci d'avance.

JohnFuss



Avatar
JohnFuss
Bonjour Michel,

c'est exactement ce que je cherchais mais malheureusement je n'arrive pas à
le mettre en place, je ne maitrise pas le "LanmanServer", puis-je faire des
tests avec le serveur 127.0.0.1 ? (ça ne me renvoi rien), en spécifiant le
serveur voire même domaine/serveur je n'obtient rien.

Y'a t'il une piste que je pourrais suivre ?

Merci d'avance.

JohnFuss

"Michel Pierron" a écrit dans le message de news:

Bonjour John;
Peut être ainsi (il te faut les droits Administrateur) :

' Remplacer <servername> par le nom de ton serveur
Sub WhoHasFileOpen()
Dim File As String
File = InputBox("Enter any part of Filename")
If File = "" Then Exit Sub
If Any_Part_Of_Filename = "" Then Exit Sub
Workbooks.Add
Rows(1).Font.Bold = True
Cells(1, 1) = "USER"
Cells(1, 2) = "PATH"
On Error Resume Next
Dim fso As Object, Res As Object, i&: i = 1
Set fso = GetObject("WinNT://<servername>/LanmanServer")
If IsEmpty(fso) Then Exit Sub
For Each Res In fso.resources
If Not Res.user = "" And Not Right(Res.user, 1) = "$" Then
If InStr(1, Res.Path, File, 1) Then
i = i + 1
Cells(i, 1) = Res.user
Cells(i, 2) = Res.Path
End If
End If
Next Res
Cells.Columns.AutoFit
MsgBox "Done !", 64
End Sub

MP


"JohnFuss" a écrit dans le message de news:
46541b04$0$6092$
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros
problèmes car tous les postes sont installé de manière identique,
particluièrement le nom de l'utilisateur Office de chaque poste. Du coup
lorsque que l'on ouvre un classeur déja ouvert, on ne sait pas qui est en
écriture sur ce classeur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais
les utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir
qui est actuellement dans un fichier, mais n'est-il pas possible depuis
mon Pc par exemple de connaitre l'IP, le login ou le nom de machine qui a
la main sur un classeur du réseau ?

Merci d'avance.

JohnFuss







Avatar
lSteph
Bonjour,

Il n'y a aucun besoin d'aller poste par poste, il suffit de mettre le
code proposé
dans le(s) classeur(s) qui sera ouvert!

Si l' user n'a pas mis son nom dans les paramêtres
le login de sa session y sera placé.

lSteph

'....
Private Sub Workbook_Open()
With Application
If .UserName = "" Or .UserName = "Administrateur" Then
.UserName = Environ("UserName")
MsgBox "merci... vous pouvez maintenant rouvrir le fichier"
ThisWorkbook.Close False
End If
End With
End Sub

On 23 mai, 12:37, "JohnFuss" wrote:
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros pr oblèmes
car tous les postes sont installé de manière identique, particluièr ement le
nom de l'utilisateur Office de chaque poste. Du coup lorsque que l'on ouv re
un classeur déja ouvert, on ne sait pas qui est en écriture sur ce cl asseur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais les
utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir qui
est actuellement dans un fichier, mais n'est-il pas possible depuis mon Pc
par exemple de connaitre l'IP, le login ou le nom de machine qui a la main
sur un classeur du réseau ?

'Merci d'avance.

JohnFuss


Avatar
Michel Pierron
Bonjour John;
Comme ceci :
Set fso = GetObject("WinNT://Nom du domaine/Nom du serveur/LanmanServer")

Exemple :
Set fso = GetObject("WinNT://Trucmuch/Serveur01/LanmanServer")

MP

"JohnFuss" a écrit dans le message de news:
4655602f$0$24946$
Bonjour Michel,

c'est exactement ce que je cherchais mais malheureusement je n'arrive pas
à le mettre en place, je ne maitrise pas le "LanmanServer", puis-je faire
des tests avec le serveur 127.0.0.1 ? (ça ne me renvoi rien), en
spécifiant le serveur voire même domaine/serveur je n'obtient rien.

Y'a t'il une piste que je pourrais suivre ?

Merci d'avance.

JohnFuss

"Michel Pierron" a écrit dans le message de news:

Bonjour John;
Peut être ainsi (il te faut les droits Administrateur) :

' Remplacer <servername> par le nom de ton serveur
Sub WhoHasFileOpen()
Dim File As String
File = InputBox("Enter any part of Filename")
If File = "" Then Exit Sub
If Any_Part_Of_Filename = "" Then Exit Sub
Workbooks.Add
Rows(1).Font.Bold = True
Cells(1, 1) = "USER"
Cells(1, 2) = "PATH"
On Error Resume Next
Dim fso As Object, Res As Object, i&: i = 1
Set fso = GetObject("WinNT://<servername>/LanmanServer")
If IsEmpty(fso) Then Exit Sub
For Each Res In fso.resources
If Not Res.user = "" And Not Right(Res.user, 1) = "$" Then
If InStr(1, Res.Path, File, 1) Then
i = i + 1
Cells(i, 1) = Res.user
Cells(i, 2) = Res.Path
End If
End If
Next Res
Cells.Columns.AutoFit
MsgBox "Done !", 64
End Sub

MP


"JohnFuss" a écrit dans le message de news:
46541b04$0$6092$
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros
problèmes car tous les postes sont installé de manière identique,
particluièrement le nom de l'utilisateur Office de chaque poste. Du coup
lorsque que l'on ouvre un classeur déja ouvert, on ne sait pas qui est
en écriture sur ce classeur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais
les utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir
qui est actuellement dans un fichier, mais n'est-il pas possible depuis
mon Pc par exemple de connaitre l'IP, le login ou le nom de machine qui
a la main sur un classeur du réseau ?

Merci d'avance.

JohnFuss











Avatar
JohnFuss
Bonjour,

En fait le problème se pose sur une quarantaine de classeur, et les
utilistauers ont l'habitude de ne pas activer les macros (en interne on
installe des xla).

JohnFuss


"lSteph" a écrit dans le message de news:

Bonjour,

Il n'y a aucun besoin d'aller poste par poste, il suffit de mettre le
code proposé
dans le(s) classeur(s) qui sera ouvert!

Si l' user n'a pas mis son nom dans les paramêtres
le login de sa session y sera placé.

lSteph

'....
Private Sub Workbook_Open()
With Application
If .UserName = "" Or .UserName = "Administrateur" Then
.UserName = Environ("UserName")
MsgBox "merci... vous pouvez maintenant rouvrir le fichier"
ThisWorkbook.Close False
End If
End With
End Sub

On 23 mai, 12:37, "JohnFuss" wrote:
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros
problèmes
car tous les postes sont installé de manière identique, particluièrement
le
nom de l'utilisateur Office de chaque poste. Du coup lorsque que l'on
ouvre
un classeur déja ouvert, on ne sait pas qui est en écriture sur ce
classeur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais les
utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir
qui
est actuellement dans un fichier, mais n'est-il pas possible depuis mon Pc
par exemple de connaitre l'IP, le login ou le nom de machine qui a la main
sur un classeur du réseau ?

'Merci d'avance.

JohnFuss


Avatar
LSteph
Ok! alors...merci pour ce retour
Dans ce cas effectivement ma proposition ne convient sans doute pas.

Pas ce pb car j'ai recommandé aux utilisateurs des groupes qui me
concernent à activer les macros...mais uniquement lorsqu'ils sont
certains de qui provient le classeur.

@+

lSteph


Bonjour,

En fait le problème se pose sur une quarantaine de classeur, et les
utilistauers ont l'habitude de ne pas activer les macros (en interne on
installe des xla).

JohnFuss


"lSteph" a écrit dans le message de news:

Bonjour,

Il n'y a aucun besoin d'aller poste par poste, il suffit de mettre le
code proposé
dans le(s) classeur(s) qui sera ouvert!

Si l' user n'a pas mis son nom dans les paramêtres
le login de sa session y sera placé.

lSteph

'....
Private Sub Workbook_Open()
With Application
If .UserName = "" Or .UserName = "Administrateur" Then
.UserName = Environ("UserName")
MsgBox "merci... vous pouvez maintenant rouvrir le fichier"
ThisWorkbook.Close False
End If
End With
End Sub

On 23 mai, 12:37, "JohnFuss" wrote:
Bonjour,

nous sommes 450 utilisateurs dans ma société et nous avons un gros
problèmes
car tous les postes sont installé de manière identique, particluièrement
le
nom de l'utilisateur Office de chaque poste. Du coup lorsque que l'on
ouvre
un classeur déja ouvert, on ne sait pas qui est en écriture sur ce
classeur.
Une cinquantaine de personnes sont équipées de macro dans lesquels je
remplace l'utilisateur Office par le login de connection Windows, mais les
utilisateurs sont macros me pose problème.

Il n'est pas possible d'installer poste par poste des macros pour savoir
qui
est actuellement dans un fichier, mais n'est-il pas possible depuis mon Pc
par exemple de connaitre l'IP, le login ou le nom de machine qui a la main
sur un classeur du réseau ?

'Merci d'avance.

JohnFuss