Avatar billede HBorg Juniormester
22. november 2010 - 21:40 Der 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?
Avatar billede supertekst Ekspert
22. november 2010 - 23:03 #1
VBA:
Sub test()
    Range("D1").Interior.Color = RGB(120, 120, 120) 'baggrundsfarve

    Range("D1").Font.Color = RGB(120, 120, 120)    'tekstfarve
End Sub

ellers via formatpenslen
Avatar billede newbieatphp Nybegynder
22. november 2010 - 23:26 #2
og hvis det skal være med celle ref.:

Sub test()
    Range("D1").Interior.Color = RGB(Range("A1").Value, Range("B1").Value, Range("C1").Value) 'baggrundsfarve

    Range("D1").Font.Color = RGB(Range("A1").Value, Range("B1").Value, Range("C1").Value)    'tekstfarve
End Sub
Avatar billede HBorg Juniormester
23. november 2010 - 00:27 #3
Hej og tak for jeres hurtige input.

Nu er jeg jo ikke ligefrem en VBA freak.
Hvordan indsætter man dette i arket?

Er lidt af en begynder.... :)
Avatar billede newbieatphp Nybegynder
23. november 2010 - 00:34 #4
hvis du trykker ALT+F11 så åbner du editoren.

hvis vinduet "VBAProject" er åbent, så kan du højreklikke der, og indsætte et module.

Det bliver så kaldt Module1, og der kan du så indsætte din kode.

Når du så skal afvikle din kode, så gå op i excels menu: Funktioner, makro, makro. Her finder du så den makro du vil have afviklet.

Jeg ved dog ikke helt hvor de forskellige ting ligger i fx. excel 2007
Avatar billede HBorg Juniormester
23. november 2010 - 00:57 #5
Hej.

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?
Avatar billede newbieatphp Nybegynder
23. november 2010 - 01:03 #6
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
Avatar billede HBorg Juniormester
23. november 2010 - 01:09 #7
Hej Newbie.

Tak. Smid et svar.
Avatar billede newbieatphp Nybegynder
23. november 2010 - 01:12 #8
okay
Avatar billede newbieatphp Nybegynder
23. november 2010 - 01:38 #9
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
Avatar billede newbieatphp Nybegynder
23. november 2010 - 02:31 #10
Den her fejler ikke, hvis der ved en fejl bliver indtastet andet end tal, men 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
Avatar billede newbieatphp Nybegynder
23. november 2010 - 02:32 #11
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester