Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2 Target Zellen

2 Target Zellen
26.06.2007 10:37:00
Robert
Hallo Excelers,
Ich habe wieder mal ein Thema worüber ich nichts gefunden habe. Jedenfalls nichts womit ich das Problem lösen kann.
Ich versuche mal zu erklären. Ich hätte gerne dass wenn in Zelle A1 etwas eingegeben wird, Die Farbe von Zelle A2 geändert wird. Dazu muss die Zelle geschützt werden. So etwas habe ich erreicht mit ..
Private Sub worksheet_change(Byval Target as Range) . Doch es müsste so sein, dass wenn mal nicht in A1 eingegeben wird sondern in A2, dass dann A1 geschützt wird. Absicht ist also wirklich nur dass nur in einer beide Zellen etwas eingetragen werden kann. Vielleicht sieht ihr eine Möglichkeit mich weiter zu helfen.
Freundliche Grüssen,
Robert

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Target Zellen
26.06.2007 11:09:14
Renee
Mazwara Robert,
Das folgende Makro in dem Tabellenblatt, wo Du das wünscht eintragen.
Vorgehen:
1 Wenn Du willst, die Codezeilen mit Const anpassen.
2. Die beiden Zellen (Beispielcode A1 und A2) Format - Zellen - Schutz - [nicht] Gesperrt
3. Tabellenblatt mit dem Passwort (Beispielcode YourPwd) schützen.
Anschliessend sollte es klappen,
Von der Logik her: Es werden beide Zellen freigegeben, wenn nichts eingetragen ist. Also auch dann, wenn der Inhalt der beschriebenen Zelle gelöscht wird.

Private Sub Worksheet_Change(ByVal Target As Range)
Const rC1 = "A1"
Const rC2 = "A2"
Const sPwd = "YourPwd"
If Intersect(Target, ActiveSheet.Range(rC1)) Is Nothing And _
Intersect(Target, ActiveSheet.Range(rC2)) Is Nothing Then Exit Sub
ActiveSheet.Unprotect Password:=sPwd
Select Case Target.Address(False, False)
Case rC1
If Target = "" Then
ActiveSheet.Range(rC2).Locked = False
Else
ActiveSheet.Range(rC2).Locked = True
End If
Case rC2
If Target = "" Then
ActiveSheet.Range(rC1).Locked = False
Else
ActiveSheet.Range(rC1).Locked = True
End If
End Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=sPwd
End Sub


Greetz Renee

Anzeige
AW: 2 Target Zellen
26.06.2007 11:09:24
Hajo_Zi
Hallo Robert,
es muss nicht alles mit VBA gemacht werden. In Excel sin schon Klasse Sachen eingebaut. In Deinem Fall, Format, Bedingte Formatierung, Formel ist =A1""

AW: Hajo hat Recht
26.06.2007 11:19:00
Renee
Hi Robert again,
Hajo hat natürlich recht, aber man müsste das Ganze noch mit der Gültigkeit verbinden.
Also statt VBA, könnte man, Zellen ent-sperren, Blatt schützen, und :

Zelle  Bedingte Formatierung       Gültigkeit
A1   Formel ist =A2"" Muster   Benutzerdefiniert =A2=""
A2   Formel ist =A1"" Muster   Benutzerdefiniert =A1=""


Rgds. Renee

Anzeige
AW: 2 Target Zellen
26.06.2007 11:28:44
gerwas
Hallo
vielleich klappt's so
ins objectModul der entspechenden Sheets kopieren

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect
Range("A1").Locked = False
Range("A2").Locked = False
If Target.Address = ("$A$1") Then
Range("A2").Locked = True
Range("a2").Interior.ColorIndex = 3
Range("a1").Interior.ColorIndex = 0
ElseIf Target.Address = ("$A$2") Then
Range("A1").Locked = True
Range("A1").Interior.ColorIndex = 3
Range("A2").Interior.ColorIndex = 0
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


mfg gerwas

Anzeige
AW: 2 Target Zellen
26.06.2007 21:10:00
Cataal
Hallo Renee, Hajo und Gerwas,
Ich danke für eure Hilfe. Schliessendlich konnte ich das Problem nämlich mit einer Mischung von eure Beispiele lösen .

Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("A1:A2"))
ActiveSheet.Unprotect
Range("A1").Locked = False
Range("A2").Locked = False
If Range("A1") > 0 Then Range("A2").Locked = True
If Range("A2") > 0 Then Range("A1").Locked = True
ActiveSheet.Protect
End Sub


Ist dann mit Hilfe von Conditional formatting eine gute Lösung.
Vielen Dank!
Gruss, Robert

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige