Je n'ai pas fais preuve d'agressivité et je souhaite que celà n'arrive jamais auquel cas je n'aurais plus rien à faire ici.
Non tu n'as pas dit
"Que tu savais tout " tu as dit pire ! je l'ai même repris en sujet ce que tu as dit....
(que j'avais déjà fait mais autrement) alors ne fais pas semblant de ne pas comprendre.
Quand on me réponds çà, après que j'ai mis un lien où il y a la solution qui a necessité des journées de travail de ma part et en plus assisté de gens comme Frédérique Sigonneau qui s'y sont investis..... (Au fait ce n'est pas "DicoPlus" lol c'est
Ce site n'existe plus) il ne faut pas que tu t'étonnes d'avoir cette réponse... Et encore j'étais de bon poil hier
Que tu soies débutant, ou developpeur confirmé, ne change rien. Ici comme dans la vie, je déteste l'arrogance. Quelque soit la réponse, Juste ou Fausse, Bonne ou Mauvaise, parfaite ou incomplète... On la respecte et on ne répond pas,
en plus en sous entendu, en se cachant derrière des parenthèses En effet, avec ceci ... (que j'avais déjà fait mais autrement) ...
En plus tu sais très bien pourquoi, et aujourd'hui tu reviens style "Je ne comprends pas".. "Je n'ai jamais dit ".... c'est encore pire !
Voilà pourquoi ma réaction, puisqu'il te faut les points sur les
i
Pour en revenir à nos moutons...
(lol)
Ben tu as dis toi même que ce (ces) fichier(s) était(ent) lancé(s) par un bouton...
Donc qu'Excel est ouvert. Si Excel est ouvert, les macros fonctionnent non ? Donc dans le même bouton (celui qui lance ton fichier) on peut faire écrire le nom du user sur un classeur du réseau qui servirait de registre d'utilisation de fichier.
Quand le code d'ouverture que je t'ai proposé donc sur le lien plus haut, détecte que le classeur est déjà ouvert, il suffit de prévoir la lecture de ce fichier de registre sur le dernier User. C'est pas compliqué... Il suffit d'avoir l'idée. (et l'ingéniosité, et la curiosité, et l'audace d'essayer).
Pour connaitre l'ID d'un user... Soit le truc tout bête qui peut être facilement "trafiqué par le User, vu qu'il peut enregistrer n'importe quel nom de user dans les option générales d'Excel.
Sub NomUser ()
MsgBox Application.UserName
End Sub
Soit avec cette macro utilisant une API (Application Programming Interface ) livré en standard avec Sample.xls, qui quand à elle garantie de retourner le Loggin Name du User Connecté en Réseau.
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Sub Get_User_Name()
Dim lpBuff As String * 25
Dim ret As Long, UserName As String
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
MsgBox UserName
End Sub
Voilà Mr Phil, en espérant avoir été clair autant dans mes explications VBA que dans la façon dont je vois les choses pour le respect du travail et la générosité gratuites dont tous les membres actifs font preuves ici.
Bon Appétit et bonne journée
@+Thierry