• 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.

Opgelost Usernaam wijzigen

  • Onderwerp starter Onderwerp starter tkint
  • Startdatum Startdatum
Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

tkint

Gebruiker
Lid geworden
5 dec 2011
Berichten
776
Ik gebruik in VBA de instructie naam=Application.Username en ik krijg als resultaat "gebruiker". Bij instellingen in excel staat mijn voornaam en familienaam. Waar kan "gebruiker" wijzigen in mijn naam?
 
Dat is je Windows gebruikersnaam waarmee je bent ingelogd op de computer. Kun je wijzigen in het instellingenscherm van Windows.
 
Bij het scherm van instellingen zie ik linksboven mijn familienaam staan.
 
Wat staat er in een office applicatie (vb Excel) bij Bestand -> Opties -> Algemeen->
Persoonlijke instellingen voor....
Daar de naam zetten van de naam dat je wilt zien verschijnen in het vak Gebruikersnaam.
Kan je testen met
Code:
Sub naam()
MsgBox "Current user is " & Application.UserName
End Sub

Dat is je Windows gebruikersnaam waarmee je bent ingelogd op de computer. Kun je wijzigen in het instellingenscherm van Windows.
Doet hier volgens mij niets ter zake, We hebben het over VBA.
 
Dat is nu het gekke. In excel bestand- opties-algemeen staat mijn volledige naam in het vakje "gebruikersnaam". Maar er is nog een 2de instructie om de usernaam op te vragen. Environ+dollarteken("username") Zou het kunnen dat ik het resultaat krijg van ComputerName
 
Als je Environ("Username") gebruikt dan krijg je de gebruikersnaam waarmee je in Windows inlogt.
 
Resultaat bij mij:
 

Bijlagen

  • Usr.jpg
    Usr.jpg
    3,2 KB · Weergaven: 9
Win-toets+R = Run > cmd > typ:
set username
of
set

Actually, sadly it is VERY EASY to do. Try this out Kenneth - run this code:
Code:
Environ("username") = "Silly One"

and then check to see what your user name comes back as when you use Environ("username").

That is why most of us developers actually prefer using the Windows API because that CANNOT be manipulated like that.
 
Laatst bewerkt:
Wil je laten zien dat je ook het Engels beheert? Wat mankeert er aan antwoorden in het Nederlands? Al was het maar omdat TS overduidelijk het Nederlands wél beheert? En who the blob is Kenneth?
 
Ik denk "copy" "paste " om het in het engels te zeggen.
 
Zeuren is ook een vak.

Inderdaad kopieer en plakwerk, bedoelt als aanvulling. Heb je er niets aan, negeer het simpel. En Engels in vrij normaal. Vrijwel alles is in het Engels.

Application.Username Environ("Username")

Sub naam()
MsgBox "Current user is " & Application.UserName
End Sub

Dat is zeker geen Engels! Maar goed, Engels of Nederlands, het was bedoeld voor een kenner die wellicht wist wat de laatste alinea precies inhield.
 
Voor die laatste alinea, dit in een module:
Code:
#If VBA7 Then
    '64 Bit
    Declare PtrSafe Function Get_User_Name Lib "advapi32.dll" Alias "GetUserNameA" _
    (ByVal lpBuffer As String, nSize As LongPtr) As Long
#Else
    '32 Bit
    Declare Function Get_User_Name Lib "advapi32.dll" Alias "GetUserNameA" _
    (ByVal lpBuffer As String, nSize As Long) As Long
#End If

Function GetUserName() As String
    Dim lpBuff As String * 25
  
    Get_User_Name lpBuff, 25
    GetUserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
End Function

Dat levert echter ook alleen de Windows gebruikersnaam op.
 
Wil je laten zien dat je ook het Engels beheert? Wat mankeert er aan antwoorden in het Nederlands? Al was het maar omdat TS overduidelijk het Nederlands wél beheert? En who the blob is Kenneth?
Om deze inhoud te bekijken, hebben we jouw toestemming nodig om cookies van derden te gebruiken.
Voor meer gedetailleerde informatie, zie onze cookiespagina.
 
Beste forumleden,

Met deze VBA-instructie lukt het :
computernaam= Environ("computername")
gebruikersnaam_excel= Application.UserName
Voor de gebruikersnaam heb ik gelijkaardige instructies kreeg ik "Gebruiker" als resultaat. Enig idee waar die instructies dat resultaat vandaan halen?
 
Opgelost dus met eerder vermelde voorbeelden.

Application.Username haalt het hier vandaan, zie plaatje, en dat kan dus, net als Environ("username") en Environ("computername") simpel aangepast worden.
Vandaar mijn voorbeeld in #14 wegens de Engelse informatie die Senso al gaf.
Twee eenvoudiger voorbeelden zijn als volgt:
Code:
Public Function GetComputerName() As String
    Dim objNetwork As Object
    Set objNetwork = CreateObject("WScript.Network")
    GetComputerName = objNetwork.ComputerName
    Set objNetwork = Nothing
End Function

Public Function GetUserName(Optional WithDomain As Boolean = False) As String
    Dim objNetwork As Object
    Set objNetwork = CreateObject("WScript.Network")

    GetUserName = IIf(WithDomain, objNetwork.UserDomain & "\" & objNetwork.UserName, objNetwork.UserName)
    Set objNetwork = Nothing
End Function
 

Bijlagen

  • Application.Username.jpg
    Application.Username.jpg
    88,7 KB · Weergaven: 9
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan