Gefüllte Zellen nach speichern schützen
#1
Hallo Leute

Ich habe keine Ahnung von VBA und bräuchte mal eure Hilfe .

Ich habe ein Tabellenblatt was schreibgeschützt ist , bis auf die Zellen die beschrieben werden dürfen . Zur Zeit mache ich es so das ich jeden Tag den Blattschutz öffne die beschriebenen Zellen den Zellenschutz aktiviere und dann den Blattschutz wieder aktiviere sodass die beschriebenen Zellen dann auch geschützt sind und nicht überschreibbar sind . was echt viel zeit in anspruch nimmt .
Gibt es da eine Lössung über VBA das die Zellen erst nach dem Speichern automatisch ein Zellenschutz bekommen ??

Ich Danke euch schon mal für die Hilfe im vorraus

Gruß Jörg
Top
#2
Hallo,

das wiederspricht sich etwas:

Zitat:Gibt es da eine Lössung über VBA das die Zellen erst nach dem Speichern automatisch ein Zellenschutz bekommen ??

Nach dem speichern? Du meinst bestimmt nach dem Eintrag.

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#3
Hallo,

ich arbeite nun schon rund dreißig Jahre mit Excel, schreibgeschützte Zellen habe ich da noch nie benötigt. Wozu soll das gut sein? Gut, man kann Zellen mit Formeln vor einem unbeabsichtigtem Überschreiben schützen, aber die Zellen in die etwas eingegeben werden soll?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#4
Nein das ist schon richtig . Es soll erst schreibgeschützt werden wenn man auf speichern drückt . Es ist ein Tabelle und da heben mehre Personen bestimmte Daten einzutragen und die würde ich gern schützen indem nach dem Speichern ein schreibschutz sich einfügt . Es ist schon vorgekommen das sichandere Leute die Daten nachträglich geändert haben und das will ich unterbinden .
Top
#5
Hallo,

dazu ist der Blatt"schutz" aber nicht besonders geeignet.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Käpt'n Blaubär
Top
#6
Guten Morgen

Ja das weiss ich auch dass das nicht besonders gut geeignet ist dafür aber es reicht aus um zu vermeiden das Leute die Spätschicht haben die Daten von der Frühschicht nicht zu überschreiben . Ich hab da so experten die können das wirklich gut . Und ich kann nicht immer 24 Std am Rechner sitzten und die Daten safe machen .

Grüße
Jörg
Top
#7
Hallo,

was anderes fällt mir nicht ein (egal, was ich von der Idee halte) ... Lege diesen Code hinter "dieseArbeitsmappe" ...
Zitat:Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Zelle As Range
Application.ScreenUpdating = False
    With Sheets("Dein_Tabellenblatt")
       .Unprotect Password:="Dein_Passwort"
       .Cells.Locked = False
            For Each Zelle In .UsedRange
                If Zelle <> "" Then Zelle.Locked = True
            Next Zelle
       .Protect Password:="Dein_Passwort"
    End With
Application.ScreenUpdating = True
End Sub


Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#8
Hallo Marcus,

das ginge dann auch so: Wink

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    With Sheets("Dein_Tabellenblatt")
       .Unprotect Password:="Dein_Passwort"
       .Cells.Locked = False
       .Cells.SpecialCells(xlCellTypeConstants).Locked = True
       .Protect Password:="Dein_Passwort"
    End With
End Sub

Gruß Uwe
Top
#9
Hallo Uwe,
danke ... habe ich mir mal abgelegt. Geht somit auch kürzer ... Klappt genauso gut.

Gruß
Marcus

P.S.: Kommt gut ins neue Jahr!!!

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
[-] Folgende(r) 1 Nutzer sagt Danke an marose67 für diesen Beitrag:
  • Kuwer
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste