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

Zell-Bereich sperren, wenn bestimmte Zelle leer

Forumthread: Zell-Bereich sperren, wenn bestimmte Zelle leer

Zell-Bereich sperren, wenn bestimmte Zelle leer
09.07.2006 11:56:30
Ina
Guten Morgen Forum,
ich habe eine Frage, besser gesagt, ein - für mich - grosses Problem.
Besteht die Möglichkeit, einen/mehrere Zell-Bereich(e) zu sperren, wenn eine bestimmte Zelle keinen Wert enthält?
Konkret:
Der Bereich C9 - F151 und M9 - M151 in Tabelle1 soll für Eingaben gesperrt sein, wenn Zelle C8 keinen Wert enthält.
Wird ein Wert eingegeben, soll der gesperrte Bereich wieder für Eingaben freigegeben werden.
Kann mir jemeand - vielleicht sogar mit einem Beispiel-Code - weiterhelfen?
Danke für eure Hilfe.
Gruss,
Ina
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zell-Bereich sperren, wenn bestimmte Zelle lee
09.07.2006 12:18:41
Josef
Hallo Ina!
In das Modul der Tabelle.
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Range("C9:F151,M9:M151").Locked = Range("C8") = ""
End Sub


Gruß Sepp

Anzeige
AW: Zell-Bereich sperren, wenn bestimmte Zelle leer
09.07.2006 12:31:53
Ina
Hallo Josef,
danke für Deine Antwort.
Kannst Du mir vielleicht noch einmal helfen?!
Bin leider noch totale Excel-Anfängerin...
Wo kann ich das "Modul der Tabelle" finden? In VBA Microsoft Excel Objecte / Tabelle1?
Danke noch einmal für Deine Hilfe!
Gruss,
Ina
AW: Zell-Bereich sperren, wenn bestimmte Zelle lee
09.07.2006 12:42:37
Josef
Hallo Ina!
Rechtsklick auf das Blattregister &gt Code anzeigen &gt in das rechte fenster den Code kopieren.
Und weil das ganze ja nur in Verbindung mit dem Blattschutz funktioniert, nimm
diesen Code. (C8 muss entsperrt sein!)
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Me.Unprotect
Range("C9:F151,M9:M151").Locked = Range("C8") = ""
Me.Protect
End Sub


Gruß Sepp

Anzeige
AW: Klappt super! Vielen Dank, Josef!
09.07.2006 13:25:54
Ina
Klappt super! Vielen Dank, Josef!
;
Anzeige

Infobox / Tutorial

Zell-Bereich sperren, wenn bestimmte Zelle leer


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei: Stelle sicher, dass du die Tabelle, in der du den Zell-Bereich schützen möchtest, geöffnet hast.

  2. Aktiviere den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Wähle das entsprechende Blatt aus: Finde im Projektfenster das Blatt, auf dem du die Änderungen vornehmen möchtest (z.B. Tabelle1).

  4. Füge den Code ein: Rechtsklicke auf das Blatt und wähle „Code anzeigen“. Füge folgenden Code in das rechte Fenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Me.Unprotect
       Range("C9:F151,M9:M151").Locked = Range("C8") = ""
       Me.Protect
    End Sub
  5. Speichere die Änderungen: Schließe den VBA-Editor und speichere deine Excel-Datei.

  6. Teste die Funktionalität: Gib einen Wert in Zelle C8 ein und überprüfe, ob der Bereich C9:F151 und M9:M151 gesperrt oder freigegeben wird.


Häufige Fehler und Lösungen

  • Fehler: Der geschützte Bereich lässt sich nicht entsperren
    Lösung: Stelle sicher, dass der Code korrekt eingegeben wurde und die Zelle C8 entsperrt ist. Der Blattschutz muss aktiv sein, damit die Änderungen wirksam werden.

  • Fehler: Der Code wird nicht ausgeführt
    Lösung: Überprüfe, ob das Ereignis „Worksheet_Change“ korrekt im richtigen Modul platziert ist. Stelle sicher, dass du im richtigen Arbeitsblatt arbeitest.


Alternative Methoden

Eine andere Möglichkeit, einen Zell-Bereich zu schützen, ist über die „Datenüberprüfung“:

  1. Wähle die Zellen C9:F151 und M9:M151 aus.
  2. Gehe zu „Daten“ -> „Datenüberprüfung“.
  3. Wähle „Benutzerdefiniert“ und gebe die Formel =ISTEXT(C8) ein.
  4. Setze die Eingabemeldung und Fehlermeldung entsprechend deiner Anforderungen.

Diese Methode schützt den Bereich nicht direkt, aber sie verhindert falsche Eingaben, solange C8 leer bleibt.


Praktische Beispiele

Angenommen, du hast in einer Excel-Tabelle ein Formular, in das Benutzer Daten eingeben sollen. Wenn die Eingabe in Zelle C8 nicht erfolgt, sollen die Zellen C9:F151 und M9:M151 automatisch gesperrt werden. Die oben genannten Schritte helfen dir, dies mit VBA zu realisieren.


Tipps für Profis

  • Nutze Kommentare im VBA-Code: Füge Kommentare hinzu, um den Code verständlicher zu machen. Das ist besonders hilfreich, wenn du später Änderungen vornehmen möchtest.
  • Teste den Code in einer Kopie deiner Datei: Bevor du Änderungen an einer wichtigen Tabelle vornimmst, teste den Code in einer Kopie, um Datenverluste zu vermeiden.
  • Sichere deine Arbeitsmappe: Speichere die Datei regelmäßig, um sicherzustellen, dass du immer auf die vorherige Version zurückgreifen kannst, falls etwas schiefgeht.

FAQ: Häufige Fragen

1. Wie kann ich den Zell-Bereich wieder freigeben?
Der Zell-Bereich wird automatisch freigegeben, sobald ein Wert in C8 eingegeben wird. Du musst also nur den Wert ändern.

2. Funktioniert das auch in Excel Online?
Die oben beschriebenen VBA-Methoden funktionieren nur in Desktop-Versionen von Excel. In Excel Online gibt es keine VBA-Unterstützung.

3. Was passiert, wenn ich das Blattschutz-Passwort vergessen habe?
Wenn du das Passwort für den Blattschutz vergessen hast, gibt es leider keine einfache Möglichkeit, den Schutz zu entfernen. Du solltest immer deine Passwörter sicher aufbewahren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige