Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupérer le nom d'utiliasteur connecté sous VBA

8 réponses
Avatar
Philippe Mermoud
NOus disposons d'une macro sous Word dans laquelle nous souhaiterions
récupérer le nom de l'utilisateur connecté au poste sous WinNT (2000 ou XP).
Comment peut on faire cela ?

8 réponses

Avatar
Eric
Bonjour Philippe ,

MsgBox Environ$("UserName") peut-être ?

--
A+
Eric


Philippe Mermoud a écrit :
NOus disposons d'une macro sous Word dans laquelle nous souhaiterions
récupérer le nom de l'utilisateur connecté au poste sous WinNT (2000 ou XP).
Comment peut on faire cela ?




Avatar
Jacques93
Bonjour,
Philippe Mermoud a écrit :
NOus disposons d'une macro sous Word dans laquelle nous souhaiterions
récupérer le nom de l'utilisateur connecté au poste sous WinNT (2000 ou XP).
Comment peut on faire cela ?




Ou avec l'API :

Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long

Dim User As String

User = Space(255)
GetUserName User, Len(User)
MsgBox User


--
Cordialement,

Jacques.
Avatar
Guy DETIENNE
Salut ;O)

La méthode la plus sure est de passer par l'API GetUserName :

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA"
(ByVal lpBuffer As String, nSize As Long) As Long

Dim strUserName As String

'Create a buffer
strUserName = String(100, Chr$(0))
'Get the username
GetUserName strUserName, 100
'strip the rest of the buffer
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
MsgBox "Utilisateur: " & strUserName

Guy

"Philippe Mermoud" a écrit dans le message de
news:428b5cc3$0$17437$
NOus disposons d'une macro sous Word dans laquelle nous souhaiterions
récupérer le nom de l'utilisateur connecté au poste sous WinNT (2000 ou


XP).
Comment peut on faire cela ?




Avatar
Philippe Mermoud
Merci cela marche parfaitement !!!

"Guy DETIENNE" a écrit dans le message de news:

Salut ;O)

La méthode la plus sure est de passer par l'API GetUserName :

Private Declare Function GetUserName Lib "advapi32.dll" Alias


"GetUserNameA"
(ByVal lpBuffer As String, nSize As Long) As Long

Dim strUserName As String

'Create a buffer
strUserName = String(100, Chr$(0))
'Get the username
GetUserName strUserName, 100
'strip the rest of the buffer
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
MsgBox "Utilisateur: " & strUserName

Guy

"Philippe Mermoud" a écrit dans le message de
news:428b5cc3$0$17437$
> NOus disposons d'une macro sous Word dans laquelle nous souhaiterions
> récupérer le nom de l'utilisateur connecté au poste sous WinNT (2000 ou
XP).
> Comment peut on faire cela ?
>
>




Avatar
Guy DETIENNE
Disons que tout bon professionnel du développement utilisera cette API.
Content que cela te convienne.

Guy

"Philippe Mermoud" a écrit dans le message de
news:428b7c7e$0$18781$
Merci cela marche parfaitement !!!

"Guy DETIENNE" a écrit dans le message de news:

> Salut ;O)
>
> La méthode la plus sure est de passer par l'API GetUserName :
>
> Private Declare Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA"
> (ByVal lpBuffer As String, nSize As Long) As Long
>
> Dim strUserName As String
>
> 'Create a buffer
> strUserName = String(100, Chr$(0))
> 'Get the username
> GetUserName strUserName, 100
> 'strip the rest of the buffer
> strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
> MsgBox "Utilisateur: " & strUserName
>
> Guy
>
> "Philippe Mermoud" a écrit dans le message de
> news:428b5cc3$0$17437$
> > NOus disposons d'une macro sous Word dans laquelle nous souhaiterions
> > récupérer le nom de l'utilisateur connecté au poste sous WinNT (2000


ou
> XP).
> > Comment peut on faire cela ?
> >
> >
>
>




Avatar
Eric
Bonjour,

Si tu remplaces toutes les fonctions livrées avec VBA dans la suite
Office, à quoi peut bien servir VBA ?

A terme, adieu VB ou VBA bonjour les API.

Ce n'est qu'un avis perso d'un mauvais programmeur
--
A+
Eric


Guy DETIENNE a écrit :
Disons que tout bon professionnel du développement utilisera cette API.
Content que cela te convienne.

Guy



Avatar
Jacques93
Bonsoir,
Eric a écrit :
Bonjour,

Si tu remplaces toutes les fonctions livrées avec VBA dans la suite
Office, à quoi peut bien servir VBA ?

A terme, adieu VB ou VBA bonjour les API.

Ce n'est qu'un avis perso d'un mauvais programmeur




Mais non :-)
Un des problèmes avec les variables d'environnements c'est qu'elles sont
modifiables.

Essaie par exemple un batch :

Set USERNAME = "Toto"
NomDuCheminExcelExcel.exe

Environ$("UserName") te renverras "Toto"

alors que l'api te renverras bien le nom qui a ouvert
la session.

OK, je suis peut être un pau parano :-D

--
Cordialement,

Jacques.
Avatar
Guy DETIENNE
Salut ;O)

Les API's sont là aussi pour palier aux manques de VBA et dieu sait qu'il y
en a ...
VBA ne possède pas de fonction pour connaître l'utilisateur connecté.

Environ$("UserName") n'est pas une méthode fiable que pour l'utiliser.
Certes, elle fonctionnera dans la plupart des cas, mais comme le dit si bien
Jacques, la variable d'environnement UserName est modifiable par le premier
quidam de passage... donc à éviter absolument ;O)

Guy




"Eric" a écrit dans le message de
news:O2Sc$
Bonjour,

Si tu remplaces toutes les fonctions livrées avec VBA dans la suite
Office, à quoi peut bien servir VBA ?

A terme, adieu VB ou VBA bonjour les API.

Ce n'est qu'un avis perso d'un mauvais programmeur
--
A+
Eric


Guy DETIENNE a écrit :
> Disons que tout bon professionnel du développement utilisera cette API.
> Content que cela te convienne.
>
> Guy
>