Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
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
Inhaltsverzeichnis

Zellschutz nach Eingabe nur beim Speichern

Zellschutz nach Eingabe nur beim Speichern
07.08.2018 16:21:21
Armin
Hallo zusammen,
ich habe hier schon viele interessante Dinge gelesen und mir Hilfe abgeschaut.
Auch wenn es teilweise schon ähnliche Problemstellungen gab, komme ich bei der Übertragung auf meine Datei nicht weiter, da VBA Aktuell ist mein Problem folgendes: Kassenblatter zur Kassenführung
Spalten: Datum, Vorgang, Einnahme, Ausgabe, Kassenstand, Signum der Person
Leider hab ich Probleme mit dem Upload!?
- es gibt zellen, die ich immer gesperrt haben möchte (z.B.Kassenstand wird berechnet oder die Spaltenüberschriften)
- die anderen Zellen sollen bearbeitet werden können - solange bis man speichert
- es wird ca. 10 Seiten (Tabellen) geben auf denen das Gleiche passieren soll
- die Tabellen hängen zusammen, weil der Übertrag mit auf die Neue Seite genommen wird
Ich hatte folgenden Code eingefügt:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
On Error Resume Next
Set xRg = Intersect(Range("A1:h100"), Target)
If xRg Is Nothing Then Exit Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = True
Target.Worksheet.Protect Password:="123"
End Sub

Der Schutz ist mir zu krass - da darf man sich gar keinen Fehler erlauben - selbst wenn man auf "Entf." drückt ist die Zelle danach gesperrt.
Wäre klassen, wenn ihr mir helfen könnt.
Grüße
Armin

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellschutz nach Eingabe nur beim Speichern
07.08.2018 19:39:25
KlausF
Hallo Armin,
ich denke, dass eine Eingabeänderung immer noch möglich sein sollte,
solange ich das File offen habe. Erst beim Schliessen sollten die Eingaben
geschützt werden. Dann in etwa so:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim zelle As Range
Sheets(1).Unprotect
For Each zelle In Sheets("Tabelle1").UsedRange
If zelle.Value  "" Then
zelle.Locked = True
Else
zelle.Locked = False
End If
Next
Sheets("Tabelle1").Protect
End Sub
Mit Rechtsmausklick auf den Tabellenreiter und den Code eingeben
Gruß
Klaus
Anzeige
AW: Zellschutz nach Eingabe nur beim Speichern
08.08.2018 16:25:00
Armin
Hi Klaus,
vielen Dank für deine Antwort - ich habs gleich ausprobiert - leider hats noch nicht geklappt.
Folgendes habe ich gemacht:
- Datei als Excel Makro gespeichert
- Tabelle "Seite 1" in Tabelle 1 umbenannt
- alle zellen markiert und haken bei Schutz rausgemacht
- Tabellenblatt angeklickt - Code anzeigen - und eingefügt
- Danach wollte ich einen Blattschutz für das Blatt mit Passwort (beispielshalber 123)
aktivieren
Meiner Meinung nach fehlt in dem Code noch, dass dieses konkrete aufghoben und wieder aktiviert wird?
Oder mach ich sonst noch irgendetwas falsch - #schäm
Bei mir waren nach dem speichern die Zellen noch bearbeitbar.
Wenn ich dann mehrere Seiten des Kassenblattes habe, kann ich den Code dann auch auf diese einfügen? Müsste ja nur das Tabellenblatt umbenennen oder?
Danke schonmal
Armin
Anzeige
noch mal neu
08.08.2018 17:45:39
KlausF
Hallo Armin,
sorry, da hatte ich einen zu schnellen Finger, deshalb noch einmal neu von Anfang an:
1. Alle Zellen auf allen Sheets auf unlocked stellen
2. mit Rechtsmausklick auf ein Sheet-Tab gehen und unter "DieseArbeitsmappe" (oder "ThisWorkbook") folgendes eingeben
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wks As Worksheet
Dim rng As Range
On Error Resume Next
For Each wks In Worksheets
Select Case wks.Name
'Hier alle Blattnamen eintragen, die geschuetzt werden sollen:
Case "Klaus", "Peter", "Ralf"
With wks
.Unprotect Password:="123"
For Each rng In wks.UsedRange
If rng.Value  "" Then
rng.Locked = True
Else
rng.Locked = False
End If
Next
.Protect Password:="123"
End With
Case Else
End Select
Next wks
On Error GoTo 0
Set rng = Nothing
End Sub
Da wo ich im Code "Klaus", "Peter", "Ralf" geschrieben habe musst Du die Sheets angeben, in denen der Schutz greifen soll
https://www.herber.de/bbs/user/123214.xls
Sollte jetzt klappen
Gruß
Klaus
Anzeige
AW: noch mal neu
09.08.2018 16:37:08
Armin
Hallo Klaus,
wenn ich meine Datein in deine Datei kopiere gehts. Damit kann ich auch arbeiten - funktioniert 100%. Danke!!
Kopiere ich deinen Code in meine Datei gehts nicht. Als Unterschied habe ich festgesgellt:
bei dir steht "Workbook" und rechts Before Close
bei mir habe ich nach dem einfügen links Worksheet oder (allgemein) als dropdown und rechts Workbook_BeforeClose
Habe brav die Tabellen Umbennannt, Zellschutz raus usw. - naja macht aber nix.
Folgendes habe ich noch festgestellt:
ich gebe Daten ein und gehe auf speichern (diskettensymbol), danach auf schließen und nicht speichern "Nein". Nach dem öffnen sind die Daten immer noch da und ohne Zellschutz bearbeitbar.
Dies birgt natürlich doch noch ein kleines Risiko, dass evtl. nochmal was geändert werden kann.
Kann man den Zellschutz bereits beim manuellen speichern aktivieren - dann wäres 1000%.
Danke dir schonmal für deine Mühe und Hilfe
Gruß
Armin
Anzeige
AW: neu die zweite
10.08.2018 08:52:29
Armin
Hallo Klaus,
ich glaube wir sind fertig - funktioniert Bestens.
Ich danke dir herzlich - habe dich auch lobenswert
auf der Arbeit erwähnt und nicht die Ehre eingesteckt :-)
- wäre auch peinlich wenns rauskommt.
Gute Zeit und Servus.
Armin
Danke für Feedback
10.08.2018 09:20:04
KlausF
Hallo Armin,
danke für Dein Feedback!
Have a nice time
Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige