Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel Zellen automatisch nach Eingabe sperren

Excel Zellen automatisch nach Eingabe sperren
24.04.2017 08:12:22
Fabian
Hallo,
ich möchte in einer Tabelle die Möglichkeit haben, dass einzelne Zellen nach der
Eingabe durch ein Passwort gesperrt werden. Bei einer Änderung der Zelle soll
dann erst das Passwort in einem Inputfenster abgefragt werden. Bis jetzt habe ich
folgenden VBA Code dafür:

Private Sub Worksheet_Change(ByVal Target As Range)
'Code sperrt die Zelle, in die eine Eingabe gemacht wurde
Dim rngCell As Range
Set Target = Intersect(Target, Range("A1:I250"))
If Target Is Nothing Then Exit Sub
Me.Unprotect ("123")
For Each rngCell In Target
rngCell.Select
Selection.Locked = rngCell  ""
Next
Me.Protect ("123")
End Sub

Dieser Code erfüllt schon die Anforderungen, aber bei einer Änderung der Tabelle
kommt ein Hinweis, dass die Zelle gesperrt ist. Danach muss ich dann erst mit
Rechtsklick auf das Tabellenblatt den Blattschutz entfernen.
Ich hoffe einer kann mir dabei helfen, wie dieser letzte Schritt einfacher geht.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Zellen automatisch nach Eingabe sperren
24.04.2017 08:43:50
yummi
Hallo Fabian,
wenn du den Blattschutz aktivierst, dann gilt das immer für das gesamte Blatt und nicht nur für eine bestimmte Zelle. Wenn Du also nach deiern 1. Eingabe den Blattschutz aktivierst, dann ist das gesamte Blatt geschützt und muss vor eienr weiteren Eingabe erst freigeschalte werden.
Du könntest erst alle Zellen die Eigenschaft Locked auf false setzen, dann wirkt der Blattschutz nicht und dann bei Eingabe die entsprechende Zelle Locked auf true setzen. Dann kannst Du den Blattschutz immer aktiv lassen und er erweitert sich so immer mehr.
Vielleicht hilft dir die Idee ja.
Gruß
yummi
Anzeige
AW: Excel Zellen automatisch nach Eingabe sperren
24.04.2017 08:51:00
Fabian
Ich habe die Schutzeinstellungen für alle Zellen deaktiviert (Häkchen bei "Gesperrt" bei den Zelleneinstellungen entfernt). Somit wird jede Zelle erst geschützt, wenn eine Eingabe geamcht wurde.
AW: Excel Zellen automatisch nach Eingabe sperren
24.04.2017 09:18:52
yummi
Hallo Fabian,
bei mir gehts

Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
If Target.Value  "" Then
ActiveSheet.Unprotect "123"
ActiveSheet.Range(Target.Address).Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=" _
123"
End If
End Sub
Blatt alle zellen als nicht gesperrt und Blattschutz aktiv
Gruß
yummi
Anzeige
AW: Excel Zellen automatisch nach Eingabe sperren
24.04.2017 08:59:10
ChrisL
Hi Fabian
Hier ein Ansatz:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Locked Then
If InputBox("Bitte Passwort eingeben") = "Passwort" Then
ActiveSheet.Unprotect
Target.Locked = False
ActiveSheet.Protect
End If
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
Target.Locked = True
ActiveSheet.Protect
End Sub

Zuerst alle leeren Zellen entsperren (Locked=False), dann Blattschutz aktivieren.
Die Passwort-Abfrage wird mittels Doppelklick in die Zelle ausgelöst.
cu
Chris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Zellen automatisch nach Eingabe sperren


Schritt-für-Schritt-Anleitung

Um Zellen in Excel automatisch nach einer Eingabe zu sperren, folge diesen Schritten:

  1. Öffne Excel und lade das Arbeitsblatt, in dem Du die Zellen nach der Eingabe sperren möchtest.

  2. Gehe zu Entwicklertools und klicke auf Visual Basic.

  3. Im VBA-Editor wähle das entsprechende Arbeitsblatt aus, in dem Du die Änderung vornehmen möchtest.

  4. Füge den folgenden VBA-Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim rngCell As Range
       Set Target = Intersect(Target, Range("A1:I250"))
       If Target Is Nothing Then Exit Sub
       Me.Unprotect ("123")
       For Each rngCell In Target
           rngCell.Locked = True
       Next
       Me.Protect ("123")
    End Sub
  5. Schließe den VBA-Editor und teste die Eingabe in den Zellen A1 bis I250. Nach der Eingabe sollte die Zelle gesperrt sein.


Häufige Fehler und Lösungen

  • Problem: Die Zelle wird nicht gesperrt.

    • Lösung: Stelle sicher, dass Du die Schutzeinstellungen für alle Zellen deaktiviert hast, bevor Du den Blattschutz aktivierst.
  • Problem: Fehlermeldung beim Versuch, eine Zelle zu ändern.

    • Lösung: Überprüfe, ob der Blattschutz aktiv ist. Du musst den Blattschutz vor Änderungen vorübergehend aufheben.

Alternative Methoden

Wenn Du Zellen in Excel sperren möchtest, ohne VBA zu verwenden, kannst Du die folgenden Methoden ausprobieren:

  • Datenüberprüfung: Du kannst Eingaben in bestimmten Zellen durch Datenüberprüfung beschränken. Gehe zu Daten > Datenüberprüfung, um dies einzustellen.

  • Formeln: Du kannst Formeln verwenden, um die Eingaben in bestimmten Zellen zu beschränken, indem Du die WENN-Funktion kombinierst.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Sperren von Zellen in Excel:

  • Beispiel 1: Wenn Du eine Eingabe in Zelle A1 machst, wird diese Zelle automatisch gesperrt, und der Blattschutz bleibt aktiv.

  • Beispiel 2: Du möchtest, dass bestimmte Zellen nach der Eingabe ein Passwort zur Änderung benötigen. Verwende diesen VBA-Code:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       If Target.Locked Then
           If InputBox("Bitte Passwort eingeben") = "Passwort" Then
               ActiveSheet.Unprotect
               Target.Locked = False
               ActiveSheet.Protect
           End If
       End If
    End Sub

Tipps für Profis

  • Verwende Kommentare: Füge Kommentare zu den Zellen hinzu, um andere Benutzer über den Schutz und die Eingabebeschränkungen zu informieren.

  • Prüfe regelmäßig den VBA-Code: Achte darauf, den Code regelmäßig zu überprüfen und anzupassen, um sicherzustellen, dass er den Anforderungen Deiner Tabelle entspricht.

  • Nutze bedingte Formatierung: Du kannst die Zellen visuell hervorheben, die gesperrt sind, um die Benutzerfreundlichkeit zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich Zellen in Excel nach der Eingabe sperren? Du kannst Zellen in Excel nach der Eingabe sperren, indem Du VBA-Code verwendest, der die Zellen sperrt, sobald eine Eingabe erfolgt.

2. Muss ich den Blattschutz jedes Mal aufheben? Ja, der Blattschutz muss vor einer Änderung aufgehoben werden. Du kannst jedoch den Blattschutz innerhalb des VBA-Codes automatisch verwalten.

3. Ist es möglich, einzelne Felder zu sperren? Ja, Du kannst gezielt einzelne Felder sperren, indem Du die Range-Eigenschaft im VBA-Code anpasst.

4. Kann ich das Passwort für den Blattschutz ändern? Ja, Du kannst das Passwort im VBA-Code anpassen, indem Du den entsprechenden Text in den Unprotect und Protect Methoden änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige