ausführen von Makro nur für bestimmte User

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm MsgBox
Bild

Betrifft: ausführen von Makro nur für bestimmte User
von: Matze
Geschrieben am: 11.04.2005 09:54:32
Hallo ForumUser,
ist es möglich das ein Makro nur bestimmte User ausführen können?
Ich hatte da an eine Möglichkeit gedacht über den Usernamen zu gehen wie in
etwa: If not Username Then dann Exit Sub
Hat jemand eine Idee?????
Ich möchte hier nur 4 Usernamen das ausführen erlauben, einrichten, oder so...
User1: Thomas.Maier
User2: Sandra.Weiler
User3: Tanja.Franzke
User4: Rene.Schweller

Gruß Matze

Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Tobias Marx
Geschrieben am: 11.04.2005 10:02:10
Servus!
Guggst du hier: https://www.herber.de/mailing/038298h.htm
Und fuer die Abfrage wuerd ichs dann so machen:
If Buffer <> "UserName" Then Unload.Me
oder so aehnlich.
Gruss

Tobias
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Matze
Geschrieben am: 11.04.2005 10:38:06
Hallo Tobias,
die Abfrage nach dem Username hab ich schon, ich komme nur nicht weiter wie der Code
aussehen könnte um Usern die nicht angegeben sind das ausführen des Makros zu unterbinden.
Gruß Matze
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Tobias Marx
Geschrieben am: 11.04.2005 10:40:04
Servus!
Wieso denn komplett unterbinden? Ich wuerde den Code, den ich dir geschrieben habe, einfach dazu benuetzen. Wenn der nicht berechtigte User dann versucht, das Makro zu starten, beendet es sich automatisch.
Gruss

Tobias
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Matze
Geschrieben am: 11.04.2005 10:45:56
ich bekomme da immer "Agument nicht optional"!!!!
Wo kann ich den bestimmen bei welchem Username nicht abgebrochen wird?
Ich habe von VBA nicht so den Durchblick...
Gruß
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Tobias Marx
Geschrieben am: 11.04.2005 10:51:06
Servus!
Nunja, ohne VBA-Durchblick ist das schon ne gewagte Sache fuer dich...
Aber versuchen wirs mal:

If Buffer <> "marx" Then
 Unload Me
End If
'So machste das halt fuer jeden User!
If Buffer <> "matze" Then
 Unload Me
End If

Er ueberprueft also, wenn Username nicht marx und nicht matze, dann beenden.
Gruss

Tobias
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Matze
Geschrieben am: 11.04.2005 11:07:13
Bekomme jetzt die Fehlermeldung "Fehler beim Kompilieren: Unzulässige Verwendung des Schlüsselworts Me"
Wenn ich jedoch daraus Unload.Me daraus mache, bekomme ich "Agument nicht optional"
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Tobias Marx
Geschrieben am: 11.04.2005 11:10:52
Servus!
Versuchs mal statt Unload Me mit Me.Hide (soferns ne UserForm ist). Ich denke mal, dass das Unload Me nicht funktioniert, da es in einer if-Schleife steckt. Wie man das allerdings umgeht, weiss ich auch ned... dazu hab ich auch nicht genuegend VBA-Kenntnisse.
Gruss

Tobias
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Matze
Geschrieben am: 11.04.2005 11:16:03
Ich arbeite nich mit einer Userform! Hab nur ein ganz normales Modul, Beispiel:

Sub Test()
If Buffer <> "Duffy.Duck" Then
 Unload Me
End If
'So machste das halt fuer jeden User!
If Buffer <> "matze" Then
 Unload Me
End If
MsgBox "berechtigt"
End Sub

Das ist nur zum Testen ob´s geht...
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Heinz
Geschrieben am: 11.04.2005 11:47:15
Hallo,
versuch doch mal zu umgehen in dem DU ne Sprungmarke benutzt.
Also etwa so:

Sub test()
If Buffer <> "marx" Then GoTo Ende
End If
'So machste das halt fuer jeden User!
If Buffer <> "matze" Then GoTo Ende
End If
:Ende    
Unload Me
End Sub

Gruß
Heinz
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Matze
Geschrieben am: 11.04.2005 12:27:04
Irgendwie geht das nicht...
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Dim Username As String

Private Sub Workbook_Open()
    Dim Buffer As String * 100, BuffLen As Long
    BuffLen = 100
    GetUserName Buffer, BuffLen
    Username = Left(Buffer, BuffLen)
    'MsgBox Left(Buffer, BuffLen - 1)
    Username = Left(Username, InStr(Username, vbNullChar) - 1)
    If Trim$(Username) = "" Then Username = Application.Username
End Sub

Sub test()
If Buffer <> "Matthias.Weichert" Then GoTo Ende
'So machste das halt fuer jeden User!
If Buffer <> "Gast" Then GoTo Ende
MsgBox "Ja"
Ende:
MsgBox "Ne"
End Sub
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: u_
Geschrieben am: 11.04.2005 13:52:10
Hallo,
du bist auf dem Holzweg!
in ein Modul:
Declare

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

Function UserName()
    Dim Buffer As String * 100
    Dim BuffLen As Long
    BuffLen = 100
    GetUserName Buffer, BuffLen
    UserName = Left(Buffer, BuffLen)
    UserName = Left(UserName, InStr(UserName, Chr(0)) - 1)
End Function

Beispiel für Makro:

Sub Test()
Select Case Username()
Case "Thomas.Maier","Sandra.Weiler","Tanja.Franzke","Rene.Schweller"
Msgbox "Guten Tag " &Username()
Case Else
Msgbox Username() &" hat keine Berechtigung."
End Select
End Sub

Gruß
Declare muss vor Function!
Bild

Betrifft: AW: ausführen von Makro nur für bestimmte User
von: Matze
Geschrieben am: 11.04.2005 15:45:41
Hallo u_
danke für deine Hilfe, klappt perfekt...
Gruß Matze
 Bild

Beiträge aus den Excel-Beispielen zum Thema "ausführen von Makro nur für bestimmte User"