gibt es eine Möglichkeit, nach einem Klick in eine Zelle (bsp. A1) bestimmte andere Zellen farblich hervorzuheben. Diese Markierung soll, wenn möglich nach einer EIngabe in einer dieser Zellen wieder aufgelöst bzw. entfernt werden.
Also Klick in A1
Hervorhebung von B2, B3, B4, B5
Dann Eingabe in eine Zelle von B2, B3, B4, B5 und danach die Löschung der Hervorhebung.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$1" Then Range("B2:B5").Interior.Color = vbRed End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Dim rngBereich As Range Set rngBereich = Range("B2:B5") If Not Intersect(Target, rngBereich) Is Nothing Then Target.Interior.Color = xlNone End If End Sub
Danke für die schnelle Hilfe. Allerdings muss ich dann nur in eine Zelle von B2:b5 etwas reinschreiben und danach sollen alle Farbveränderungen wieder aufgehoben werden.
Oder gibt es kein Script, dass ich auf einen Button setzen kann, der das Aufheben erledigt?
Private Sub Worksheet_Change(ByVal Target As Range) Dim rngBereich As Range Set rngBereich = Range("B2:B5") If Not Intersect(Target, rngBereich) Is Nothing Then rngBereich.Interior.Color = xlNone End If End Sub
... und wenn du mit $A$1 das Färben einleitest, könntest du mit $B$1 das "Entfärben" durchführen:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$1" Then Range("B2:B5").Interior.Color = vbRed If Target.Address = "$B$1" Then Range("B2:B5").Interior.Color = xlNone End Sub
Es gibt viele Möglichkeiten, z.B. auch durch einen Doppelklick auf eine bestimmte Zelle (hier $B$1):
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$B$1" Then Cancel = True Range("B2:B5").Interior.Color = xlNone End If End Sub
Ist es denkbar, dass eure Lösungen ein bereits vorhandenes Format ungefragt überschreibt? Ich hätte ja vielleicht etwas mit VBA-gesteuerter bedingter Formatierung … Aber der TE ist "abwegigen" Lösungen ja eher unaufgeschlossen, wie ich erfahren durfte.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
selbstverfreilich werden dabei ungefragt vorherige Formatierungen überschrieben da aber in der Aufgabenstellung davon nüscht zu lesen war, ist für mich damit die Lösung gefunden :19: sollte dann mit Salamitaktik neue Anforderungen gestellt werden, mach ich den Hajo :05:
du hast vollkommen Recht, aber er fragte nach einer Aktion, die durch einen Klick in eine Zelle ausgelöst wird - und das macht die bedingte Formatierung meiner Meinung nach nicht. Ich würde das auch eher über unterschiedliche Zellinhalte und bedingter Formatierung lösen, zumal ich dann nicht zwischen Maus und Tastatur wechseln muss. Aber jeder Jeck ist anders - wie man in Kölle sagt
Zitat:aber er fragte nach einer Aktion, die durch einen Klick in eine Zelle ausgelöst wird - und das macht die bedingte Formatierung meiner Meinung nach nicht.
Doch doch, das geht! :21: (und hat den Vorteil, dass es sich nur um eine temporäre Formatierung - ganz ohne modulweite Variablen - handelt)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Aufgrund der PN von LuckyJoe habe ich mich entschlossen, die Vorgehensweise der temporären bed. Form. zur farblichen Markierung (ohne Variablen) mal der Allgemeinheit zu zeigen:
Modul Modul1
OptionExplicit
Sub BFneu() With Range("B2:B5") .FormatConditions.Add Type:=xlExpression, Formula1:="=1=1" .FormatConditions(.FormatConditions.Count).SetFirstPriority .FormatConditions(1).Interior.Color = vbRed EndWith EndSub
Sub WegDamit() OnErrorResumeNext With Range("B2:B5") .FormatConditions(.FormatConditions.Count).Delete EndWith OnErrorGoTo 0 EndSub