Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
540to544
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
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen nach Eingabe in einer Zelle schützen

Zeilen nach Eingabe in einer Zelle schützen
07.01.2005 10:52:05
Smudo
Hallo zusammen,
bin gerade auf der Scuhe nach meiner Problemlösung auf diese echt gute Forum gestossen. Vielleich fidne ich hier ja Hilfe. Mein Problem:
Ich möchte ein Tabelle anlegen auf die verschiedene User zugreifen können und nacheinander Eintargungen vornehmen sollen. Diese Eingaben werden dann an einer anderen Stelle abgearbeitet und es wird in die letzte Zelle der jeweiligen Zeile ein Erledigungsvermerk eingetragen. Wenn dieser Eintrag vorgenommen wurde, soll die entsprechende Zeile mit Passwort geschützt werden. Hat da jemand eine Idee wie man das bewerkstelligen kann ?
Würde mich über ein Hilfestellung sehr freuen :-)
Smudo

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen nach Eingabe in einer Zelle schützen
07.01.2005 11:38:28
Matthias
Hallo Smudo,
also der Schutz, den dir anbiete, ist der Blattschutz, der natürlich nicht für jede Zeile ein anderes Passwort hat...
Mein Beispiel prüft erstmal, ob der Blattschutz aktiv ist.
Wenn in Spalte I (ab Zeile 2, wg Überschrift) ein "erl" eingetragen wird, sperrt er alle Zellen der betreffenden Zeile.
Wenn die Zelle in Spalte I gelöscht wird, entsperrt er die Zeile.
Je nachdem, ob ein Blattschutz vorlag, setzt er diesen wieder oder auch nicht.
Hier der Code, er kommt in das Arbeitsblatt-Modul!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim b As Range, z As Range
Dim gesch As Boolean
gesch = Me.ProtectContents
Set b = Intersect(Target, Range("I2:I65536"))
If Not b Is Nothing Then
For Each z In b
If z.Value = "erl" Then
If gesch Then Me.Unprotect
z.EntireRow.Locked = True
If gesch Then Me.Protect
End If
If z.Value = "" Then
If gesch Then Me.Unprotect
z.EntireRow.Locked = False
If gesch Then Me.Protect
End If
Next z
End If
End Sub
Das Kennwort kannst du mit Me.Protect Password:="123" (bzw. Unprotect) mitgeben.
Grüße,
Matthias
Anzeige
AW: Zeilen nach Eingabe in einer Zelle schützen
07.01.2005 15:05:14
Smudo
Vielen herzlichen Dank für diese super schnelle Hilfe ....
Habe es mal in einer Testdatei probiert und es funzte echt gut ... jetzt habe ich es in einer neuen Datei probiert und es klappt nicht .. mal sehen wo ich den fehler mache ? :-)))
Ab es hat ja funktioniert :-)))
AW: Zeilen nach Eingabe in einer Zelle schützen
07.01.2005 15:30:43
Matthias
Hallo Smudo,
in einem neuen Blatt sind alle Zellen standardmäßig geschützt (Natürlich nur wenn der Blattschutz gesetzt ist).
Makriere also mit Strg-A alle Zellen und mach' das Häkchen bei (Menü Format - Zellen - Schutz) "gesperrt" raus.
Gruß Matthias
AW: Zeilen nach Eingabe in einer Zelle schützen
09.01.2005 13:27:09
Smudo
Hallo Matthias,
vielen Dank nochmals für deine Hilfe !!! Irgendwie funktioniert das bei mir nicht ... habe es einmal im Office gemacht .. funktionierte ohne fehler und dann habe ich es wie gesagt in einer ganz neuen Tabelle eingefügt und hier klappt es gar nicht .. also ich füg das Skript ein aber ohne Wirkung ... wenn ich also in der Spalte I ein erl eintrage ist die Zeile immer noch offen ... Habe da irgendwie keine Erklärung für ...
Anzeige
AW: Zeilen nach Eingabe in einer Zelle schützen
09.01.2005 21:57:57
Matthias
Hallo Smudo,
hast du denn alle Zellen "entschützt"?, wie ich im vorigen Postingbeschrieben habe?
Wenn du das getan hast, ok...
Ich habe vielleicht vergessen, dir noch ein wichtiges Detail zu nennen ;-)
Der Code merkt sich, ob das Blatt geschützt war, und schützt es nur, wenn es vor der Zelländerung auch geschützt war.
Das soll dazu dienen, dir im "Administratormodus" zu ermöglichen, das Blatt zu schützen und bereits mit "erl" gekennzeichente Zellen wieder freizugeben.
Damit es also in einem neues Blatt funktioniert, hier nochmal eine Zusammenfassung:
1.
Alle Zellen "entschützen" (Makriere also mit Strg-A alle Zellen und mach' das Häkchen bei (Menü Format - Zellen - Schutz) "gesperrt" raus)
2.
Blattschutz setzen (Menü Extras - Schutz - Blatt schützen)
3.
Rechtklick auf Tabellenblattnamen im Arbeitsmappenregister, "Code anzeigen" klicken, folgenden Code reinkopieren:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim b As Range, z As Range
Dim gesch As Boolean
gesch = Me.ProtectContents
Set b = Intersect(Target, Range("I2:I65536"))
If Not b Is Nothing Then
For Each z In b
If z.Value = "erl" Then
If gesch Then Me.Unprotect
z.EntireRow.Locked = True
If gesch Then Me.Protect
End If
If z.Value = "" Then
If gesch Then Me.Unprotect
z.EntireRow.Locked = False
If gesch Then Me.Protect
End If
Next z
End If
End Sub
nun sollte es also funktionieren.
Viel Erfolg!
Matthias
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige