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

Forumthread: Zelle entsperren, wenn Bedingung erfüllt

Zelle entsperren, wenn Bedingung erfüllt
Markus
Hallo Zusammen,
ich habe eine Tabelle, in in der ich z.B. in Spalte A einen Namen eingeben will, dies aber nur zulassen will, wenn in Spalte B "erl." bzw. "nein" steht. Andernfall soll die jeweilige Zelle in Spalte A gesperrt sein. Dies soll für jede Zelle in der Tabelle gelten, welche unendlich lang werden kann. Die Tabelle liegt aufm Netz und ist grundsäzlich schreibgeschützt.
Kann man sowas mittels Makro lösen und kennt jemand hierzu eine Lösung.
Danke schon im voraus.
Gruss
Markus
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zelle entsperren, wenn Bedingung erfüllt
17.02.2006 21:56:14
Cardexperte
Hallo,
ja das geht mit einem Makro, eigentlich relativ einfach, hier nur der Weg, wenn du nicht weiter kommst maile nochmal:
also das Makro nutzt ein Worksheet change Ereignis,
es gibt aber im Netz auch dazu viele Beispiele,
also Inhalt ist eigentlich nur , das du mit Target.offset(0,1) die Spalte ausliest und dies als Kriterium für die Eingabe nimmst (ungetestet):
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:a")) Is Nothing Then
If Target.Offset(0, -1).Value "erl." Then Target.value="" else exit sub
usw.
Gruss WS
Anzeige
AW: Zelle entsperren, wenn Bedingung erfüllt
20.02.2006 09:15:44
Markus
Hallo,
erst mal danke, aber leider funktioniert es bei mir nicht. Ich habe an

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a:a")) Is Nothing Then
If Target.Offset(0, -1).Value <> "erl." Then Target.value="" else exit sub
noch:
End If
End Sub

angefügt, bekomme dann aber nur einen Laufzeitfehler.
Meine Makro-Kenntnisse sind extrem gering. Ist das mit dem Sperren und Entsperren der Zellen eigentlich auch in der Lösung enthalten?
Bitte um weitere Hilfe.
Gruss
Markus
Anzeige
AW: Zelle entsperren, wenn Bedingung erfüllt
20.02.2006 12:19:06
Cardexperte
Hallo Markus,
versuchs mal damit:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a:a")) Is Nothing Then
If ActiveCell.Offset(0, 1) <> "erl." And ActiveCell.Offset(0, 1) <> "nein" Then MsgBox ("Diese Zelle kann nur bearbeitet werden, wenn in Nachbarzelle erl. oder nein!"): Exit Sub Else
End If
End Sub

code kommt ins Blatt und habe den auch getestet! Aber Achtung, dann würde ich die Eingae mittels Gültigkeit in Zelle B beschränken, denn wenn jemand z.B. nein mit einem Lerrzeichen eingibt kannst du nicht eingeben!
Gruss WS
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelle entsperren, wenn Bedingung erfüllt


Schritt-für-Schritt-Anleitung

Um eine Excel Zelle zu sperren, wenn eine Bedingung erfüllt ist, kannst du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle das Arbeitsblatt aus, in dem du die Zellen sperren oder entsperren möchtest.

  3. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("A:A")) Is Nothing Then
           If Target.Offset(0, 1).Value <> "erl." And Target.Offset(0, 1).Value <> "nein" Then
               MsgBox "Diese Zelle kann nur bearbeitet werden, wenn in Nachbarzelle 'erl.' oder 'nein' steht!"
               Target.Value = ""
           End If
       End If
    End Sub
  4. Schließe den VBA-Editor.

  5. Teste die Funktion, indem du in die Zellen der Spalte A einen Namen eingibst, während in der Spalte B "erl." oder "nein" steht.


Häufige Fehler und Lösungen

  • Laufzeitfehler: Stelle sicher, dass die Bedingung in der Nachbarzelle korrekt eingegeben ist. Achte auf Leerzeichen.
  • Zelle wird nicht gesperrt: Überprüfe, ob das Makro aktiviert ist. Du kannst dies in den Excel-Optionen unter "Sicherheitscenter" nachsehen.
  • Falsche Zellreferenzen: Achte darauf, dass die Zellreferenzen im Code zu deiner Tabelle passen.

Alternative Methoden

Wenn du Excel Zellen sperren, wenn Bedingungen erfüllt sind, ohne VBA möchtest, kannst du die Datenüberprüfung verwenden:

  1. Wähle die Zellen in Spalte A aus.
  2. Gehe zu Daten -> Datenüberprüfung.
  3. Wähle Benutzerdefiniert aus und gebe folgende Formel ein:

    =ODER(B1="erl."; B1="nein")

Diese Methode verhindert, dass ungültige Eingaben in die Zellen der Spalte A gemacht werden.


Praktische Beispiele

  • Beispiel 1: Wenn in Spalte B "ja" steht, soll die Eingabe in Spalte A erlaubt sein, andernfalls nicht.
  • Beispiel 2: Du kannst auch bedingte Formatierungen verwenden, um Excel Zellen ausgrauen, wenn die Bedingungen nicht erfüllt sind. Dies geschieht über Start -> Bedingte Formatierung.

Tipps für Profis

  • Verwende Namensbereiche, um die Lesbarkeit deines VBA-Codes zu erhöhen.
  • Teste deine Makros immer in einer Kopie deiner Datei, um unbeabsichtigte Datenverluste zu vermeiden.
  • Dokumentiere deinen VBA-Code mit Kommentaren, um später leichter Anpassungen vornehmen zu können.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Bedingungen gleichzeitig prüfen?
Ja, du kannst die UND- oder ODER-Funktion in deinem VBA-Code verwenden, um mehrere Bedingungen zu prüfen.

2. Funktioniert das auch in Excel Online?
Leider sind VBA-Makros in Excel Online nicht verfügbar. Du musst die Desktop-Version verwenden.

3. Wie kann ich Zellen automatisch ausgrauen, wenn die Bedingung nicht erfüllt ist?
Du kannst bedingte Formatierung verwenden, um Zellen zu formatieren, basierend auf dem Inhalt benachbarter Zellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige