Anzeige
Archiv - Navigation
1552to1556
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

Makro Unprotect veränderlicher Blattschutz

Makro Unprotect veränderlicher Blattschutz
27.04.2017 16:39:42
Michael
Liebe Excel-Profis!
Für ein ansonsten einwandfrei funktionierendes Makro (Bereich überwachen und bei Änderungen Spalten ggf ein- oder ausblenden) habe ich ein Blattschutz-Problem:
Alle Tabellenblätter sind mit Blattschutz und Passwort geschützt. Da die Masterdatei verstreut unterwegs ist, ist es durchaus möglich, dass Passwörter lokal verändert werden (nachdem der Schutz ja nicht wirklich schwer umgehbar ist).
Is es irgendwie möglich, die "Unprotect/Protect"-Klammer um den jeweiligen Code zu legen, ohne das Passwort als Klartext anzugeben?
Meine erste Idee war, den "klassischen" Blattschutz-Öffner vorzuschalten, und einfach die gefundene, erste funktionierende Zeichenfolge danach wieder als Passwort zu nehmen. Ich befürchte allerdings, dass dann bei jeder Änderung im überwachten Bereich ein längeres Rechnen beginnt(Spalten werden in 4 Tabellenblättern ein-/ausgeblendet).
Ich freue mich auf Eure Rückmeldungen!
Liebe Grüße
Michael

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Unprotect veränderlicher Blattschutz
27.04.2017 17:22:48
fcs
Hallo Michael,
wenn du das VBA-Projekt mit Kennwort schützt, dann ist das Kennwort im Code nicht mehr ohne weiteres einsehbar.
Wenn sich dann ein Anwender die Mühe macht, das Blattschutz-Kennwort zu knacken, dann dürften die Makros nicht mehr funktionieren, was dann den jeweiligen Anwender ziemlich nerven dürfte.
Grundsätzlich muss du ja auch dafür sorgen, dass die Datei nur mit aktivierten Makros bearbeitet werden kann.
Gruß
Franz
AW: Makro Unprotect veränderlicher Blattschutz
27.04.2017 17:23:59
Nepumuk
Hallo,
versteck das Kennwort in einem unsichtbaren Namen.
Teste mal in einer neuen Mappe:
Option Explicit

Public Sub Test1()
    'Diese Prozedur nach dem erstellen des Namen löschen
    Call ThisWorkbook.Names.Add(Name:="Geheim", RefersTo:="Michael", Visible:=False)
    Debug.Print [Geheim]
End Sub

Public Sub Test2()
    Call Tabelle1.Protect(Password:=[Geheim])
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro Unprotect veränderlicher Blattschutz
27.04.2017 17:57:40
ChrisL
Hi Michael
Is es irgendwie möglich, die "Unprotect/Protect"-Klammer um den jeweiligen Code zu legen, ohne das Passwort als Klartext anzugeben?
Antwort: nein
(der Klartext muss nicht unbedingt im VBA Code stehen, aber es bleibt ein vordefinierter Textstring)
Franz schreibt:
Wenn sich dann ein Anwender die Mühe macht, das Blattschutz-Kennwort zu knacken, dann dürften die Makros nicht mehr funktionieren, was dann den jeweiligen Anwender ziemlich nerven dürfte.
Wenn es meine Datei wäre, fände ich es ganz super, wenn ein allfälliger Knacker so richtig genervt ist. Aber wie ich verstehe willst du genau das Gegenteil d.h. die Datei soll trotzdem weiter funktionieren.
Falls es also nicht um einen möglichst optimalen Schutz geht (PW verstecken, VBA-Schutz, Makroaktivierung sicherstellen etc.), dann denke ich ist deine vorgeschlagene Variante machbar.
Das PW-Knack-Makro müsste ja nur im Workbook_Open Ereignis ausgeführt werden und nicht bei jeder Änderung. Dennoch ist das Vorgehen sehr unkonventionell und ich würde auf das Passwort eher ganz verzichten.
Noch eine Schnapsidee... nicht mit Blattschutz arbeiten sondern im Worksheet_Change ein "Cancel=True" machen. Somit wäre die Hürde der VBA-Schutz und nicht der Blattschutz.
ungetestet:
If Target.Locked = True Then Cancel = True
cu
Chris
Anzeige
AW: Makro Unprotect veränderlicher Blattschutz
27.04.2017 18:04:38
ChrisL
halt! noch ein Schnapsidee :)
Im Before_Save Ereignis prüfen, ob der Blattschutz noch richtig ist, was ganz schnell geht (z.B. einmal Unprotect und wieder Protect, wenn Fehler = falsches Passwort) und nur dann das Knackprogramm ausführen und das ursprüngliche PW wieder setzen.
AW: Makro Unprotect veränderlicher Blattschutz
27.04.2017 18:08:26
Michael
Vielen Dank für die vielen Ideen und Ansätze, ich werde mir da morgen mal etwas zusammen bauen und ausprobieren!
Liebe Grüße
Michael
AW: Makro Unprotect veränderlicher Blattschutz
27.04.2017 18:13:25
ChrisL
Oder gar nicht Speichern lassen (Umgehung: Öffnen der Datei ohne Makroaktivierung):
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim WS As Worksheet
On Error Goto NixMitSpeichern
For Each WS in ThisWorkbook.Worksheets
WS.Unprotect "PW"
WS.Protect "PW"
Next WS
Exit Sub
NixMitSpeichern:
MsgBox "Falsches PW, Datei kann nicht gespeichert werden"
Cancel = True
End Sub

Anzeige
AW: Makro Unprotect veränderlicher Blattschutz
28.04.2017 03:04:22
Peter
Hallo Michael,
einen wirklich sicheren Blattschutz kann man mit einer zusätzlichen "Kennwortdatei" erreichen. Die verschiedenen Benutzer erhalten jeweils getrennt eine Kennwortdatei mit der Nennung ihres Kennwortes. Die Kennwortdatei selbst ist für alle dieselbe. Das Kennwort der Benutzer ist in meinem Beispiel nur eine "Maskerade"; in Wirklichkeit sind die Kennworte alle gleich. Ich habe in meinem Beispiel die folgenden Kennwörter benutzt: Die zu bearbeitende Datei (Indiv_Blattschutz) = Kennw1; die Tabellen = Kennw2; die Arbeitsmappe (von "Indiv_Blattschutz") = Kennw4 und die Makros = Kennw3.
Diese Datei bitte als "Kennwortdatei" speichern.
https://www.herber.de/bbs/user/113164.xlsm
Bitte in der Tabelle2 den richtigen Pfad für die zu bearbeitende Datei eingeben (Arbeitsmappenschutz aufheben und Tabelle2 einblenden).
Die folgende Datei bitte als "Indiv_Blattschutz" speichern - unter dem Pfad, den Du in der Kennwortdatei in Tabelle2 angegeben hast.
https://www.herber.de/bbs/user/113165.xlsm
Ich habe mein Beispiel für 3 Benutzer eingerichtet: Igor (Kennw. "Blume"), Botho (Kennw. "12_345") und Hermann (Kennw. "Lustig"). Jeder kann nur die ihm zugeordnete Tabelle ändern. Auch die Kennworte können geändert werden. Die zentrale Stelle kommt aber mit den o. g. tatsächlichen Kennworten immer rein. Diese Angaben werden natürlich den tatsächlichen Benutzern nicht bekannt gegeben. Die zu bearbeitende Datei ("Indiv_Blattschutz") wird ohne Befehlsmenü aufgerufen. Mit dem geheimen Befehl "STRG-L" kann man es wieder einblenden. Dies geschieht selbstverständlich auch beim Schließen der Datei.
Bitte mal ausprobieren, Rückmeldung wäre schön.
M.f.G. Peter Kloßek
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige