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

Füllfarbe bei Verlassen der Zelle zurücksetzen

Füllfarbe bei Verlassen der Zelle zurücksetzen
08.05.2019 09:31:07
Axel
Hallo zusammen,
ich möchte bei Klick in eine Zelle einer fest definierten Range, dass sich die Füllfarbe ändert und beim Verlassen der Zelle sich die vorherige Füllarbe wieder herstellt.
Dazu habe ich auch etwas gefunden, dass ich so aber nicht umsetzen kann.
Mit dem unten aufgeführten Makro ändert sich zwar die Füllfarbe beim Klick in die Zelle, aber beim Verlassen der Zelle wird nicht wieder die alte Färbung hergestell.
Ich erbitte eure Unterstützung und bedanke mich vorab.
Gruß
Axel
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Range bei dem eine Änderung etwas bewirken soll
Set changeRange = Range("B19:B30")
If Not Application.Intersect(changeRange, Target) Is Nothing Then
If Target.Interior.Color = RGB(242, 242, 242) Then
Target.Interior.Color = 65535
Else
Target.Interior.Color = RGB(242, 242, 242)
End If
End If
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Füllfarbe bei Verlassen der Zelle zurücksetzen
08.05.2019 09:49:04
Daniel
Hi
mach das so:
diesen Code ins Modul des tabellenblatts.
er hinterlegt die aktive Zelle in einem Namen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ThisWorkbook.Names.Add "aktiveZelle", ActiveCell
Application.ScreenUpdating = True
End Sub
richte dann für die betroffenen Zellen eine bedingte Formatierung mit dieser Formel als regel ein.
sie prüft ob die jeweilige Zelle der aktiven Zelle entspricht.
Über die Bedingte Formatierung bleibt die Originalformatierung erhalten und muss nicht wieder hergestellt werden, das macht Excel automatisch:
=ZELLE("adresse";A1)=ZELLE("adresse";aktiveZelle)

Gruß Daniel
Anzeige
AW: Füllfarbe bei Verlassen der Zelle zurücksetzen
08.05.2019 10:04:32
Axel
Hallo Daniel,
danke für Deine Antwort.
Ich habe folgendes gemacht:
- mein Makro rausgeschmissen
- Dein Makro ins Modul des Tabellenblatts eingefügt
- bedingte Formatierung für die betroffenen Zellen mit Deiner Formel eingerichtet.
Ergebnis:
Wenn ich die betroffenen Zellen anklicke, werden sie nicht eingefärbt (was mein Makro vorher gemacht hatte) und auch sonst passiert nichts mit den formatierten Zellen.
Ich kann auch mein Makro nicht zusätzlich drin lassen, weil es dann einen Konflikt gibt.
Mein Makro hat ja schon die Zellen, die ich in der Range definiert hatte, korrekt eingefärbt. Wenn man dann aus der eingefärbten Zelle rausgeht, bleibt die Zelle eingefärbt und die nächste angeklickte Zelle aus der definierten Range wird auch eingefärbt. Wenn ich dann auf die zuvor eingefärbte Zelle klicke, wird wieder die alte Füllfarbe hergestellt. Ich will nur diesen zusätzlichen Klick nicht machen müssen, sondern, dass die Zelle schon beim Verlassen wieder zur alten Farbe wechselt.
Gruß
Axel
Anzeige
AW: Füllfarbe bei Verlassen der Zelle zurücksetzen
08.05.2019 10:39:06
Daniel
Hi
hast du bedacht, dass du Zelladresse in der Regel "A1" noch ggf an deinen tatsächlichen Zellbereich anpassen musst?
dh wenn die Regel für B19:B30 gelten soll und du beim Einrichten der Bedingten Formatierung diese Zellen markiert hast, musst du das "A1" natürlich durch "B19" ersetzen.
Gruß Daniel
AW: Füllfarbe bei Verlassen der Zelle zurücksetzen
08.05.2019 10:15:41
Torsten
Hallo Axel,
versuch es mal so:
in ein Modul:
Option Explicit
Public OldColorIndex As Variant
Public OldRange As String
in die Tabelle:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'   Beim 1. Aufruf ist OldRange noch undefiniert
If OldRange = "" Then
OldRange = Target.Address
OldColorIndex = Target.Interior.ColorIndex
'       Setze Hintergrundfarbe der aktiven Selection
Target.Interior.Color = RGB(242, 242, 242)
Else
'       Setze alten Range auf alte Farbe
If Range(OldRange).Interior.Color = RGB(242, 242, 242) Then
Range(OldRange).Interior.ColorIndex = OldColorIndex
End If
OldColorIndex = Target.Interior.ColorIndex
'       Merke mir aktuellen Adresse für nächsten Aufruf
OldRange = Target.Address
'       Setze Hintergrundfarbe der aktiven Selection
Target.Interior.Color = RGB(242, 242, 242)
End If
End Sub
Gruss Torsten
Anzeige
AW: Füllfarbe bei Verlassen der Zelle zurücksetzen
08.05.2019 10:23:01
Torsten
sorry, hatte noch vergessen, deine Range einzugrenzen:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Set changeRange = Range("B19:B30")
If Not Application.Intersect(changeRange, Target) Is Nothing Then
'   Beim 1. Aufruf ist OldRange noch undefiniert
If OldRange = "" Then
OldRange = Target.Address
OldColorIndex = Target.Interior.ColorIndex
'       Setze Hintergrundfarbe der aktiven Selection
Target.Interior.Color = RGB(242, 242, 242)
Else
'       Setze alten Range auf alte Farbe
If Range(OldRange).Interior.Color = RGB(242, 242, 242) Then
Range(OldRange).Interior.ColorIndex = OldColorIndex
End If
OldColorIndex = Target.Interior.ColorIndex
'       Merke mir aktuellen Adresse für nächsten Aufruf
OldRange = Target.Address
'       Setze Hintergrundfarbe der aktiven Selection
Target.Interior.Color = RGB(242, 242, 242)
End If
Else
Exit Sub
End If
End Sub

Anzeige
AW: Füllfarbe bei Verlassen der Zelle zurücksetzen
08.05.2019 10:24:26
Axel
Hallo Thorsten,
vielen Dank.
Die Zelle hat bereits eine Graufärbung (.Interior.Color = RGB(242, 242, 242), die nach Verlassen der Zelle wieder hergestellt werden soll.
An welcher Stelle wird bei Deinem Code denn die Zelle gelb (.INTERIOR.COLOR= 65535) beim Klick in die Zelle eingefärbt?
Ich kann doch mit meinem Code gar nicht so weit weg vom Ziel sein, nur dieses "beim Verlassen der Zelle" muss noch eingefügt werden. Mit "Else" funktioniert das nicht.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Range bei dem eine Änderung etwas bewirken soll
Set changeRange = Range("B19:B30")
If Not Application.Intersect(changeRange, Target) Is Nothing Then
If Target.Interior.Color = RGB(242, 242, 242) Then
Target.Interior.Color = 65535
Else
Target.Interior.Color = RGB(242, 242, 242)
End If
End If
End Sub
Gruß
Axel
Anzeige
AW: Füllfarbe bei Verlassen der Zelle zurücksetzen
08.05.2019 10:35:05
Torsten
Sorry, das war nicht ganz klar, dass die Zellen urspruenglich grau sind. Das gelb habe ich glatt uebersehen. Also hier ein neuer Versuch:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Set changeRange = Range("B19:B30")
changeRange.Interior.Color = RGB(242, 242, 242)
If Not Application.Intersect(changeRange, Target) Is Nothing Then
'   Beim 1. Aufruf ist OldRange noch undefiniert
If OldRange = "" Then
OldRange = Target.Address
OldColor = Target.Interior.Color
'       Setze Hintergrundfarbe der aktiven Selection
Target.Interior.Color = 65535
Else
'       Setze alten Range auf alte Farbe
If Range(OldRange).Interior.Color = 65535 Then
Range(OldRange).Interior.Color = OldColor
End If
OldColor = Target.Interior.Color
'       Merke mir aktuellen Adresse für nächsten Aufruf
OldRange = Target.Address
'       Setze Hintergrundfarbe der aktiven Selection
Target.Interior.Color = 65535
End If
Else
Exit Sub
End If
End Sub
Gruss Torsten
Anzeige
gelöst
08.05.2019 10:41:31
Axel
Hi Thorsten,
klasse! So funktioniert es einwandfrei!
Vielen Dank, wie immer tolles Forum, schnelle kompetente Lösung.
Weiter so!
Axel
gerne...
08.05.2019 11:24:20
Torsten
und danke fuer die Rueckmeldung

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige