Ralf Brinkmann
1970-01-01 00:00:00 UTC
Hallo Alle,
ich hatte hier mal von, ich glaube, Melanie eine tolle "Formel" bekommen, mit
der ich auf einen Rutsch in all meinen zwölf Monatsblättern des Dienstplanes
die jeweiligen Dienstgruppen (A bis E) in den Zellen B4 bis BK4 in einer Art
"bedingter Formatierung" unterschiedlich einfärben konnte:
Option Explicit
Private Sub Worksheet_Calculate()
On Error GoTo ErrorHandler
Application.ScreenUpdating = False
Dim Zelle As Range
For Each Zelle In Range("B4:BK4")
Select Case Zelle.Value
Case "A"
Zelle.Interior.ColorIndex = 50 'Grün
Case "B"
Zelle.Interior.ColorIndex = 6 'Gelb
Case "C"
Zelle.Interior.ColorIndex = 3 'Rot
Case "D"
Zelle.Interior.ColorIndex = 41 'Blau
Case "E"
Zelle.Interior.ColorIndex = 1 'Schwarz
Zelle.Font.ColorIndex = 2 'Weiß
Case Else
Zelle.Interior.ColorIndex = xlNone 'keine
End Select
Next
ErrorHandler:
Application.ScreenUpdating = True
End Sub
Dieses Ding habe ich in jedem einzelnen Tabellenblatt untergebracht, also 12
mal.
Schlau, wie ich hier mittlerweile geworden bin :-), wollte ich das nun
vereinfachen und überall rauslöschen und nur noch vorne in "Diese
Arbeitsmappe" drin stehen haben. Also habe ich es wie folgt einfach in der
zweiten Zeile abgeändert:
Option Explicit
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
'Private Sub Worksheet_Calculate()
On Error GoTo ErrorHandler
Application.ScreenUpdating = False
Dim Zelle As Range
For Each Zelle In Range("B4:BK4")
Select Case Zelle.Value
Case "A"
Zelle.Interior.ColorIndex = 50 'Grün
Case "B"
Zelle.Interior.ColorIndex = 6 'Gelb
Case "C"
Zelle.Interior.ColorIndex = 3 'Rot
Case "D"
Zelle.Interior.ColorIndex = 41 'Blau
Case "E"
Zelle.Interior.ColorIndex = 1 'Schwarz
Zelle.Font.ColorIndex = 2 'Weiß
Case Else
Zelle.Interior.ColorIndex = xlNone 'keine
End Select
Next
ErrorHandler:
Application.ScreenUpdating = True
End Sub
Leider ändert das mir die Farben jetzt nur noch in der aktuellen Tabelle. Auf
den Folgeblättern gibt es Kuddelmuddel.
Was habe ich vergessen?
Gruß, Ralf
ich hatte hier mal von, ich glaube, Melanie eine tolle "Formel" bekommen, mit
der ich auf einen Rutsch in all meinen zwölf Monatsblättern des Dienstplanes
die jeweiligen Dienstgruppen (A bis E) in den Zellen B4 bis BK4 in einer Art
"bedingter Formatierung" unterschiedlich einfärben konnte:
Option Explicit
Private Sub Worksheet_Calculate()
On Error GoTo ErrorHandler
Application.ScreenUpdating = False
Dim Zelle As Range
For Each Zelle In Range("B4:BK4")
Select Case Zelle.Value
Case "A"
Zelle.Interior.ColorIndex = 50 'Grün
Case "B"
Zelle.Interior.ColorIndex = 6 'Gelb
Case "C"
Zelle.Interior.ColorIndex = 3 'Rot
Case "D"
Zelle.Interior.ColorIndex = 41 'Blau
Case "E"
Zelle.Interior.ColorIndex = 1 'Schwarz
Zelle.Font.ColorIndex = 2 'Weiß
Case Else
Zelle.Interior.ColorIndex = xlNone 'keine
End Select
Next
ErrorHandler:
Application.ScreenUpdating = True
End Sub
Dieses Ding habe ich in jedem einzelnen Tabellenblatt untergebracht, also 12
mal.
Schlau, wie ich hier mittlerweile geworden bin :-), wollte ich das nun
vereinfachen und überall rauslöschen und nur noch vorne in "Diese
Arbeitsmappe" drin stehen haben. Also habe ich es wie folgt einfach in der
zweiten Zeile abgeändert:
Option Explicit
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
'Private Sub Worksheet_Calculate()
On Error GoTo ErrorHandler
Application.ScreenUpdating = False
Dim Zelle As Range
For Each Zelle In Range("B4:BK4")
Select Case Zelle.Value
Case "A"
Zelle.Interior.ColorIndex = 50 'Grün
Case "B"
Zelle.Interior.ColorIndex = 6 'Gelb
Case "C"
Zelle.Interior.ColorIndex = 3 'Rot
Case "D"
Zelle.Interior.ColorIndex = 41 'Blau
Case "E"
Zelle.Interior.ColorIndex = 1 'Schwarz
Zelle.Font.ColorIndex = 2 'Weiß
Case Else
Zelle.Interior.ColorIndex = xlNone 'keine
End Select
Next
ErrorHandler:
Application.ScreenUpdating = True
End Sub
Leider ändert das mir die Farben jetzt nur noch in der aktuellen Tabelle. Auf
den Folgeblättern gibt es Kuddelmuddel.
Was habe ich vergessen?
Gruß, Ralf