Schützen Sie den Inhalt bestimmter Zellen, ohne das Arbeitsblatt zu schützen

Schützen Sie den Inhalt bestimmter Zellen, ohne das Arbeitsblatt zu schützen

Wir haben eine Excel 2016-Arbeitsmappe mit mehreren Registerkarten, wobei jede Registerkarte einem bestimmten Verkäufer zugeordnet ist. Jeder Verkäufer meldet sich über ein Formular an und sein (nur sein) Arbeitsblatt ist entsperrt und kann bearbeitet werden.

Es ist eine Tabelle vorhanden, die seine früheren Daten zeigt. Er darf die meisten seiner Daten in der Tabelle aktualisieren oder ändern. Er aktualisiert bestimmte Zellen, speichert und schließt dann die Arbeitsmappe. Der WB-Schließvorgang sperrt sein Blatt erneut. Bevor er geht, kann er sich andere SalesPeep-Blätter ansehen, aber nicht bearbeiten, da sie gesperrt sind.

Jetzt kommt das Problem. Auf jedem Salespeep-Blatt enthalten bestimmte Spalten (die gleichen für alle Peeps) Daten, die von einem Administrator eingegeben wurden. Diese Daten müssen für die Salespeeps sichtbar sein, dürfen aber nicht geändert werden.

Irgendwelche Ideen dazu, wie man bestimmte Spalten vor bestehenden Inhaltsänderungen auf einem ungeschützten Arbeitsblatt schützen kann?

Antwort1

lockedOhne den VBA-Code zu sehen, ist es schwierig zu bestimmen, wie das Sperren/Entsperren erfolgt. Ich gehe davon aus, dass dies durch Festlegen des Attributs für eine Zelle und Verwenden der Funktion zum Schützen und Aufheben des Arbeitsblatts erfolgt .

Sie müssen alle Verkäufe auswählen, die bearbeitet werden dürfen, und einen benutzerdefinierten Bereich für sie erstellen. Ich habe Excel nicht zur Hand, aber ich glaube, es ist Data> Define Custom RangeAn derselben Stelle können Sie einen Bereich auswählen, der die Zellen in Excel automatisch auswählt.

Alternativ zur Arbeit mit benutzerdefinierten Bereichen können Sie die erforderlichen Spalten auswählen, sofern sich die Administratordaten nicht in derselben Spalte befinden. Dadurch wäre eine möglich activesheet.range("K:L").select.

Im VBA-Code muss nach dem Entsperren des Arbeitsblatts dieser Bereich ausgewählt und die lockedEinstellung für diese Zellen geändert werden. Anschließend muss das Blatt erneut geschützt werden. Beim Beenden muss der umgekehrte Vorgang ausgeführt werden (Schutz aufheben, alle gesperrt setzen, schützen).

Um den richtigen VBA-Code herauszufinden, führen Sie die Aktion manuell aus, während Sie ein Makro aufzeichnen, und kopieren Sie den Code.

Antwort2

LPChip hat mich auf den richtigen Weg gebracht und ich danke Ihnen sehr. Der von mir verwendete Prozess ist wie folgt:

  1. Setzen Sie auf dem Blatt mit den Verkäufern das Sperrattribut für das gesamte Blatt auf „Falsch“.
  2. Setzen Sie in der Tabelle für diesen Verkäufer das Sperrattribut für die gesamte Tabelle auf „True“
  3. Wir haben, wie von LPChip vorgeschlagen, einen benutzerdefinierten Bereich aller Spalten erstellt, die von niemandem bearbeitet werden können sollten. Wir haben das manuell gemacht und einen Bereichsnamen (LockedColumns) zugewiesen.
  4. Dann schützen Sie das Blatt. Dies ist die Ausgangsbedingung für dieses Blatt und alle anderen Sales-Peeps-Blätter.

  5. Der Verkäufer meldet sich mit den richtigen Anmeldeinformationen an und wird zu seinem/ihrem Blatt weitergeleitet, wo im Hintergrund Folgendes im VBA-Code abläuft:

    • Wir wählen die Tabelle aus und setzen das Sperrattribut auf „false“
    • Wir wählen den Bereich "Range.("LockedColumns").select" aus und setzen das Sperrattribut auf "true".
    • Wir schützen das Arbeitsblatt.

Dies ermöglicht es dem autorisierten Verkäufer, Daten in die von uns zugelassenen Zellen einzugeben, und verhindert, dass er Daten in den Zellen ändert, in denen wir keine Änderungen wünschen. Der Verkäufer kann sich andere Verkaufsregisterkarten ansehen, aber keine Änderungen vornehmen. Wenn sich der Verkäufer abmeldet oder die Arbeitsmappe geschlossen wird, erfassen wir vor dem Schließen und im VBA-Code 1. die vollständige Tabelle erneut auswählen, das Sperrattribut auf „true“ setzen und dann das Arbeitsblatt schützen. Wir speichern und leiten dann für den nächsten Benutzer zurück zur Menüregisterkarte.

Ich war ratlos und LP hat mir die Augen geöffnet. Nochmals vielen Dank.

verwandte Informationen