AW: VBA code kombinieren & Änderungen farbig markieren
24.01.2015 14:18:20
fcs
Hallo Werner,
ich hab dir mal was gebastelt.
Kombinieren kann man das nur in soweit, dass man vor dem Erfassen/Markieren von Änderungen die schon vorhandenen Markierungen löscht, d.h. durch die den Zellinhalten entsprechenden Farben ersetzt.
Die Case-Zeilen kann vereinfachen. Alle Werte, die die gleiche Zellfarbe liefern sollen, kann man in einer Case-Anweisung angeben.
Gruß
Franz
'Code unter das entsprechende Tabellenblatt!
Private AlterWert As Variant
Private Const strBereich As String = "A1:BF385" 'auf Änderungen zu überwachender Bereich, ggf. _
apassen
Private Const lngMarkerFarbe As Long = 4 'hellgrün - ColorIndex der Farbe von Änderungen ggf. _
anpassen
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
AlterWert = Target
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errExit
If Intersect(Target, ActiveSheet.Range(strBereich)) Is Nothing Then Exit Sub
If Target AlterWert Then
Target.Interior.ColorIndex = lngMarkerFarbe 'hellgrün
End If
errExit:
End Sub
Sub AenderungsMarkierungenLoeschen()
Application.ScreenUpdating = False
Call prcZelleColorieren(Bereich:=Me.Range(strBereich))
Application.ScreenUpdating = True
End Sub
'Makro-Code in einem allgemeinen Modul einfügen, wenn er für mehrere Tabellenblätter gemeinsam _
_
genutzt werden soll
Sub prcZelleColorieren(Bereich As Range)
Dim Zelle As Range
For Each Zelle In Bereich
With Zelle.Interior
Select Case Zelle.Value
Case "S": .ColorIndex = 23 'dunkel-blau
Case "Zu", "ZU": .ColorIndex = 6 'gelb
Case "SU", "Su": .ColorIndex = 6 'gelb
Case "xF", "XF": .ColorIndex = 46 'orange
Case "K", "k": .ColorIndex = 3 'rot
Case "Ko", "ko": .ColorIndex = 54 'dunkel-violett
Case "N", "n": .ColorIndex = 32 'blau
Case "N1", "n1": .ColorIndex = 11 'sehr-dunkel-blau
Case "F1", "F2", "F3", "F4": .ColorIndex = 37 'hell-blau
Case "D": .ColorIndex = 43 'oliv
Case "S1", "S2": .ColorIndex = 38 'hell-violett
Case "FTN": .ColorIndex = 26 'magenta
Case "U", "u": .ColorIndex = 6 'gelb
Case "SN", "SN1": .ColorIndex = 12 'braun-gelb/dunkel-Oliv
' Auf Wunsch hier die Reihe fortsetzen
Case Else
.ColorIndex = xlColorIndexNone
End Select
End With
Next
End Sub