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

Résolu
nonoss56 Messages postés 14 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 1 avril 2012 - 15 févr. 2009 à 08:57
nonoss56 Messages postés 14 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 1 avril 2012 - 15 févr. 2009 à 11:35
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

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
15 févr. 2009 à 10:39
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
15 févr. 2009 à 09:09
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
0
nonoss56 Messages postés 14 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 1 avril 2012
15 févr. 2009 à 09:34
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
0
nonoss56 Messages postés 14 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 1 avril 2012
15 févr. 2009 à 09:44
Oublié de dire que je suis sous windows XP Pro...

je ne sasi pas si c'est important
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
15 févr. 2009 à 10:31
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
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
15 févr. 2009 à 10:34
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
0
nonoss56 Messages postés 14 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 1 avril 2012
15 févr. 2009 à 11:35
Nickel, hyper simple et ça marche...

Merci...
0