Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
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

Zelle bedingt sperren

Zelle bedingt sperren
30.03.2016 13:41:03
Markus
Hallo,
ich hab mal wieder ein kleine Problem bei dem ich trotz langer Suche nicht weiter komm.
Ich habe eine Tabelle bei der in den Zellen D12-D95 entweder "Ja" oder "Nein" eingetragen wird.
Jetzt will ich, dass wenn in einer der Zellen "Ja" steht, z.B. in D12, die Zelle N12 gesperrt ist. Wenn in D12 aber "Nein" steht soll die Zelle M12 gesperrt sein.
Wenn es geht soll die gesperrte Zelle noch grau hinterlegt werden.
Vielen Dank schon mal.

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

Betreff
Datum
Anwender
Anzeige
AW: Zelle bedingt sperren
30.03.2016 13:46:56
selli
hallo markus,
geht nur per vba.
....Problem bei dem ich trotz langer Suche nicht weiter komm.
was hast du denn bis jetzt für einen ansatz?
gruß
selli

AW: Zelle bedingt sperren
30.03.2016 13:50:42
Markus
Hallo Selli, vielen Dank erst mal für die super schnelle Antwort!
Das es nur via VBA geht weiß ich, da ich auf dem Gebiet aber noch ziemlich unerfahren bin suche ich bei euch nach Hilfe :)
Ich hab noch keinen Wirklichen Ansatz, habe mich mal durch Google durchgearbeitet aber nichts passendes gefunden.
Gruß Markus

AW: Zelle bedingt sperren
30.03.2016 13:59:03
selli
hallo markus,
das ins modul des tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Row > 11 And Target.Row 

gruß
selli

Anzeige
AW: Zelle bedingt sperren
30.03.2016 14:27:23
Markus
Nochmal Danke für die schnelle Antwort.
Allerdings passiert bei meiner Tabelle gar nichts wenn ich den Code in das Modul des Tabellenplattes reinkopiere.
Zellen sind weder gesperrt wenn Ja oder Nein drin steht.
Güße

AW: Zelle bedingt sperren
30.03.2016 15:02:24
Steve
Hallo Markus, hallo selli,
Markus, wenn du dir den Namen des Makros anschaust, wirst du sehn dass es sich hier um das Change-Ereignis handelt, welches nur bei einer Änderung in einer Zelle auftritt. Sprich du müsstest jetzt deine Werte erneut in die Zellen schreiben damit der Effekt wirksam wird.
Sellis Makro ist jedoch nur für eine Zelle zugleich ausgelegt. Abgesehen davon dass Spalte M den Index 13 und N 14 trägt und nicht 14 bzw. 15, müsstest du jetzt alle Zellen nacheinander kopieren und wieder einfügen, sonst schmiert dir das Makro ab.
Ich habe daher den Code modifiziert, du kannst damit einfach die komplette Spalte D kopieren und wieder einfügen, damit wird der Effekt für alle betroffenen Zellen im definierten Bereich wirksam.
lg Steve
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, Zelle As Range
Set Bereich = Range("D12:D95")
If Not Intersect(Target, Bereich) Is Nothing Then
ActiveSheet.Unprotect
For Each Zelle In Intersect(Target, Bereich)
Select Case LCase(Zelle)
Case "ja"
Cells(Zelle.Row, 13).Locked = True
Cells(Zelle.Row, 14).Locked = False
Case "nein"
Cells(Zelle.Row, 13).Locked = False
Cells(Zelle.Row, 14).Locked = True
Case Else
Cells(Zelle.Row, 13).Locked = False
Cells(Zelle.Row, 14).Locked = False
End Select
Next Zelle
ActiveSheet.Protect
End If
End Sub

Anzeige
AW: Zelle bedingt sperren
30.03.2016 15:14:27
Markus
Danke für die Mühe, leider tut sich immer noch nichts. Weder bei Ja als auch bei Nein in D12-D95, kann nach wie vor bei "Ja" in Spalte N als auch umgekehrt schreiben.
Muss ich noch was Grundlegendes einstellen damit es funktioniert?
Blattschutz etc.?
Bin in Sachen VBA leider ein vollkommener Anfänger....
Vielen Dank

AW: Zelle bedingt sperren
31.03.2016 10:27:04
Steve
Hallo Markus,
hast du das Makro auch im Code-Bereich der Tabelle in der es aktiv sein soll abgelegt? Es muss zwingend dahin und nicht in ein Modul! Registerkarte des Blattes rechtsklicken, "Code-Anzeigen" wählen und dort einfügen. Anschließend die komplette Spalte D kopieren und an gleicher Stelle wieder einfügen um eine Änderung in allen Zellen zu simulieren.
Der Blattschutz wird am Ende des Makros automatisch gesetzt, ob er vorher drinn war oder nicht spielt keine Rolle. Dass du Spalte D oder andere Zellen in welchen du schreiben möchtest vom Blattschutz ausnimmst versteht sich, sonst könntest du ja garkein "Ja" bzw. "Nein" eingeben.
"Ja" bzw. "Nein" können sowohl komplett als auch teilweise in Groß- als auch Kleinbuchstaben angegeben werden ("jA", "JA", "Ja", "ja"), aber voran-/hintenangestellte Leerzeichen zusätzliche/fehlende Buchstaben bzw. Betonungszeichen auf Buchstaben sind nicht zulässig. Prüfe nochmal die Zellen ob sich da nicht was versteckt hat.
Die Werte sind aber nicht aus einer Formel, oder? Ich habe aus deiner Beschreibung händige Eingaben oder Dropdowns angenommen.
Andere Fehlerquellen fallen mir gerade nicht ein, in meinem kurzen Test gestern hat es einwandfrei funktioniert.
Für den Case "Else" (ansonsten) habe ich den Blattschutz aus den Zellen nehmen lassen (False). Wenn du ihn stattdessen aktiv haben möchtest änderst du bitte die beiden False auf True.
lg Steve

Anzeige
AW: Zelle bedingt sperren
31.03.2016 13:28:33
Markus
Hallo Steve, nach dem ich den Code in den richtigen Bereich geschrieben haben funktioniert alles Optimal!!! Vielen Dank für die professionelle Hilfe!!!
Grüße Markus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige