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

Le
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 ?
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #15567851
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 ?




Jacques93
Le #15567801
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.
Guy DETIENNE
Le #15567791
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" 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 ?




Philippe Mermoud
Le #15567741
Merci cela marche parfaitement !!!

"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" 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 ?
>
>




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

Guy

"Philippe Mermoud" news:428b7c7e$0$18781$
Merci cela marche parfaitement !!!

"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" > 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 ?
> >
> >
>
>




Eric
Le #15567611
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



Jacques93
Le #15567601
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.
Guy DETIENNE
Le #15567571
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" 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
>


Publicité
Poster une réponse
Anonyme