Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
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
Inhaltsverzeichnis

jedes Datenblatt einzeln mit Kennwort versehen

jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 13:20:21
A.J.
Hallo,
gibt es eine Möglichkeit, jedes einzelne Datenblatt mit einem anderen Kennwort zu sperren, sodass verschiedene User dieser Tabelle nur das ihm zuteilte Datenblatt öffnen können?

Vielen Dank für Tipps.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Einfach machen ;-) oT
08.02.2024 13:24:02
{Boris}
VG, Boris
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 13:25:23
onur
Klar, geht !
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 13:35:50
MCO
Hallo A.J.,

Hiermit sperrst du alle blätter mit vorgegebenen Passwörtern.
Schau es dir mal an.
Sub blättersperre()

Dim pw As Variant
Dim sh As Worksheet

pw = Array("A", "B", "C", "C", "D", "B", "A", "B", "A", "B", "A", "B")

If UBound(pw) ActiveWorkbook.Sheets.Count Then MsgBox "zu wenig Passwörter vorgegeben", vbCritical: Exit Sub

For Each sh In ActiveWorkbook.Sheets
Sheets(sh.Index).Protect pw(sh.Index)
Debug.Print "Tab """ & Sheets(sh.Index).Name & """ geschützt mit pw """ & pw(sh.Index); """"
Next sh

MsgBox "PW nachzulesen im Direktbereich, STRG+G im VBA-Editor"
End Sub


Gruß, MCO


Anzeige
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 14:44:53
onur
Eleganter wäre, wenn jeder User entsprechend seinem Usernamen nur "sein" Blatt sehen bzw bearbeiten könnte.
Dazu bräuchte man eine Liste mit Usernamen und der entsprechenden Blätter auf einem Blatt und ein Bisschen Code, aber keine Passwörter mehr.
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 15:31:36
schauan
Hallöchen,

ein Blatt sperren ("Blattschutz") - hilft nicht gegen das einsehen.

Ansatz:

Grundzustand:
alle zu schützenden Blätter sind ausgeblendet
eine Liste der User mit den Berechtigungen befindet sich in der Datei (Parameter-Blatt oder fix "codiert")

Makros:
Workbook_Open
Makroaufruf --> Prüfen des Anwenders, Sichtbarmachung und ggf. Aktivierung des Anwenderblattes

Workbook_BeforeSave
alle zu schützenden Blätter werden ausgeblendet

Workbook_AfterSave
Makroaufruf --> Prüfen des Anwenders, Sichtbarmachung und ggf. Aktivierung des Anwenderblattes

Anzeige
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 16:15:59
daniel
Hi
so ohne weiteres: nein
der Blattschutz in Excel kann zwar für jedes Blatt individuell angelegt werden, schützt aber nur vorm bearbeiten und verändern, aber nicht vorm anschauen.
du müsstest hier jedem Mitarbeiter eine eigene Datei anlegen, so dass er nur diese Datei öffnen kann.
dass er das Passwort dann nicht eigenmächtig ändert, könnt ihr aber nicht verhindern, sondern müsst ihr durch entsprechende Anweisungen festlegen.
Gruß Daniel
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 15:33:03
onur
Wieso wiederholst du jetzt meinen Vorschlag mit eigenen Worten ?
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 16:22:13
daniel
ich würde das nicht "wiederholen" nennen.
er beschreibt ja schon etwas ausführlicher, das du mit "ein bisschen Code" gemeint hast.
Anzeige
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 16:09:39
MCO
Hallo Schauan!

Du hast recht, hab ich falsch verstanden. Am Thema vorbeiprogrammiert.
Aber dann erwarte ich von weiteren Teilnehmern im Thema, dass sie was Besseres abliefern und nicht nur schlau daherreden.
Von Onur kenn ich, dass er weiß was er tut, aber leider ist er oft sparsam im Text und bissig in den Ausführungen.

Dein Konzept kann ich nachvollziehen, aber der Fragesteller wohl kaum.

Also:
Weniger sülzen, mehr coden
!

Workbook_Open
Makroaufruf --> Prüfen des Anwenders, Sichtbarmachung und ggf. Aktivierung des Anwenderblattes


Abfrage des Zugangsschlüssels
Sub blättersperre_eingabe()


Dim sh As Long
Dim nam As String

For sh = 2 To ActiveWorkbook.Sheets.Count
Sheets(sh).Visible = 2 'versteckt, nicht einzublenden
Next sh

nam = Application.InputBox("Wer bist du?", "Namen eingeben")

Select Case nam

Case "Adam": Sheets(2).Visible = -1
Case "Berta": Sheets(3).Visible = -1
Case "Cäesar": Sheets(4).Visible = -1
Case Else: MsgBox "kein Zugriff"

End Select
End Sub


ohne Abfrage aufgrund des benutzen Windowsaccounts (manipulierbar in excel-optionen/Benutzername)

Sub blättersperre()


Dim sh As Long
Dim nam As String

For sh = 2 To ActiveWorkbook.Sheets.Count
Sheets(sh).Visible = 2 'versteckt, nicht einzublenden
Next sh

nam = Application.UserName
nam = "Berta" 'Beispiel

Select Case nam

Case "Adam": Sheets(2).Visible = -1
Case "Berta": Sheets(3).Visible = -1
Case "Cäesar": Sheets(4).Visible = -1
Case Else: MsgBox "kein Zugriff"

End Select
End Sub


Dazu gehört aber auch das Verhindern von VBA-Zugriff etc, alles andere ist für Fachleute schnell überwunden.

Gruß, MCO





Anzeige
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 17:16:47
schauan
Hallo MCO,

1)
ich schaue auch ganz gerne, ob dem TE mein Konzept gefällt oder frage, ob ich sein Anliegen richtig verstanden habe, und programmiere erst nach positiver Antwort.
2)
Zuweilen fragen die Leute nicht nur in einem Forum.

Da hat man schnell mal für die Tonne gearbeitet, und das mag ich nun wieder nicht :-(

@All

Nun hab ich mal eine Beispieldatei erstellt. Den username hole ich aus den Anmeldedaten und die Zuordnung geschieht im Beispiel über ein Userblatt gleichen Namens. Ansonsten, wie gesagt, könnte man das über eine Liste in der Datei machen.
Zusätzlich wird die Mappe geschützt, damit man die Blätter nicht über den VBA-Editor einblenden kann.
Selbiger ist hier nicht geschützt, müsste man aber machen, da das Kennwort im Code steht.
Natürlich alles mit der Einschränkung, dass der Schutz ggf. nur arbeitsrechtlich relevant ist und keine sonstige Sicherheit bietet.

Im Code steht auch noch ein Hinweis zur Variable für den Username - sollte man funktionssicherheitshalber auch anders lösen :-)

https://www.herber.de/bbs/user/166915.xlsm




Anzeige
AW: jedes Datenblatt einzeln mit Kennwort versehen
08.02.2024 18:12:00
schauan
Hallöchen,

noch eine kleine Verbesserung.
Der Username wird nur beim Einblenden benötigt und daher jetzt erst dort abgerufen.
und noch eine
Wenn es kein Blatt mit dem Username gibt, kommt eine entsprechende Meldung und das Einblendemakro wird beendet. (Lief zuvor auf einen Fehler ... :-( )

https://www.herber.de/bbs/user/166918.xlsm

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige