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

WkShtChange Zellbereiche einfärben mit Zellauswahl

WkShtChange Zellbereiche einfärben mit Zellauswahl
17.08.2016 18:15:08
Martin
Hallo ihr da draußen, insbesondere: hallo Nepumuk (wenn du online bist)
habe alles durchsucht ... komme auf keine Lösung ... benötige wiedermal eure Hilfe:
In meinem Arbeitsblatt gibt es mehrere Zellbereiche: (Bh1,Bh2,Bh3,FFB,Ltg1,Ltg2,Ltg3,Ltg4).
Wenn Zelle "G3" ausgewählt wird, sollen die Bereiche "Bh1" und "Ltg1" rot markiert werden. Wenn "G3" nicht ausgewählt ist, sollen diese Bereiche wieder weiss eingefärbt werden.
So geht das jetzt weiter mit "G4", "G5" und "G6".
G4: Bh1 + Ltg2
G5: Bh2 + Ltg3
G6: Bh3 + Ltg4
Ich habe das gemacht (Code in "Tabelle 1") mit:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$3" Then
Call U11_ein 'diese Sub steht in Modul1 und färbt die Bereiche "Bh1 + Ltg2" rot ein
Else
Call U11_aus 'diese Sub steht in Modul1 und färbt die Bereiche "Bh1 + Ltg2" weiss ein
End If
'Diese "If-Then-Else-Kombination" wiederholt sich jetzt 'mit Target.Adress "G4" / "G5" / "G6" usw. Sub U11_ein() 'in Modul1 Union(Range(Cells(11, 7), Cells(20, 7)), Range(Cells(12, 8), Cells(12, 8))).Interior.ColorIndex _ = 3 End Sub Sub U11_aus() 'in Modul1
Union(Range(Cells(11, 7), Cells(20, 7)), Range(Cells(12, 8), Cells(12, 8))).Interior.ColorIndex = 2
End Sub

Leider funktioniert das nur für die letzten ausgewählten Zellen (G4/G5/G6).
Aber für die erste Zelle "G3" (also die Subs U11_ein und U11_aus) NICHT VOLLSTÄNDIG: Bereich Bh1 bleibt immer weiss!
Die Datei habe ich angehängt(https://www.herber.de/bbs/user/107680.xlsm)
Es wäre schön, wenn ihr mir helfen würdet: Danke im voraus.
Viele Grüße aus dem schönen Mannheim,
Martin

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
noch aktuell?
23.08.2016 16:32:46
Michael
Hi,
es ist immer hilfreich, den Code mit der F8-Taste zeilenweise durchzugehen.
Bei einem Event kannst Du vor die erste Codezeile ein stop schreiben, dann springt Excel während der Ausführung in den Editor.
Wenn Du nun auf G3 (bzw. U11) klickst, passiert das:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Stop
If Target.Address = "$G$3" Then
Call XXX                         ' rot wie vorgesehen
Else
Call U11_aus
End If
If Target.Address = "$G$4" Then
Call U12_ein
Else
Call U12_aus                     ' rot wieder WEG, weil Else ausgeführt wird!!!
End If
usw.
Das läuft daraus hinaus, daß Du alle xxx_aus am besten gleich zu Anfang ausführst und erst dann mit den Ifs nur xxx_ein anwirfst, z.B. so:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("G9:K23").Interior.ColorIndex = 2
If Target.Address = "$G$3" Then Call XXX
If Target.Address = "$G$4" Then Call U12_ein
If Target.Address = "$G$5" Then Call U13_ein
If Target.Address = "$G$6" Then Call U14_ein
End Sub
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige