Excel 2007 VBA-Nom user ?

Résolu/Fermé
Signaler
Messages postés
3
Date d'inscription
mercredi 27 octobre 2010
Statut
Membre
Dernière intervention
27 octobre 2010
-
Messages postés
3
Date d'inscription
mercredi 27 octobre 2010
Statut
Membre
Dernière intervention
27 octobre 2010
-
Bonjour,

Je cherche à récupérer le nom de l'utilisateur courant de la feuille Excel au sein d'une macro ...
Je sais faire pour la date du jour :
datejour = Now ()

Mais comment faire pour récupérer l'identifiant de l'utisateur qui a ouvert mon fichier ???

Merci de votre aide !

1 réponse

Messages postés
16538
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
1 décembre 2021
3 251
Bonjour

espionne par qui et quand le classeur a été ouvert ou fermé
le rapport est dans un fichier texte (bigbrother.txt)

code à installer dans le module thisworkbook

Option Explicit 
Const fichier As String = "D:\documents\bigbrother.txt" 'A ADAPTER AU CONTEXTE 
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _ 
(ByVal lpBuffer As String, _ 
nSize As Long) As Long 

'A partir d'une démo de @+Thierry  
Private Sub Workbook_Open() 
Dim lpBuff As String * 25 
Dim retour As Long 
Dim utilisateur As String, cafte As String 

retour = GetUserName(lpBuff, 25) 
utilisateur = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1) 

cafte = "Ouvert à : " & Format(Now, "dd/mm/yyyy hh:mm:ss") & _ 
vbTab & "par : " & utilisateur 

Open fichier For Append As #1 
Print #1, cafte 
Close 

End Sub 

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Dim lpBuff As String * 25 
Dim retour As Long 
Dim utilisateur As String, cafte As String 

retour = GetUserName(lpBuff, 25) 
utilisateur = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1) 

cafte = "Fermé à  : " & Format(Now, "dd/mm/yyyy hh:mm:ss") & _ 
vbTab & "par : " & utilisateur 

Open fichier For Append As #1 
Print #1, cafte 
Close 

End Sub 


Michel
Messages postés
3
Date d'inscription
mercredi 27 octobre 2010
Statut
Membre
Dernière intervention
27 octobre 2010

Merci Michel_m mais cela me permet bien compliqué.Je pensais qu'une variable Office contenait l'identifiant du user actuel de la machine ouvrant le fichier ... me trompé-je ?
Messages postés
16538
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
1 décembre 2021
3 251
Tout dépend où se trouve ton classeur et comment les utilisateurs se connectent à ton fichier

sur un poste unique, tu peux utiliser
tavariable=Application.UserName

comme ce dernier thread est marqué tout simplement dans l'aide VBA , j'ai donc cru que ton classeur était sur le réseau puisque tu posais la question
Messages postés
3
Date d'inscription
mercredi 27 octobre 2010
Statut
Membre
Dernière intervention
27 octobre 2010

Super ! C'est exactement ce que je recherchais !!
Merci.