22. november 2010 - 21:40Der er
10 kommentarer og 1 løsning
Celle farve med RGB værdier.
Hej.
Er der nogen der kan knække denne på en enkelt måde.
I celle A1, B1 og C1 har jeg RGB-værdierne 120,120,120. Nu vil jeg så gerne have cellefarven i D1 udfyldt med denne farve. Er der en funktion / formel hertil?
Fint, tak. Hvad hvis jeg gerne vil have farve i kolnónne D1 til D20 for de RGB data der står i A1 til A20 osv. Hvad hedder det så, er det lige ud med (A1:A20) osv?
Sub test() Dim tal As Integer tal = 1 While tal < 21 'tallet ændres til antal rækker (+1) fx. 20 rækker, derfor 21 Range("D" & tal).Interior.Color = RGB(Range("A" & tal).Value, Range("B" & tal).Value, Range("C" & tal).Value) 'baggrundsfarve
Range("D" & tal).Font.Color = RGB(Range("A" & tal).Value, Range("B" & tal).Value, Range("C" & tal).Value) 'tekstfarve tal = tal + 1 Wend End Sub
Jeg har lavet lidt andet, så du ikke behøver selv at aktivere makroen og du behøver heller ikke at ændre det antal (20) der skal laves farve for. Blot at der er tal i kolonne A-C, så laver den en RGB for de tre tal der er skrevet i cellerne.
Denne kode skal du i modsætningen til den tilligere smide ind under selve arket kode.
Alt+F11, også dobbeltklikker du på det ark som du vil have den skal tjekke i. Fx. Ark1(Ark1)
også indsætter du blot denne kode:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim raekke As Integer If Target.Column < 4 Then raekke = Target.Row If Range("A" & raekke).Value > 0 And Range("B" & raekke).Value > 0 And Range("C" & raekke).Value > 0 Then Range("D" & raekke).Interior.Color = RGB(Range("A" & raekke).Value, Range("B" & raekke).Value, Range("C" & raekke).Value) 'baggrundsfarve Range("D" & raekke).Font.Color = RGB(Range("A" & raekke).Value, Range("B" & raekke).Value, Range("C" & raekke).Value) 'tekstfarve End If End If End Sub
Denne fejler ikke, hvis der fx. bliver indtastet andet end tal i cellerne. Den gør blot farven hvid.
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim raekke As Integer If Target.Column < 4 Then raekke = Target.Row
If IsNumeric(Range("A" & raekke)) And IsNumeric(Range("B" & raekke)) And IsNumeric(Range("C" & raekke)) Then Range("D" & raekke).Interior.Color = RGB(Range("A" & raekke).Value, Range("B" & raekke).Value, Range("C" & raekke).Value) 'baggrundsfarve Range("D" & raekke).Font.Color = RGB(Range("A" & raekke).Value, Range("B" & raekke).Value, Range("C" & raekke).Value) 'tekstfarve Else Range("D" & raekke).Interior.Color = -4105 Range("D" & raekke).Font.Color = -4105 End If End If End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
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.