Hallo Experten,
ich habe eine EXCEL-Datei mit drei Tabellen.
Benutzer 1 soll lediglich Einblick in und Zugriff auf Tabelle 1 haben, Benutzer 2 ebenso nur auf Tabelle 2.
Ich selber habe vollen Einblick und Zugriff auf die gesamte Datei.
Geht das ??
Wenn es nur den Benutzer 1 gäbe, könnte ich die Tabellenblätter 2 und 3 ausblenden und die Arbeitsmappe schützen, aber bei zwei Benutzern?
Gruß Fritz
Hallo Fritz,
da würde ich so vorgehen:
Tabellenblatt mit Benutzernamen und Passwort anlegen
| A | B
1 | Admin | Aminpasswort
2 | User1 | Userpasswort1
3 | User2 | Userpasswort2
Beim Aufruf der Datei sind alle Tabellenblätter ausgeblendet (bis auf eine „Startseite“), und ein Login-Formular wird angezeigt, in dem man Benutzername und Passwort eingeben kann.
Je nach Rechte werden nach erfolgreichem Login die entsprechenden Tabellenblätter eingeblendet (für Admin alle Blätter, für User1 nur Tabellenblatt1 usw.)
Fertigen VBA-Code abschließend durch Passwort schützen
Eigenes Zertifikat erstellen und auf dem Rechner installieren
Bei Bedarf kann ich gerne heute Abend eine Beispieldatei zusammenbasteln, falls gewünscht einfach kurz melden.
Grüße,
Kerstin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Kerstin,
Bei Bedarf kann ich gerne heute Abend eine Beispieldatei
zusammenbasteln, falls gewünscht einfach kurz melden.
Das wäre phantastisch
Im Voraus herzlichen Dank
Gruß Fritz
NS: EXCEL 2000
Hallo Fritz,
hatte gestern Abend keine Zeit mehr, deswegen kommt die Datei erst heute.
Hier der Download-Link:
http://rapidshare.com/files/73106761/Login.xls.html
Benutzername: Admin
Passwort: Adminpw
Dir wird das Tabellenblatt Benutzerverwaltung angezeigt sowie alle anderen. Auf diesem Tabellenblatt kannst Du festlegen, welcher Benutzer auf welche Tabellenblätter zugreifen darf.
Zum anlegen eines neuen Benutzers einfach in die nächste freie Spalte eintragen, aber keine Spalte zwischendurch freilassen!
Soll ein Benutzer weitere Tabellenblätter angezeigt bekommen, diese einfach in die Liste mit eintragen. Auch hier wieder keine Leerzeile!
Zum Ändern der Benutzernamen/Passwörter einfach die jeweilige Zelle überschreiben.
Viel Spaß mit der Datei,
Kerstin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
1 „Gefällt mir“
Hallo Kerstin,
ich bin begeistert und bedanke mich vielmals.
Kannst Du vielleicht noch in groben Züge erklären, wie das ganze funktioniert?
Im VB-Editor sind die Projekte nicht einsehbar (passwortgeschützt).
Liebe Grüße
Fritz
Hallo Fritz,
ich bin begeistert und bedanke mich vielmals.
aber bitte schön. So konnte ich wenigstens meine VBA-Kenntnisse mal wieder etwas auffrischen.
Mir ist gestern Abend noch aufgefallen, daß das Tabellenblatt „Start“ zwar für den Admin sichtbar sein sollte, es aber trotzdem nicht ist, da es per VBA ausgeblendet wird (dies Bitte auch so lassen, ist ja eh nur graue „Hintergrundfarbe“, sonst wird sie bei allen anderen Benutzern auch eingeblendet). Den Tabellenblattname „Start“ dann einfach aus der Liste austragen.
Kannst Du vielleicht noch in groben Züge erklären, wie das
ganze funktioniert?
Im VB-Editor sind die Projekte nicht einsehbar
(passwortgeschützt).
Klar, ist ja kein Geheimnis. Das Passwort lautet „VBAPasswort“, dann kannst Du alles ansehen.
Grüße,
Kerstin
1 „Gefällt mir“
Hallo Kerstin,
noch ein Sternchen, Danke!
Leider ist das Passwort „VBAPasswort“ nicht richtig !?
Gruß Fritz
Leider ist das Passwort „VBAPasswort“ nicht richtig !?
Hi Fritz,
http://www.hostarea.de/server-12/Dezember-47832704ed…
probier mal diese Datei, ich habe da nur die Msgbox in Workbook_Open eingefügt, kannst ja wieder löschen.
Gruß
Reinhard
Hallo Reinhard,
vielen Dank.
Die Datei von Kerstin funktioniert prima, ich wollte eigentlich nur noch wissen, wie ich das VBAProject anschauen kann, da ich nur die Meldung „Project kann nicht angezeigt werden“ bekam.
Gruß Fritz
Hallo Fritz,
doch, das Passwort ist exakt richtig.
Kann Dir aber hier nochmal den Code posten:
Private Sub Workbook\_BeforeClose(Cancel As Boolean)
'Beim Schließen Startseite wieder einblenden
Worksheets("Start").Visible = xlSheetVisible
Worksheets("Start").Activate
'Alle Anderen Arbeitsblätter ausblenden
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
If wks.Name ActiveSheet.Name Then
wks.Visible = xlVeryHidden
End If
Next wks
'Arbeitsmappe speichern
ActiveWorkbook.Save
End Sub
Private Sub Workbook\_Open()
'Loginformular beim Start anzeigen
frm\_login.Show
End Sub
Private Sub cmd\_close\_Click()
ActiveWorkbook.Close
End Sub
Private Sub cmd\_login\_Click()
Dim pruefung As Boolean
Dim einblenden As Boolean
pruefung = True
einblenden = False
'Prüfung, ob ein Benutzername und ein Passwort eingegeben wurde
If txtBenutzername = "" And txtPasswort = "" Then
MsgBox ("Bitte Namen und Passwort eintragen!")
txtBenutzername.SetFocus
Exit Sub
End If
'Prüfung, ob ein Benutzername eingegeben wurde
If txtBenutzername = "" Then
MsgBox ("Bitte Benutzername eingeben!")
txtPasswort = ""
txtBenutzername.SetFocus
Exit Sub
End If
'Prüfung, ob Passwort eingegeben wurde
If txtPasswort = "" Then
MsgBox ("Bitte Passwort eingeben!")
txtPasswort.SetFocus
Exit Sub
End If
'Prüfen, ob Benutzername und Passwort übereinstimmen
s = 2
Do While Worksheets("Benutzerverwaltung").Cells(1, s) ""
If txtBenutzername = Worksheets("Benutzerverwaltung").Cells(1, s) And \_
txtPasswort Worksheets("Benutzerverwaltung").Cells(2, s) Then
MsgBox ("Passwort ungültig!")
txtPasswort = ""
txtPasswort.SetFocus
pruefung = False
ElseIf txtBenutzername = Worksheets("Benutzerverwaltung").Cells(1, s) And \_
txtPasswort = Worksheets("Benutzerverwaltung").Cells(2, s) Then
pruefung = False
einblenden = True
Unload Me
End If
s = s + 1
Loop
'Falls Benutzername nicht vorhanden, Message ausgeben
If pruefung = True Then
MsgBox ("kein gültiger Benutzername!")
txtBenutzername = ""
txtPasswort = ""
txtBenutzername.SetFocus
Exit Sub
End If
If einblenden = True Then
'Tabellenblätter einblenden
s = 2
z = 3
Do Until Worksheets("Benutzerverwaltung").Cells(1, s) = txtBenutzername
s = s + 1
Loop
Dim Tabellenblatt As String
Tabellenblatt = Worksheets("Benutzerverwaltung").Cells(z, s)
Do Until Worksheets("Benutzerverwaltung").Cells(z, s) = ""
Sheets(Tabellenblatt).Visible = xlSheetVisible
z = z + 1
Tabellenblatt = Worksheets("Benutzerverwaltung").Cells(z, s)
Loop
'Startseite ausblenden
Worksheets("Start").Visible = xlSheetVeryHidden
End If
End Sub
Private Sub UserForm\_Initialize()
Me.txtBenutzername.SetFocus
End Sub
Private Sub UserForm\_QueryClose(Cancel As Integer, CloseMode As Integer)
'Das Schließen des Formulars mit dem Schließen-Feld verhindern
If CloseMode 1 Then Cancel = 1
End Sub
Grüße,
Kerstin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Nachfrage an Kerstin
Hallo Kerstin,
ich muß mich jetzt als VBA-Laie outen:
Wenn ich den VBA-Editor öffne und das VBAProject(Login1.xls) anklicke, bekomme ich in einer Msg-Box „Projekt gesperrt“ die Meldung „Projekt kann nicht angezeigt werden“.
Wo müßte ich denn ein Passwort eingeben?
Mit der Bitte um Nachsicht und lieben Grüßen
Fritz
Hallo Fritz,
ich muß mich jetzt als VBA-Laie outen:
ist doch kein Problem 
Wenn ich den VBA-Editor öffne und das VBAProject(Login1.xls)
anklicke, bekomme ich in einer Msg-Box „Projekt gesperrt“ die
Meldung „Projekt kann nicht angezeigt werden“.
Wo müßte ich denn ein Passwort eingeben?
Vor VBAProject(Login1.xls) müßte ein „+“ (Kreuz zum aufklappen) stehen. Dort einfach draufklicken und dann öffnet sich ein Fenster, in dem das Passwort eingegeben werden kann.
Ansonsten hab ich den Code aber auch schon gepostet.
Grüße,
Kerstin
Hi Fritz,
Wenn ich den VBA-Editor öffne und das VBAProject(Login1.xls)
anklicke, bekomme ich in einer Msg-Box „Projekt gesperrt“ die
Meldung „Projekt kann nicht angezeigt werden“.
Wo müßte ich denn ein Passwort eingeben?
Klicke es mit der rechten Maustaste an, dann erscheint ein Fensterchen, dort wählst du mit linker Maustaste „Eigenschaften…“ o.ä, dann „Schutz“
Und btw, die Datei die ich dir schickte, ist diejenige von Kerstin, Paßwort ist entfernt.
Gruß
Reinhard
Des Rätsels Lösung
Hallo Kerstin und Reinhard,
Offic97 !
In Office2000 funktioniert alles.
Nochmals Dank und Gruß
Fritz