Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
440to444
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
440to444
440to444
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
makro für benutzer einschränken
11.06.2004 11:20:18
ralf
will eine tabelle für mehrere benutzer über ein makro programmieren.
es darf aber nur der mit einer bestimmten kenneung auf das makro zugreifen(bzw. auf die userfrom).
wie muß ich das programmieren?
AW: makro für benutzer einschränken
Veit
schalte eine Userform mit Pswd-Eingabe davor
nur bei korrektem Pswd wird der Rest abgearbeitet
AW: makro für benutzer einschränken
11.06.2004 11:34:46
ralf
gehts das fleicht auch wenn man einfach die kennung von windows überprüft und er so die rechte(bzw. den zugriff) auf die userform bekommt, wenn die kennung nicht richtig ist soll man nur die tabelle sehen?
AW: makro für benutzer einschränken
11.06.2004 11:57:17
ralf
wie kann ich es machen das das modul jetzt gleich zum start überprüft wird.
ich hab es so probiert:

Private Sub Workbook_Open()
Load Modul1
End Sub

das geht aber net
erst mal danke für die andere lösung das hat geklappt,
Anzeige
AW: makro für benutzer einschränken
Veit
ich weiß ja nicht was Modul1 bei Dir ist. Aber versuche es mal mit der entsprechenden Sub in Modul1.
z.B.

Private Sub Workbook_Open()
call Modul1.passwortabfrage
End Sub

AW: makro für benutzer einschränken
ralf
also ich habe den Quellcode von dem link benutzt und den in ein modul kopiert(name des Moduls=modul1):
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Private Sub Form_Load()
'KPD-Team 1998
'URL: <a href="http://www.allapi.net/">http://www.allapi.net/</a>
'E-Mail: KPDTeam@Allapi.net
Dim strTemp As String, strUserName As String
'Create a buffer
strTemp = String(100, Chr$(0))
'Create a buffer
strUserName = String(100, Chr$(0))
'Get the username
GetUserName strUserName, 100
'strip the rest of the buffer
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
If Application.UserName = "HRB99951" Then
'für benutzer kennung, wenn richtiger benutzer dann...
Load frmeintragen
frmeintragen.Show
End If
'Show the temppath and the username
'MsgBox "Hello " & strUserName
'MsgBox Application.UserName
End Sub

Hab jetzt bei arbeitsmappe deins eingegeben, aber wo für steht das passwortabfrage?
Anzeige
AW: makro für benutzer einschränken
11.06.2004 12:28:40
ralf
hab das von dem link in ein modul kopiert(name des moduls=modul1):
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Private Sub Form_Load()
'KPD-Team 1998
'URL: <a href="http://www.allapi.net/">http://www.allapi.net/</a>
'E-Mail: KPDTeam@Allapi.net
Dim strTemp As String, strUserName As String
'Create a buffer
strTemp = String(100, Chr$(0))
'Create a buffer
strUserName = String(100, Chr$(0))
'Get the username
GetUserName strUserName, 100
'strip the rest of the buffer
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
If Application.UserName = "HRB99951" Then
'für benutzer kennung, wenn richtiger benutzer dann...
Load frmeintragen
frmeintragen.Show
End If
'Show the temppath and the username
'MsgBox "Hello " & strUserName
'MsgBox Application.UserName
End Sub

hab nun deins in arbeitsmappe kopiert, aber was bedeutet das passwortabfrage am ende :

Private Sub Workbook_Open()
call Modul1.?passwortabfrage?
End Sub

Anzeige
AW: makro für benutzer einschränken
Uduuh
Hallo,
da machst du was falsch. Ein Passwort brauchst du gar nicht abzufragen. Du kannst die Rechte für das Makro anhand des Usernamens (Netzwerkkennung) einschränken.
Folgendes 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

Damit wird der Anmeldename gelesen.
An den Anfang deiner

Sub setzt du jetzt einfach:
If UserName()<>"Ralf Mustermann" Then
Msgbox "Das darfst du nicht"
Exit Sub
End If
Gruß aus'm Pott
Udo
<a href="http://www.excelerator.de">http://www.excelerator.de</a>
P.S. irgendwie komm ich mit der Darstellung nicht klar. das Declare muss vor Function

Anzeige
Danke klappt
ralf
hatt geklappt, danke, forum ist echt gut schnell antworten und gute antworten
AW: makro für benutzer einschränken
K.Rola
Hallo,
Environ ist schon länger Bestandteil von VBA, du brauchst also keine
API- Funktion.

Sub teste()
MsgBox Environ("username")
End Sub

Gruß K.Rola
AW: makro für benutzer einschränken
Reinhard
Hallo K.Rola,
ich müsste schon die api benutzen, denn bei Win98 ist der Username nicht im environment enthalten. ich könnte nur die mit dem Dosbefehl Set angezeigten/eingetragenen abfragen, also MsgBox Environ("prompt") usw.
PROMPT=$p$g
winbootdir=C:\WINDOWS
COMSPEC=C:\WINDOWS\COMMAND.COM
TMP=C:\TEMP
TEMP=C:\TEMP
DIRCMD=/P/OGNE
PATH=C:\WINDOWS;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PROGRA~1\GEMEIN~1\AUTODE~1
windir=C:\WINDOWS
SNDSCAPE=C:\WINDOWS
BLASTER=A220 I7 D1 T2
Gruß
Reinhard
Anzeige
AW: makro für benutzer einschränken
K.Rola
Hallo,
das wußte ich nicht, Win98 ist aber auch verdammt lang her.
Gruß K.Rola
verdammt lang her
Reinhard
ist ein schönes Lied K :-)
Naja, ich hink da hinterher *weiss*, aber da ich an sich den Computer überhaupt nicht brauche warte ich immer ab bis ich die abgelegten Versionen bekomme. Okay hab so gebrannte Versionen von allen höheren Windowsversionen unter der Hand bekommen, aber derzeit und mittelfristig keinen Handlungsbedarf. Für was auch, für das was ich mit dem Computer privat = überhaupt mache langt mir word 2.0 für die paar Briefe im Jahr.
Okay, von Excel hätte ich gerne alle Versionen, aber nicht um da zu exceln, sondern um mich da rein zudenken bei Fragern die mit verschiedenen Versionen kommen.
Von daher hab ich mein legales Office4.0 o.ä gerne gegen Office2000 ausgetauscht.
Aber wenn mir hier jmd noch ne CD mit excel97 zukommen lassen könnte würde mich das freuen.
Wie auch immer, ich wünsch dir ein gutes WE
Gruß
Reinhard
Anzeige
AW: makro für benutzer einschränken
Veit
Nimm mal das Private vor dem

Private Sub Form_Load() weg
Dann gib in Deine Open-prozedur Modul1. ein dann sollte schon das Form_Load auftauchen.

Private Sub Workbook_Open()
call Modul1.Form_Load
End Sub

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige