Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excelproblem!!! einzelne Zelle sperren





Frage

Hallo an alle die was von Makros e.t.c. verstehen. Ich habe folgendes Problem: In meiner Excelmappe ist ein umfangreiches Programm zur Berechnung von best. Sachen vorhanden. Was das ist, ist egal. Ich habe nun eine Zelle (E2) eingerichtet, bei der man ein Passwort für den Gastzugang eingeben muss, um diese Mappe als Demoversion testen zu können. Nachdem man das getan hat, soll genau diese Zelle (E2) für eine erneute Eingabe gesperrt sein, denn man könnte ja das Passwort wieder nach dem Testen löschen und man hätte so unbegrenzte Testmöglichkeiten. Ich weiss, dass es Makros für so etwas gibt, aber alle Schnipsel aus dem Internet funzen bei mir nicht! Im übrigen sind bei mir viele andereZellen ausgeblendet und gesperrt und ein paar für die Daten freigeschaltet. Vielleicht ist das nützlich. Ich hoffe ich habe mein Problem gut genug geschildert. Ach ja, das Makro soll nur auf die Zelle E2 zugreifen! Der gesamte Rest sollte wenn möglich nicht angetastet werden, da ich dort nämlich Alles soweit am Laufen habe. Ich würde mich unwarscheinlich freuen, wenn ihr mir helfen könntet!!!!!!! Gernot

Antwort 1 von Hajo_Zi

Hallo Gernet,

und warum sperrst Du die Zelle nach Eingabe nicht?

Unter der Tabelle

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$2" Then
ActiveSheet.Unprotect "Passwort"
Target.Locked = True
ActiveSheet.Protect "Passwort"
End If
End Sub

Gruß Hajo

Antwort 2 von geseha

Naja,
weil ich keine Ahnung von Makros schreiben habe.
Ich habe versch. Schnipsel mal aus´m Internet probiert, aber die haben alle nachdem ich das Passwort mal ausprobiert habe die ganze Mappe gesperrt!
Das bringt mich ja um nichts weiter, denn der Benutzer sollte ja schließlich nach Passworteingabe
mein Programm testen können.
Aber ich habe deinen Code mal ausprobiert.
Scheint zu funzen!!!!!!!
Bin total happy!!!!
Werde jetzt das ganze nochmal checken, und dann an meine Kollegen weitergeben.
Hab vielen Dank für deine schnelle und hilfreiche Hilfe!!!!!

Gernot

Antwort 3 von Hajo_Zi

Hallo Gernot,

Dir ist aufgefallen das nur eine Eingabe möglich ist?
Das VBA Projekt sollte geschützt werden mit Password (nicht vergessen).

Gruß Hajo

Antwort 4 von geseha

Ja genau,
das ist meine jetzige Frage.
Wenn ich z.B. als Admin das Makro oder diese Zelle wieder aktivieren möchte, was muss ich dann genau tun?

Antwort 5 von geseha

Tut mir leid, dass ich noch was hinterherschieben
muss.
Alles super, aber jetzt treffe ich genau auf das, was du angesprochen hast.
Was ist denn, wenn man sich verschrieben hat, oder ,man hat ausversehen, die Zelle angewählt?---
Wie kann ich es denn verändern, dass die Zelle erst gesperrt wird, wenn das Passwort richtig eingegeben wurde?
Und wie kann ich verhindern, dass man sich als User das Makro oder den Code anzeigen lassen kann?
Denn dort braucht man nur Alles löschen und dann ist
der Schutz ja wieder ausgehebelt!

Antwort 6 von Hajo_Zi

Hallo Gernot,

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$2" And Target = "Password" Then
ActiveSheet.Unprotect "Passwort"
Target.Locked = True
ActiveSheet.Protect "Passwort"
End If
End Sub

im VBA Editor, rechte Maustaste auf Deine Datei und Eigenschaften der Datei.

Du kannst doch den Blattschutz der Tabelle aufheben, da Du das Passwort kennst.

Gruß Hajo

Antwort 7 von geseha

Super!
Das mit dem Code funzt bestens!!!
Blattschutz ist auch verstanden!
Ich glaube jetzt habe ich soweit Alles im Lot, bis auf eine und ich glaube sogar die letzte Frage.
Kann ich auch das jetztige Makro irgendwie in ein neues Fenster kopieren, dass es z.B. dann nicht nur auf Zelle E2, sondern auch auf die Zelle E3 zugreift?
Selbstverständlich unabhängig vom ersten Makro oder Zelle E2.
Das wäre das Sahnehäupchen schlechthin!!!
Ach ja, ich hab noch einen Zusatz gefunden:
ActiveWorksheet.Save ???
Ich glaub so irgendwie lautet der.
Wenn ich jetzt diesen Zusatz noch einfüge, müsste das Makro ja eigentlich nach der richtige Passworteingabe die ganze Mappe speichern??

Gruß geseha

Antwort 8 von Hajo_Zi

Hallo Gernot (ich bleibe mal dabei),

Das Ereignis Private Sub Worksheet_Change(ByVal Target As Range) gibt es nur 1x pro Tabelle. Deinen Code mußt Diu da mit einbauen.

ActiveWorkbook.Save

ein einzelnes Sheet kann nicht gesichert werden.

Gruß Hajo

Antwort 9 von geseha

Kein Problem.
Habe es soweit hingekriegt, dass das Makro jetzt das tut, was ich will.
Aber da ist schon wieder eine Frage:
Gibt es einen Code, der dann aktiv wird, wenn man die
Arbeitsmappe schließt und der dann den Inhalt der Zelle D8 löscht?
Wäre klasse wenn man mir auch noch hier weiterhelfen würde!
(Werde mir demnächst ein Buch über diesen ganz´n Krempel besorgen.)
Ich hoffe ich strapaziere euren Geduldsfaden nicht allzusehr!

Gruß geseha

Antwort 10 von Hajo_Zi

Hallo Gernot,

unter DieseArbeitsmappe die Aktion

Private Sub Workbook_BeforeClose(Cancel As Boolean)

vergesse den Schutz nicht wieder aufzuheben.

Gruß Hajo

Antwort 11 von geseha

Vielen Dank!
Ich denke es funzt soweit alles.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: