• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Gebruikersnaam in cel

  • Onderwerp starter Onderwerp starter Maik
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Maik

Gebruiker
Lid geworden
20 dec 2005
Berichten
81
Weet iemand of het mogelijk is om de gebruikersnaam zichtbaar te maken in een cel?
Bedankt, Maik
 
Hoi Maik,

Zet onderstaande in 1 module:

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


Sub Username()

' LoginNaam van de gebruiker van dit programma
MsgBox Application.Username

' Windows Login Naam
MsgBox ReturnLoginUserName

' Bron : http://www.exceltip.com/st/Function_for_returning_the_user_name_using_VBA_in_Microsoft_Excel/452.html

End Sub

Function ReturnUserName() As String
' returns the NT Domain User Name
Dim rString As String * 255, sLen As Long, tString As String
    tString = ""
    On Error Resume Next
    sLen = GetUserName(rString, 255)
    sLen = InStr(1, rString, Chr(0))
    If sLen > 0 Then
        tString = Left(rString, sLen - 1)
    Else
        tString = rString
    End If
    On Error GoTo 0
    ReturnUserName = UCase(Trim(tString))
End Function


LoginNaam van de gebruiker van dit programma werkt alleen als je ook een login in je excel bestand hebt.
 
Volgens mij is dat laatste niet nodig, login in je excel blad.

kijk hier eens naar:
Code:
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Sub Get_User_Name()

    Dim lpBuff As String * 25
    Dim ret As Long, UserName As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
    MsgBox UserName
    Range("A2") = UserName

End Sub

Groet,
Ferenc
 
Scherm resolutie

Misschien ook handig, anders leuk voor de heb:
Geeft je schermresolutie weer.


Code:
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

    'Constants for GetSystemMetrics

     Const SM_CXSCREEN = 0        ' Width of screen
     Const SM_CYSCREEN = 1        ' Height of screen

Sub Get_System_Metrics()

    Dim XVal As Long, YVal As Long
    YVal = GetSystemMetrics(SM_CYSCREEN)
    XVal = GetSystemMetrics(SM_CXSCREEN)
    MsgBox "Your Screen Resolution is " & XVal & " by " & YVal
    ' Range("A1") = XVal & " by " & YVal

End Sub

Grroet,
Ferenc
 
Het lukt me niet, waar moet ik de code invoeren?
Maik
 
Weet niet of je bekend met macros en de VBA-editor?

- open de editor door in excel alt+f11 te drukken.
- aan de rechterkant zie je nu het aantal bladen welke zich in je excel document bevinden
- rechtermuisknop op een van deze bladen geeft een menu.
- ga naar invoegen en kies hier module.
- nu opent zich een wit venster aan de rechterkant van dit menu.
- in dit venster plaats je de code:
Code:
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Sub Get_User_Name()

    Dim lpBuff As String * 25
    Dim ret As Long, UserName As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
    MsgBox UserName
    Range("A2") = UserName

End Sub
Ga nu terug naar excel, alt+f11

plaats een button op je excelblad.
deze vindt je in je toolbar 'formulieren'.
na het tekenen van je button krijg e een popup waarin je de macro kan kiezen voor de button.
kies ' Blad1.Get_User_Name' , als het goed is dit de nige welke jij kan kiezen.
druk nu op je knop, en voila.

Groet,
Ferenc
 
Deze manier is nog sneller (+ aangepaste code).

Rechtermuisknop op je tabblad waar je de usernaam wil laten zien.
kies: programmacode weergeven
en plak in het witte scherm de volgende code:
Code:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Private Sub Worksheet_Activate()
    Dim lpBuff As String * 25
    Dim ret As Long, UserName As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
    MsgBox "U bent inglogd met de gebruikersnaam: " & UserName
End Sub

druk op alt+f11 om terug te gaan naar excel
Bij iedere keer dat je nu je tabblad activeerd wordt de usernaam weergegeven.
(nu alleen in de textbox en niet in de cel zoals de code in de post hiervoor.)

Groet,
Ferenc
 
Hoi Ferenc,

Je beide opties werken, zou het ook mogelijk zijn om bij het opstarten de gebruikersnaam automatisch in een veld te laten verschijnen?

Groet,
Maik (ex sassemer)
 
Dit is een mengel van post 6 en 7:

Rechtermuisknop op je tabblad van blad 1 en plakken maar...........

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

Private Sub Worksheet_Activate()
    Dim lpBuff As String * 25
    Dim ret As Long, UserName As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)

'**********************************************************************************
'vanaf hier kan je zelf wat code gaan aanpasen om te kijken wat het doet.

'Hier zeg je dat je de tekst "je bent ingelogd als:" in cel D4 wil hebben
    Range("D4") = "Je bent ingelogd als:
'Hier plaats je de variabel ÚserName' die we hierboven hebben ingevuld.
    Range("D5") = UserName
'geeft een pop-up met de tekst 'je bent ingelogd met de gebruikersnaam'+ variabele UserName
MsgBox "U bent inglogd met de gebruikersnaam: " & UserName

End Sub

Ps.
Waarom vertrekken uit dit fantaschtische metropolische Sassum?
 

Bijlagen

Laatst bewerkt:
Wat dacht je van:

Code:
Function gebruikersnaam()
gebruikersnaam = Environ("username")
End Function
In een cel op je werkblad zet je dan: =gebruikersnaam()
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan