Beschränkter Einblick in EXCEL-Datei

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 Like

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 Like

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 :wink:

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