Excel 2007 VBA-Nom user ?

Résolu
vtt30 Messages postés 3 Statut Membre -  
vtt30 Messages postés 3 Statut Membre -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. vtt30 Messages postés 3 Statut Membre
       
      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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    3. vtt30 Messages postés 3 Statut Membre
       
      Super ! C'est exactement ce que je recherchais !!
      Merci.
      0