Jeg håber en af jer kan lave en enkel løsning i VBA til mig. Det drejer sig om automatisk farvning af celler.
Normalt vil jeg anvendt conditional formatting, men denne gang skal der mindst anvendes 4 mindst alternativer. Den gamle løsning kan ikke anvendes, da der maksimalt kan laves tre begræsninger i Excel 2003 til XP.
Kort sagt drejer det sig om, at jeg helst grafisk skal vise, når en celle opfylder et krav. Hvis vi betragter cellerne A5:A25, så vil jeg gerne have farvet dem i rød, gul, grøn og blå, når disse opfylder et af de fire krav.
Min ønske er, at jeg skal kunne indtaste et bogstav - A, B, C, D, hvilket svarer til en farve i kolonnen. Eksempelvis:
Celle A5, indtaste A -> cellen rød Celle A6, indtaste D -> cellen grøn Celle A7, indtaste C -> cellen gul Celle A8, indtaste A -> cellen Rød Celle A9, indtaste B -> cellen Blå
Min formodning er, at det kan løses i vba, og jeg vil derfor være glad, hvis der er nogen, som kan give en løsning, hvor det blot er farven og cellerne, der eventuelt skal ændres.
Danmark vil mindske afhængigheden af globale techgiganter, men det kræver mere end politiske formuleringer og strategier, understreger PROSA’s formand Niels Bertelsen.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A5:A25"), Target) Is Nothing Then With Target Select Case Target.Value Case "A" .Interior.ColorIndex = 3 'A = Rød Case "B" .Interior.ColorIndex = 5 'B = Blå Case "C" .Interior.ColorIndex = 6 'C = Gul Case "D" .Interior.ColorIndex = 4 'D = Grøn Case Else 'Tom celle, ingen farve .Interior.ColorIndex = xlNone End Select End With End If End Sub
Følgende kode i arkets Change hændelse virker på alle arkets felter ... uanset om der skrives at lille eller et stort bogstav. Hvis det tastet et andet bogstav end A, B, C eller det, slettes det automatisk og cellen forbliver tom. Hvis et af de indtastede A, B, C eller D´er slettes, ryddes feltets farve automatisk.
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo change_color
'variabler til indtastet celle værdi Dim v As String Dim u As String
'v = aktiv celle værdi v = Target.Value
'u = den aktive celle værdi som stort bogstav u = UCase(v)
'hvis der ikke er tastet noget i den aktive celle If u = "" Then
'ryd cellens farve Target.ClearFormats
'forlad proceduren Exit Sub
Else
Select Case u
'der er tastet A Case "A"
'sæt cellens farve til rød Target.Interior.Color = RGB(255, 0, 0)
'der er tastet B Case "B"
'sæt cellens farve til blå Target.Interior.Color = RGB(0, 0, 255)
'der er tastet C Case "C"
'sæt cellens farve til gul Target.Interior.Color = RGB(255, 255, 0)
'der er tastet D Case "D"
'sæt cellens farve til grøn Target.Interior.Color = RGB(0, 255, 0)
'der er tastet alt andet end A, B, C eller D Case Else
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.