Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
264to268
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
264to268
264to268
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Benutzernamenaufzeichnen

Benutzernamenaufzeichnen
04.06.2003 08:53:41
Julia
Guten Morgen Experten,
ich möchte gerne die letzten drei Benutzer eines Dokumentes anzeigen und in einer MSGBOX speichern. Diese Daten sollen auch nach dem schliessen des Dokumentes im Hintergrund
vorhanden sein.
Vielen Dank


11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Benutzernamenaufzeichnen
04.06.2003 09:02:07
michel

hallo julia,

1. in der msgbox kannst Du nicht speichern, höchstens anzeigen
2. was heisst für dich nach dem schließen des dokuments (tabelle) im hintergrund vorhanden

meine lösung für sowas ist ein "verstecktes" blatt, in das die Benutzernamen einer nach dem anderen, ggfalls mit Zugriffszeit eingetragen werden.....wäre das was für dich?

michel

Re: Benutzernamenaufzeichnen
04.06.2003 09:06:28
Julia

Klingt gut...zeig dóch mal...

Re: Benutzernamenaufzeichnen
04.06.2003 09:17:26
Carsten

Hallo Julia,

ich hatte auch ma das gleiche Problem und habe es folgendermaßen gelöst:

Option Explicit
'Computername
Private Declare Function GetComputerName Lib "kernel32" _
Alias "GetComputerNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
'Anwendername
Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Public Sub Historie()
Dim strString As String 'Computername
Dim strID As String 'Anwendername
Dim lngSize As Long
Dim lngAns As Long
Dim rngSpDat As String 'Datum
Dim rngSpZeit As String 'Zeit
Dim rngPfad As String 'Pfad
Dim i As Integer
On Error Resume Next

'Ermittlung Computername
rngSpDat = Date
rngSpZeit = Time
rngPfad = Application.ActiveWorkbook.FullName

strString = String(255, Chr$(0))
GetComputerName strString, 255
strString = Left$(strString, InStr(1, strString, Chr$(0)))

'Ermittlung Anwendername
lngSize = 8
strID = " "
lngAns = GetUserName(strID, lngSize)

EINTRAG:
i = ActiveWorkbook.Sheets("Historie").Cells(Rows.Count, 3).End(xlUp).Row
If i = 1 Then
With ActiveWorkbook.Sheets("Historie")
.Cells(i, 1).Value = strString
.Cells(i, 2).Value = strID
.Cells(i, 3).Value = rngSpDat
.Cells(i, 4).Value = rngSpZeit
.Cells(i, 5).Value = rngPfad
End With
End If
If i = 11 Then
ActiveWorkbook.Sheets("Historie").Rows(2).Delete
GoTo EINTRAG
Else
With ActiveWorkbook.Sheets("Historie")
.Cells(i + 1, 1).Value = strString
.Cells(i + 1, 2).Value = strID
.Cells(i + 1, 3).Value = rngSpDat
.Cells(i + 1, 4).Value = rngSpZeit
.Cells(i + 1, 5).Value = rngPfad
End With
End If
On Error GoTo 0
End Sub

In die erste Zeile wird dauerhaft der allererste User eingetragen, danach werden fortlaufende die letzten 10 User gespeichert, wobei immer einer nachrückt, da Zeile 2 gelöscht wird.

Gruß,

Carsten

Anzeige
Re: Benutzernamenaufzeichnen
04.06.2003 09:17:46
Willie

füge diesen Code bei Workbook open ein
dann wird autom. in die Tabelle1 Username Datum und Zeit eingtragen.

Sub username()
Dim X As Integer
Y = Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Row
Sheets("Tabelle1").Visible = True
Sheets("Tabelle1").Cells(Y, 1).Value = Application.username
Sheets("Tabelle1").Cells(Y, 2).Value = Date
Sheets("Tabelle1").Cells(Y, 3).Value = Time
Sheets("Tabelle1").Visible = False
End Sub

Gruß

Willie

Re: Benutzernamenaufzeichnen
04.06.2003 09:52:30
Julia

Für diese Zeile:
Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
heisst es in etwa "...Declare Anweisungen sind als Public-Elemente von Objektmodulen nicht zugelassen..."
Was muss ich denn noch beachten.
Danke?

Anzeige
Re: Benutzernamenaufzeichnen
04.06.2003 09:54:39
Julia

Funtkioniert, aber es wird der Username immer nur in der ersten
Zelle überschrieben, doer liegt es etwa daran, dass es der gleiche ist. Aber das kann ich auch nicht aus dem Code herauslesen.
Danke

Re: Benutzernamenaufzeichnen
04.06.2003 10:03:03
Carsten

Hallo Julia,

kann Dir da auch nicht genau weiterhelfen.

Bei mir steht der Code in einem ganz normalen Modul und wird vor jedem Speichern aufgerufen. Der Username ist der Name, mit dem der User sich ins Netzwerk einloggt.

Ne andere Möglichkeit wäre noch Application.Username ist aber nicht so eindeutig, da es sich um den Namen unter Extras/Optionen handelt.

Gruß,

Carsten

Anzeige
Re: Benutzernamenaufzeichnen
04.06.2003 10:09:06
Julia

Ich habe den Fehler gefunden, war nur ne Kleinigkeit, aber ich habe auch erst mal nicht wirklich mitgedacht. Du hast bei Dieser Codezeile einfach das Private vergessen....
Bzw. beim kopieren nicht mitgenommen... :-)
Vielen Dank

Re: Benutzernamenaufzeichnen
04.06.2003 10:15:13
Carsten

Hallo Julia,

ist ja lustig, bei mir im Code hatte ich es auch vergessen, hat aber immer einwandfrei funktioniert.

Gruß,

Carsten

Re: Benutzernamenaufzeichnen
04.06.2003 10:20:27
Julia

Da sag' ich nur, das sind die unergründlichne geheimnisse vom Mr.
Gill Bates oder so.....

Re: Benutzernamenaufzeichnen
04.06.2003 12:43:58
Willie

Ja ich hatte in der Eile "+1" hinter Row vergessen!

Sub username()
Dim X As Integer
Y = Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Row + 1
Sheets("Tabelle1").Visible = True
Sheets("Tabelle1").Cells(Y, 1).Value = Application.username
Sheets("Tabelle1").Cells(Y, 2).Value = Date
Sheets("Tabelle1").Cells(Y, 3).Value = Time
Sheets("Tabelle1").Visible = False
End Sub

Gruß

Willie

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige