Excel 2007 VBA-Nom user ?

Résolu/Fermé
vtt30 Messages postés 3 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 27 octobre 2010 - 27 oct. 2010 à 17:16
vtt30 Messages postés 3 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 27 octobre 2010 - 27 oct. 2010 à 18:31
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

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 27/10/2010 à 17:25
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
0
vtt30 Messages postés 3 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 27 octobre 2010
27 oct. 2010 à 17:49
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 ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
27 oct. 2010 à 18:01
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
0
vtt30 Messages postés 3 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 27 octobre 2010
27 oct. 2010 à 18:31
Super ! C'est exactement ce que je recherchais !!
Merci.
0