Kann ich ein Makro verwenden, um eine Zelle in einer Excel-Tabelle mit einem Kennwort zu schützen?

518
Paul Y

Ich habe eine Excel-Tabelle als Timeclock eingerichtet. Der Mitarbeiter öffnet seine Zeitsperrdatei für die Woche und trägt das Enddatum der Woche an der vorgesehenen Stelle ein. Ab hier wird nur noch die Maus zur Eingabe verwendet. Der Angestellte wählt die richtige Zelle für den Wochentag aus und wählt aus, zu Mittag zu essen, vom Mittagessen zurückzukehren und nach Hause zu gehen. Nachdem Sie den Cursor über der richtigen Zelle positioniert haben, klicken Sie auf eine Schaltfläche (eine mit einem Makro verknüpfte Schaltfläche), die die richtige Zeit für die Aktion anzeigt. Ich kann nicht herausfinden, wie ich sie davon abhalten kann, einfach zu der gewünschten Zelle zu gehen und zu jeder beliebigen Zeit etwas einzugeben. Ich habe versucht, die Zelle mit einem Kennwort als Teil des Schaltflächenmakros zu schützen, konnte dies jedoch nicht zum Laufen bringen. Hat jemand eine Möglichkeit, die Zellen zu schützen, sodass der Mitarbeiter die Zeiten nicht ändern kann? Oder,

0
** Meine Beobachtung: ** 1. Die Datei befindet sich im geschützten Modus, und hinter dem Makro lässt sich nur die Maus bewegen und auf die Schaltfläche klicken. Nun suchen Sie nach dem Benutzer, Daten in Zellen einzugeben, und müssen danach geschützt werden. Rajesh S vor 5 Jahren 0
** Cont ... **, Das allererste Bedürfnis besteht darin, nur das Makro zu teilen, das die Bewegung des Zellenzeigers um die Datei einschränkt und uns hilft, den Prozess zu verstehen. Und ja, es ist dem Benutzer möglich, die Daten nach der Eingabe zu schützen. ☺ Rajesh S vor 5 Jahren 0

2 Antworten auf die Frage

0
Slartibartfast

Ihre Benutzer haben Zugriff auf die Excel-Datei ...

Ich glaube nicht, dass Sie dies technisch in Excel durchsetzen können. Ich denke, du willst eine alternative Software. Ich bewundere jedoch Ihre Fähigkeiten mit Excel-Makros.

Um auszuarbeiten:

  • Wenn der Benutzer die Zelle ändern kann, ist sie nicht vor dem Benutzer geschützt, sondern muss nur die Zelle selbst ändern (indem Sie einen Wert eingeben).
  • Wenn der Benutzer die Zelle nicht ändern kann, ist sie vor dem Benutzer geschützt, der nur einen Wert eingibt. Sie können jedoch auch nicht die korrekten Informationen aus einem Makro in die Zelle schreiben.

Dies unterscheidet sich von der Verschlüsselung von Zellen, wodurch auch das Lesen ohne Kennwort verhindert wird.

Ich glaube, es gibt eine Menge Zeitkarten-Software, und die meisten können gesammelte Daten wahrscheinlich in Excel exportieren. Ich würde meinen Horizont über Spreadsheets hinaus erweitern, wenn ich in Ihrer Position wäre.

0
harrymc

Sie können Änderungen an Zellen durch einen VBA-Ereignishandler nicht zulassen:

Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False With Target If If Not Intersect(Target, Range("A1:B10")) Is Nothing Then Application.Undo End With Application.EnableEvents = True End Sub 

Ich weiß nicht, ob das Setzen des Werts von Zellen über ein VBA-Makro dieses Ereignis auslöst. Ich weiß, dass es nicht für Änderungen feuert, die durch Formeln ausgelöst werden. Sie können jedoch leicht eine globale Variable definieren, um Änderungen an der Zelle vornehmen zu können, bevor Sie die Zelle ändern und anschließend die Einstellung aufheben.

Sie können auch versuchen, das Worksheet_SelectionChangeEreignis abzufangen, um zu verhindern, dass der Benutzer den Cursor innerhalb der Zelle positioniert. Sie können den Cursor für die unzulässigen Zellen auf eine vordefinierte Zelle (z. B. A1) positionieren oder etwas komplizierteren Code schreiben, um sich die zuletzt erlaubte Cursorposition zu merken und die Position neu zu positionieren.