Zelle nach erster Eingabe schreibschützen
Zelle soll nur einmal beschreibbar sein
Hallo!
Wieder mal eine Frage...
Ich habe mittlerweile eine sehr große Excel Liste (die eigentlich schon Datenbank-würdig wäre) mit der mehrere Leute arbeiten.
Die Datei hat mehrere Spalten, aber eine davon soll nur einmal beschreibbar sein und dann schreibgeschützt werden.
Optimal wäre es, wenn man durch ein Passwort erst die Zelle wieder bearbeiten kann - optional würde ich Makros beim Öffnen einfach nicht aktivieren.
Besten Dank schon im Voraus für eure Hilfe!
Hallo!
Wieder mal eine Frage...
Ich habe mittlerweile eine sehr große Excel Liste (die eigentlich schon Datenbank-würdig wäre) mit der mehrere Leute arbeiten.
Die Datei hat mehrere Spalten, aber eine davon soll nur einmal beschreibbar sein und dann schreibgeschützt werden.
Optimal wäre es, wenn man durch ein Passwort erst die Zelle wieder bearbeiten kann - optional würde ich Makros beim Öffnen einfach nicht aktivieren.
Besten Dank schon im Voraus für eure Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 66833
Url: https://administrator.de/contentid/66833
Ausgedruckt am: 19.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo viewpoint!
Ein Beispiel für die gesamte Spalte B:
Der Code muss dem Blatt zugewiesen werden, was Du am einfachsten über einen Rechtsklick auf das Blattregister und "Code anzeigen" erreichst.
Damit das Programm die Zelle sperren kann, muss vorübergehend der Blattschutz aufgehoben werden, wozu das entsprechende Passwort (im Beispiel oben: "Pass") im Programm als Klartext hinterlegt werden muss.
Wie Dir sicher bekannt ist (aber zu beachten wäre): In der Standardeinstellung sind alle Zellen einer Tabelle geschützt und daher muss zunächst für die übrigen Zellen (Spalten) über "Format / Zellen... / Schutz" der Haken bei "Gesperrt" entfernt werden.
Grüße
bastla
Ein Beispiel für die gesamte Spalte B:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then 'Spalte B
If Target.Value <> "" Then
ActiveSheet.Unprotect "Pass"
Target.Locked = True
ActiveSheet.Protect Password:="Pass", DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True
End If
End If
End Sub
Damit das Programm die Zelle sperren kann, muss vorübergehend der Blattschutz aufgehoben werden, wozu das entsprechende Passwort (im Beispiel oben: "Pass") im Programm als Klartext hinterlegt werden muss.
Wie Dir sicher bekannt ist (aber zu beachten wäre): In der Standardeinstellung sind alle Zellen einer Tabelle geschützt und daher muss zunächst für die übrigen Zellen (Spalten) über "Format / Zellen... / Schutz" der Haken bei "Gesperrt" entfernt werden.
Grüße
bastla
Hallo viewpoint!
Grüße
bastla
Will man die Zelle nun ändern, kommt ein Hinweis.. Lässt sich statt diesem Hinweis eine definierte Meldung einbauen? Oder noch besser... Die Passwortabfrage zum Ändern der Zelle?
An sich müsstest Du nur den "gewöhnlichen" Excel-Blattschutz aufheben ("Extras / Schutz > Blattschutz aufheben...") - allerdings wird nach einer Eingabe in Spalte B dieser wieder gesetzt, sodass Du für größere Änderungen in der geschützten Splate vorübergehend im Code die "ActiveSheet.Protect ..."-Zeile mit einem vorangestellten "Rem" (oder Apostroph) deaktivieren könntest.Grüße
bastla