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

Zellen färben

Zellen färben
03.09.2005 11:26:34
Erich
Hallo EXCEL-Freunde,
ich habe aus dem Forum einen Code, den ich angepasst habe. Danach wird in den
Zellen E4:E74 der Farbhintergrund angepasst, je nachdem welche Zahl in der Zelle
steht; z. B. 1 = ROT
Ausgelöst wird dies immer wenn ich in A1 klicke.
Da die Zellen E4:E74 Formeln enthalten, hätte ich gerne, dass sich der Farb-
hintergrund bereits ändert, wenn sich das Ergebnis der Formel geändert hat;
z.B. durch Berechnen F9 - geht so was? Hier der Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim gezogen As Range, zeile As Long, Zelle As Range
Dim tip1 As Range, tip2 As Range, tip3 As Range, tip4 As Range, tip5 As Range
Dim tip6 As Range, tip7 As Range, tip8 As Range, tip9 As Range, tip10 As Range
On Error Resume Next
If Target.Count > 1 Or Target.Row > 1 Or Target.Column <> 1 Then Exit Sub
gezogen.Interior.ColorIndex = xlNone
zeile = Target.Row
Set tip1 = Cells(29, 30)
Set tip2 = Cells(30, 30)
Set tip3 = Cells(31, 30)
Set tip4 = Cells(32, 30)
Set tip5 = Cells(33, 30)
Set tip6 = Cells(34, 30)
Set tip7 = Cells(35, 30)
Set tip8 = Cells(36, 30)
Set tip9 = Cells(37, 30)
Set gezogen = Range(Cells(4, 5), Cells(74, 5))
For Each Zelle In gezogen
If WorksheetFunction.CountIf(tip1, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 3
If WorksheetFunction.CountIf(tip2, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 22
If WorksheetFunction.CountIf(tip3, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 40
If WorksheetFunction.CountIf(tip4, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = xlNone
If WorksheetFunction.CountIf(tip5, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = xlNone
If WorksheetFunction.CountIf(tip6, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = xlNone
If WorksheetFunction.CountIf(tip7, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 43
If WorksheetFunction.CountIf(tip8, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 10
If WorksheetFunction.CountIf(tip9, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 4
Next
End Sub

Besten Dank für eine Hilfe!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
Private Tippgemeinschaft für Lotto oder KENO: http://www.kenostrategen.de

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen färben
03.09.2005 12:39:49
ransi


      
Hallo erich
wenn der code bei der berechnung angestossen werden soll brauchst du auch
das entsprechende ereigniss:
Versuch mal so  (ungetestet):
Option Explicit
Private Sub Worksheet_Calculate()
    
Dim gezogen As Range, zeile As Long, Zelle As Range
    
Dim tip1 As Range, tip2 As Range, tip3 As Range, tip4 As Range, tip5 As Range
    
Dim tip6 As Range, tip7 As Range, tip8 As Range, tip9 As Range, tip10 As Range
On Error Resume Next
gezogen.Interior.ColorIndex = xlNone
zeile = Target.Row
Set tip1 = Cells(29, 30)
Set tip2 = Cells(30, 30)
Set tip3 = Cells(31, 30)
Set tip4 = Cells(32, 30)
Set tip5 = Cells(33, 30)
Set tip6 = Cells(34, 30)
Set tip7 = Cells(35, 30)
Set tip8 = Cells(36, 30)
Set tip9 = Cells(37, 30)
Set gezogen = Range(Cells(4, 5), Cells(74, 5))
For Each Zelle In gezogen
    
If WorksheetFunction.CountIf(tip1, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 3
    
If WorksheetFunction.CountIf(tip2, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 22
    
If WorksheetFunction.CountIf(tip3, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 40
    
If WorksheetFunction.CountIf(tip4, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = xlNone
    
If WorksheetFunction.CountIf(tip5, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = xlNone
    
If WorksheetFunction.CountIf(tip6, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = xlNone
    
If WorksheetFunction.CountIf(tip7, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 43
    
If WorksheetFunction.CountIf(tip8, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 10
    
If WorksheetFunction.CountIf(tip9, Zelle.Value) > 0 Then Zelle.Interior.ColorIndex = 4
Next
End Sub
ransi 


Anzeige
AW: Zellen färben
03.09.2005 13:16:46
Erich
Hallo ransi,
besten Dank - musste nur die Zeile: "zeile = Target.Row" entfernen, dann gings.
Das ist jetzt ne Super-Lösung.
Bei den Variablen tip1-10 habe ich mal irgendwo gesehen, dass man die auf einmal
definieren kann, so dass man dann problemlos auf 1-20 oder so erweitern kann,
weiss aber nicht mehr wo. Mit welchem Suchbegriff könnte ich da evtl. fündig werden,
oder hast Du da auch noch eine Lösung?
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
Private Tippgemeinschaft für Lotto oder KENO: http://www.kenostrategen.de
Anzeige
AW: Zellen färben
03.09.2005 15:00:54
Nepumuk
Hallo Erich,
wozu tip1 - 9 überhaupt als Range definieren, wenn du sowieso nur auf den Zellwert zugreifst? So dürfte es allemal schneller sein:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Calculate()
    Dim Zelle As Range, tip As Variant
    tip = Range(Cells(29, 30), Cells(37, 30)).Value
    For Each Zelle In Range(Cells(4, 5), Cells(74, 5))
        Select Case Zelle.Value
            Case tip(1, 1): Zelle.Interior.ColorIndex = 3
            Case tip(2, 1): Zelle.Interior.ColorIndex = 22
            Case tip(3, 1): Zelle.Interior.ColorIndex = 40
            Case tip(7, 1): Zelle.Interior.ColorIndex = 43
            Case tip(8, 1): Zelle.Interior.ColorIndex = 10
            Case tip(9, 1): Zelle.Interior.ColorIndex = 4
            Case Else: Zelle.Interior.ColorIndex = xlNone
        End Select
    Next
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige