[FAQ][VBA-E] Comment récupérer le nom d´utilisateur du PC
Voici un petit code que j´ai récupéré lors de la création d´un fichier destiné à être utilisé par des utilisateurs multiples qui n´ont pas tous accès aux mêmes fonctionnalités gérées par le code VBA (requètes, accès à certains onglets...).
Comme ce genre de procédé semble assez courant dans les directions financières (confidentialité, quand tu nous tiens...:mouarf: ), je pense qu´il peut être utile dans la FAQ, rubrique 3.1.2 "Application/Divers".
Q: Comment obtenir l´identité de l´utilisateur loggé sur une machine ?
R:
L´identité de l´utilisateur loggé sur un ordinateur se trouve dans un API que l´on peut "lire" grâce au code suivant:
Code:
1 2 3
| Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long |
Cette première portion de code définit la fonction "GetUserName" qui est ensuite appelée dans la suite du code:
Code:
1 2 3 4 5 6 7 8
| Sub UserName()
Dim password As String
Dim b As String * 100
Dim L As Long
L = 100
GetUserName b, L
password = Left(b, L - 1)
End Sub |
à l´issue du code, le nom d´utilisateur est stocké dans la variable "password"
Note: cette fonction fonctionne avec certitude sous Windows XP SP2, pour ce qui est des autres OS sous lesquels elle est utilisable, pourriez-vous m´aider à complèter la liste ?
Récupérer l'identité de l'utilisateur du PC
Bonjour à tous,
J'interviens un peu tard dans ces échanges, mais j'utilise une autre possibilité plus simple pour récupérer le nom de l'utilisateur:
Code:
1 2 3 4 5
| Sub test_UserName()
Dim Nom As String
Nom = Environ("USERNAME")
MsgBox Nom
End Sub |
Comment récupérer le nom de l'utilisateur
Bonjour,
J'ai apporté ma contribution dans le contexte suivant que j'ai testé:
Le fichier excel qui contient la macro est placé sur un disque partagé. Les utilisateurs, soit ouvrent le fichier partagé, soit font une copie sur leur environnement.
L'usage que je fais du nom de l'utilisateur est de tracer le nom de l'utilisateur et la liste des onglets du classeur qu'il a ouvert pour faire une statistique d'usage des onglets.
Je trace tout ça dans un fichier texte qui est sur le disque partagé. Et ça marche bien.
Dans ce contexte, c'est bien l'utilisateur de l'ordi qui m'intéresse, mais il se trouve que c'est aussi l'utilisateur de l'application Excel. La différence dépend de ce qui a été saisi à l'installation soit de l'ordi, soit d'Excel.
En tout cas vos remarques m'ont fait réfléchir à cette subtilité qui m'avait échappée.
Merci