Windows-Anmeldung per Formel in Excel-Zelle

Dieses Thema Windows-Anmeldung per Formel in Excel-Zelle im Forum "Microsoft Office Suite" wurde erstellt von klexy, 25. Aug. 2004.

Thema: Windows-Anmeldung per Formel in Excel-Zelle Was weiß ich? Mit =ZELLE(dateiname) kann man den Pfad + Dateinamen + Tabellenblattname anzeigen lassen. Das sähe...

  1. Was weiß ich?
    Mit =ZELLE(dateiname) kann man den Pfad + Dateinamen + Tabellenblattname anzeigen lassen.
    Das sähe dann so aus: C:\Programme\Gemeinsame Dateien\SAP\System\[Kartoffelsalat.xls]Tabelle1

    Was will ich?
    Gibt es eine Formel mit der man anzeigen lassen kann, mit welcher Anmeldung sich man gerade an Windows angemeldet hat? (Hintergrund: In einer Excel-Tabelle tragen viele verschiedene Leute Datensätze ein. Manche nicht so toll. Per VBA-Private Sub (oder wie das heißt) sollen sie sich automatisch im Datensatz verewigen. Und dann gips aufe Fresse für die Bösen...)

    Was hab ich?
    Windows NT 4.5, Excel97

    Kann man die Information evtl. per Web-Abfrage (iqy) oder so aus einer Datei holen, wo das hinterlegt ist? Wie könnte so eine Datei heißen?

    Jetzt bin ich aber gespannt ::)
     
  2. Hi klexy,

    mit einem Makro ist das machbar. Den könntest du beim Öffnen der Tabelle ablaufen lassen und den Usernamen dann in ein verstecktes Tabellenblatt schreiben. Von dort kannst Du ihn per Formel abholen.

    Makro für UserName:
    Code:
    Declare Function GetUserName Lib advapi32.dll _
    Alias GetUserNameA (ByVal lpBuffer As String, nSize As Long) As Long
    
    Sub ShowUserName()
      Dim UserName As String
      Const c_BufferLen As Long = 50
      Dim Buffer As String * c_BufferLen
      GetUserName Buffer, c_BufferLen
      UserName = Left(Buffer, InStr(Buffer, Chr(0)) - 1)
      MsgBox (UserName)
    End Sub
    
    Gruß Matjes ;)
     
  3. Bis zum Bahnhof konnte ich dir folgen. Dann wurde es aber zappenduster :(

    Ich versuch es mal am Montag mit dem altbewährten reinkopieren+ausprobieren.
    Der Admin wird's dann schon richten ;)
     
  4. Hallo klexy,

    ich hab dir ein Beispiel zum->reinkopieren+ausprobieren' geschrieben - damit es der Admin leichter hat. ;)

    Also:

    a) neue Mappe öffnen
    b) mit Alt+F11 VB-Editor öffnen
    c) im Projektfenster Doppelklick auf->Tabelle1'
    d) nachfolgenden Code in das Code-Fenster der Tabelle1 einfügen
    Code:
    Option Explicit
    'Die Tabelle wird auf Änderung überwacht
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
      Dim z As Range
      Const c_SpalteUserName = 9->Spalte in der der UserName hinterlegt werden soll
     ->Wurde der UserName schon einmal bestimmt ?
      If str_aktuellerUserName =  Then
        Call AktuellerUserName->UserName bestimmen
      End If
     ->Für jede geändert Zelle
      For Each z In Target
       ->Ist der Username bereits eingetragen ?
        If Cells(z.Row, c_SpalteUserName).Value <> str_aktuellerUserName Then
        ->Nein -> eintragen
          Cells(z.Row, c_SpalteUserName).Value = str_aktuellerUserName
        End If
      Next
    End Sub
    
    e) jetzt kannst du bestimmen, in welcher Spalte der UserName geführt werden soll
    (unter Const c_SpalteUserName = die Spaltennummer 9 in die gewünschte ändern)

    f) im Projektfenster rechte Maustaste auf->Arbeitsmappe' -> Einfügen -> Modul
    g) im Projektfenster Doppelklick auf->Modul1'
    h) nachfolgenden Code in das Code-Fenster->Modul1' einfügen
    Code:
    Option Explicit
    
    'Modul zur Speicherung des UserNames
    '(globale Variablen können nur in einem Modul gespeichert werden
    ' nicht in der Code-Seite eines Tabellenblattes)
    Global str_aktuellerUserName As String
    '******************************************************************
    'Funktion zum Bestimmung des Login-UserNames
    'speichert denUsrName in der globalen Variablen (siehe oben)
    Declare Function GetUserName Lib advapi32.dll _
    Alias GetUserNameA (ByVal lpBuffer As String, nSize As Long) As Long
    Sub AktuellerUserName()
      Const c_BufferLen As Long = 50
      Dim Buffer As String * c_BufferLen
      GetUserName Buffer, c_BufferLen
      str_aktuellerUserName = Left(Buffer, InStr(Buffer, Chr(0)) - 1)
    End Sub
    '******************************************************************

    i) jetzt irgenwo auf Tabelle1 Änderungen vornehmen.
    Es sollte in der jeweiligen Zeile der UserName in der vorgeehenen Spalte erscheinen

    Kopieren und Löschen von ein/mehreren Zellen ist ein Change-Ereignisse, Kopieren von ganzen Zeilen ebenfalls.
    Wenn jemand aber eine ganze Zeile markiert und->Zellen löschen' wählt, bekommst du das nicht mit.

    So, viel Spaß beim Ausprobieren

    Gruß Matjes :)
     
Die Seite wird geladen...

Windows-Anmeldung per Formel in Excel-Zelle - Ähnliche Themen

Forum Datum
Username bei Windows-Anmeldung Windows XP Forum 5. Juni 2008
Windows-Anmeldung entfernen Windows XP Forum 2. Aug. 2007
[SUCHE]: Programm zur Windows-Anmeldung per Fingerabdruck Software: Empfehlungen, Gesuche & Problemlösungen 31. März 2007
windows-Anmeldung Windows 95-2000 19. Apr. 2004
Interneteinwahl bei Windows-Anmeldung Sonstiges rund ums Internet 12. Nov. 2003