Hej,
Jag har fått i uppdrag att skapa en excel som visar ett resultat med tillhörande bakgrundfärg beroende på vilka siffor man matar in i föregående två celler - och jag har fått det att fungera, fast troligtvis inte på bästa sätt.
Grunden är en 5x5 matris för riskbedömning som beroende på värdet på sannolikhet och konsekvens ger olika riskfaktorer.
5 R3 R4 R4 R5 R5
4 R2 R3 R4 R5 R5
3 R2 R3 R3 R4 R5
2 R1 R1 R3 R3 R4
1 R1 R1 R2 R2 R3
1 2 3 4 5
Där vertikala raden står för sannolikhet och horisontella är konsekvens. Så Sannolikhet = 1 och Konsekvens = 4, ger R2.
Till detta ska de olika riskfaktorerna ha olika färg:
R1 = grön
R2 = ljusgrön
R3 = gul
R4 = orange
R5 = röd
I själva dokumentet sen så står Konsekvens - Sannolikhet - Risk o kolumner efter varandra, och uppdraget var som sagt att om man fyller i konsekvens och sannolikhet så ska risken trilla ut.
För att få fram rätt riskfaktor konstruerade jag följande formel: =OM(F4*G4<3;"R1";(OM(OCH(F4*G4>14; F4>3);"R5";(OM(F4*G4>9;"R4";(OM(F4*G4>4;"R3";"R2")))))))
- som förmodligen inte är den smidigaste, men den fungerar. (F4 = konsekvens, G4 = sannolikhet)
För att få till färgerna fick jag sedan skapa ett makro, eftersom den villkorsstyrda formateringen bara ger 3 färger. Utgick från ett som jag googlade fram, och gjorde om till detta:
Option Compare Text 'A=a, B=b, ... Z=z
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
Dim Rng1 As Range
On Error Resume Next
Set Rng1 = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, 1)
On Error GoTo 0
If Rng1 Is Nothing Then
Set Rng1 = Range(Target.Address)
Else
Set Rng1 = Union(Range(Target.Address), Rng1)
End If
For Each Cell In Rng1
Select Case Cell.Value
Case vbNullString
Cell.Interior.ColorIndex = xlNone
Cell.Font.Bold = False
Case "R1"
Cell.Interior.ColorIndex = 50
Cell.Font.Bold = True
Case "R2"
Cell.Interior.ColorIndex = 43
Cell.Font.Bold = True
Case "R3"
Cell.Interior.ColorIndex = 6
Cell.Font.Bold = True
Case "R4"
Cell.Interior.ColorIndex = 45
Cell.Font.Bold = True
Case "R5"
Cell.Interior.ColorIndex = 3
Cell.Font.Bold = True
Case Else
Cell.Interior.ColorIndex = xlNone
Cell.Font.Bold = False
End Select
Next
End Sub
- Som också det fungerar, OM man dubbelklickar i riskrutan med formeln och trycker enter. Färgen ändras alltså inte automatiskt när texten ändras.
Min fråga är om det går att få till det så färgen följer med riskfaktorn direkt?
Tack på förhand!
Sandra