Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
120to124
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
120to124
120to124
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Application.Creator

Application.Creator
15.05.2002 12:09:51
Werner Theis
Hallo,
über die Abfrage des Benutzernamens (Application.UserName) prüfe ich ab, ob der aktuelle User berechtigt ist, die Datei zu bearbeiten. Das geht natürlich schief, wenn der User den PC wechselt und/ oder zwischendurch selbst seinen Benutzernamen ändert (über Extras-Optionen-Allgemein-Benutzername).

Nun gibt es auch die 'Creator'- Eigenschaft:

Sub Creator()
MsgBox Application.Creator
End Sub

Die VB-Hilfe hierzu sagt mir nicht viel - gibt bei mir auch ein anderes Ergebnis

VB-Hilfe:
Gibt die Anwendung, in der dieses Objekt erstellt wurde, als 32-Bit-Ganzzahl zurück. Wurde das Objekt in Microsoft Excel erstellt, gibt die Eigenschaft die Zeichenfolge XCEL zurück, die der Hexadezimalzahl 5843454C entspricht. Long Nur-Lese-Zugriff.

Meine Frage:
Ist die 'Creator'-Abfrage besser geeignet, die Berechtigung des aktuellen Users stabil und dauerhaft abzufragen?

Werner

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Application.Creator
15.05.2002 12:33:27
Bernthe
Hallo Werner,

vielleicht hilft es Dir schon weiter, wenn Du den Windows-Login-Namen abfragst mit:

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

Private Function NetUser()
Dim s As String
Dim cnt As Long
Dim ret As Long
cnt = 199
s = String$(200, 0)
ret = GetUserName(s, cnt)
If ret <> 0 Then
NetUser = Trim(Left$(s, cnt))
pos = InStr(NetUser, Chr$(0))
If pos > 0 Then
NetUser = Left$(NetUser, pos - 1)
Else
NetUser = NetUser
End If
Else
NetUser = ""
End If
End Function

Damit wird beim Öffnen der Arbeitsmappe der Excel-Username mit dem NetUsername gleichgesetzt.

Private Sub Auto_open()
u = NetUser
If u <> "" Then Application.UserName = u
End Sub

Viele Grüße
Bernthe

Anzeige
Re: Application.Creator
15.05.2002 13:22:23
Werner Theis
:-)) das funktioniert ja genial! Danke!
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige