Récupération du nom de compte connexion à windows. [Résolu]

Signaler
Messages postés
14
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
1 avril 2012
-
nonoss56
Messages postés
14
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
1 avril 2012
-
Bonjour,

Dans une appli Excel et VB, j'ai besoin de récupérer le nom du compte connecté. Je n'arrive pas à trouver.

Exemple:
je me connecte sous windows sous le nom "toto", quel est la commande
pour que dans mon vb Excel je puisse récupérer 'toto'.

Merci de votre aide

7 réponses

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
oups !!!
j'ai inversé les params de cells
faut faire cells(i,1) au lieu de cells(1,i)

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
32
Exemple avec l'api windows :

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

'### Utilisation #####################################
    '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)

    'Show the temppath and the username
    MsgBox "Hello " + strUserName

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
14
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
1 avril 2012

Merci Casy

Je viens de mettre ces 2 éléments dans un VB excel pour tester. Par contre, il ne me renvoie rien, simplement Hello... J'ai fait un copier coller de ton code pour être sûr d'éviter les fautes d'orthographe...

merci encore
Messages postés
14
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
1 avril 2012

Oublié de dire que je suis sous windows XP Pro...

je ne sasi pas si c'est important
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
32
Effectivement ça ne marche pas chez moi non plus.

D'après l'aide, il y aurait la commande Application.UserName, mais chez elle me renvoie le nom de la machine au lieu du nom utilisateur.

Sinon tu peut essayer ce code :
'### Déclarations ###########################
Private Enum EXTENDED_NAME_FORMAT
    NameUnknown = 0
    NameFullyQualifiedDN = 1
    NameSamCompatible = 2
    NameDisplay = 3
    NameUniqueId = 6
    NameCanonical = 7
    NameUserPrincipal = 8
    NameCanonicalEx = 9
    NameServicePrincipal = 10
End Enum
Private Declare Function GetUserNameEx Lib "secur32.dll" Alias "GetUserNameExA" (ByVal NameFormat As EXTENDED_NAME_FORMAT, ByVal lpNameBuffer As String, ByRef nSize As Long) As Long

'### Utilisation ############################
    Dim sBuffer As String, Ret As Long
    sBuffer = String(256, 0)
    Ret = Len(sBuffer)
    If GetUserNameEx(NameSamCompatible , sBuffer, Ret) <> 0 Then
        MsgBox "Username: " + Left$(sBuffer, Ret)
    Else
        MsgBox "Error while retrieving the username"
    End If

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
bonjour
sous XP il y a une solution ultra simple !!!!!
cells(1,1) = Environ("Username")
maintenant la fonction Environ peut te donner bien plus d'infos pour cela tu peux faire
dim i as integer
for i = 1 to 30
    cells( 1, i) = environ( i)
next i
et en ligne 27 tu retrouveras le USERNAME =

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
14
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
1 avril 2012

Nickel, hyper simple et ça marche...

Merci...