Avatar billede svelmoe Nybegynder
25. oktober 2007 - 19:45 Der er 30 kommentarer og
1 løsning

farvekode i celle som definere celle bagrundens farve

hejsa eksperter. Da jeg ikke har så meget forstand på excel henvender jeg mig til jer...

Jeg har en side med en formel som ved farvevalg poster en farvekode ind i en mysql database.

denne database skal eksporteres til en ecxel fil. dette er ikke noget problem.

men i den kolonne hvor farvekoden er postet i. vil jeg gerne have den til at ændre baggrundsfarve alt efter hvilken farvekode der er indsat.

kan dette lade sig gøre? og hvordan?

Mvh. Svelmoe
Avatar billede excelent Ekspert
25. oktober 2007 - 19:50 #1
fx.

Sub test()
For Each c In Range("A1:A5")
c.Interior.ColorIndex = c
Next
End Sub
Avatar billede svelmoe Nybegynder
25. oktober 2007 - 19:58 #2
kan jeg bede dig om at "guide" mig lidt til hvor man skal indsætte den funktion og sådan?

har desværre ikke den store kundskab i programmet
Avatar billede excelent Ekspert
25. oktober 2007 - 20:03 #3
Marker og kopier koden herfra
Tilbage i din projektmappe taster du ALT+F11
Vælg Module i menuen Insert
paste koden i vindue som fremkommer
Tast ALT+Q for at returnere til arket
Tast ALT+F8, marker "test" og klik Afspil/Run
Avatar billede excelent Ekspert
25. oktober 2007 - 20:04 #4
Range("A1:A5")
skal rettes så det dækker dit aktuelle område
Avatar billede svelmoe Nybegynder
25. oktober 2007 - 20:06 #5
mine farvekoder spænder over alle #xxxxxx websafe skemaet, kan det ikke autodefineres på en måde?
Avatar billede excelent Ekspert
25. oktober 2007 - 20:08 #6
vis lige et par eks. af dine koder
Avatar billede svelmoe Nybegynder
25. oktober 2007 - 20:11 #7
#0000FF, #000000, #FFFFFF osv..  sådan står de bare i en kolonne der hedder "overflade". eller vil du se kode helt inde fra min mysql insert?
Avatar billede excelent Ekspert
25. oktober 2007 - 20:15 #8
Excel opererer med farvekoder 0 til 56 (så vidt jeg ved)
er det hex-tal du har der ?
Avatar billede svelmoe Nybegynder
25. oktober 2007 - 20:16 #9
hmm ved ikke helt om det hedder hex-tal. men det er kode du kan bruge i photoshop og de fleste andre programmer jeg kender
Avatar billede svelmoe Nybegynder
25. oktober 2007 - 20:22 #10
har lige teste fra photoshop til excel:

koden #ff4b10 eller R:255 G:75 B:16 i photoshop

kan indtastes i excel i RGB felterne og give den samme farve som i photoshop.

så det er vel et spørgsmål om at få det om regnet til RGB og så til excels koder?
Avatar billede excelent Ekspert
25. oktober 2007 - 20:27 #11
ok prøver lige at kikke på det
Avatar billede svelmoe Nybegynder
25. oktober 2007 - 20:28 #12
mange tak :)
Avatar billede excelent Ekspert
25. oktober 2007 - 22:00 #13
I hvilken kolonne har du farvekoder ?
Hvad hedder arket?
Har du en ledig celle jeg kan anvende i arket ?
Avatar billede kabbak Professor
25. oktober 2007 - 23:25 #14
Prøv denne

Sub test()
Dim Red As String
Dim Green As String
Dim Blue As String
For Each C In Range("A1:A15")
If C <> "" Then
Red = Val("&H" & Mid(C, 1, 2))
    'The red value is now the long version of "00"
Green = Val("&H" & Mid(C, 3, 2))
    'The red value is now the long version of "FF"
Blue = Val("&H" & Mid(C, 5, 2))
    'The red value is now the long version of "1F"
C.Interior.Color = RGB(Red, Green, Blue)
End If
Next
End Sub
Avatar billede kabbak Professor
26. oktober 2007 - 00:23 #15
Eller denne

Public Sub Test()
    For Each c In Range("A1:A5")
    Dim A As Long
        If c <> "" Then
            A = CLng("&h" & Right(c, Len(c) - 1))
      c.Interior.Color = RGB(GetRGB(A, 1), GetRGB(A, 2), GetRGB(A, 3))
        End If
    Next
End Sub

Function GetRGB(RGBval As Long, Num As Integer) As Integer
' Check if Num, RGBval are valid.
If Num > 0 And Num < 4 And RGBval > -1 And RGBval < 16777216 Then
  GetRGB = RGBval \ 256 ^ (Num - 1) And 255
Else
' Return True (-1) if Num or RGBval are invalid.
  GetRGB = True
End If
End Function
Avatar billede excelent Ekspert
26. oktober 2007 - 06:32 #16
Sub koder()

kol = 5 ' 5 = kolonne E, ret 5 til aktuel kolonne hvor dine koder er

For t = 2 To Sheets("Ark4").Cells(65500, kol).End(xlUp).Row ' ret til aktuel ark
r = "&H" & Mid(Cells(t, kol), 2, 2)
g = "&H" & Mid(Cells(t, kol), 4, 2)
b = "&H" & Mid(Cells(t, kol), 6, 2)
Cells(t, kol).Interior.Color = RGB(r, g, b)
Next

End Sub
Avatar billede svelmoe Nybegynder
26. oktober 2007 - 08:12 #17
Hejsa, sorry jeg gik kold igår.. hvilken af de 3 posts skal jeg bruge?

og skal jeg rette noget selv?

arket hedder reg_db kolonnen hedder "overflade"
Avatar billede svelmoe Nybegynder
26. oktober 2007 - 08:23 #18
hov opdagede lige at jeg heller må kalde kolonne for række i stedet :)

men det er hele række M
Avatar billede excelent Ekspert
26. oktober 2007 - 11:21 #19
tag den der passer bedst

Sub koder()

For t = 2 To Sheets("reg_db").Cells(65500, "M").End(xlUp).Row
r = "&H" & Mid(Cells(t, "M"), 2, 2)
g = "&H" & Mid(Cells(t, "M"), 4, 2)
b = "&H" & Mid(Cells(t, "M"), 6, 2)
Cells(t, "M").Interior.Color = RGB(r, g, b)
Next

End Sub
Avatar billede svelmoe Nybegynder
26. oktober 2007 - 11:26 #20
så virker den på 1 farve.. kan man ikke lave noget så den virker på alle farvekoder der kan sammensættes?
Avatar billede svelmoe Nybegynder
26. oktober 2007 - 11:29 #21
og så bliver den negativfarven i excel? hehe
Avatar billede excelent Ekspert
26. oktober 2007 - 16:30 #22
har testet på følgende koder og får:

#000000 - sort
#FF0000 - rød
#ff4b10 - orange
#00FF00 - grøn
#0000FF - blå

hvad mener du med 1 farve/negativ farve ?
Avatar billede svelmoe Nybegynder
27. oktober 2007 - 21:08 #23
Vil det sige at koden reagere på hele "overflade" rækken? jeg fik bare en runtime error.

da jeg fik den til at reagere på den ene farvekode, var det ikke den farve som farvekoden giver, men negativen af den.. du ved den modsatte farve.
Avatar billede svelmoe Nybegynder
27. oktober 2007 - 21:09 #24
1 farve = en af farvene i rækken. men kun en.
Avatar billede excelent Ekspert
27. oktober 2007 - 21:16 #25
er alle dine koder i formatet #xxxxxx (altså 7 tegn) ?

send evt. dit ark til pm@madsen.tdcadsl.dk
Avatar billede svelmoe Nybegynder
29. oktober 2007 - 09:21 #26
ja det er de. jeg har lige sendt dig et ark:)
Avatar billede svelmoe Nybegynder
29. oktober 2007 - 09:29 #27
Da jeg 2 gange har sendt en forkert fil til dig over mail. kan den rigtige hentes her.

http://www.landligferie.dk/reg_db.xls
Avatar billede excelent Ekspert
29. oktober 2007 - 15:43 #28
ok den skulle lige rettes lidt til prøv:

Sub koder()

For t = 2 To Sheets(1).Cells(65500, "M").End(xlUp).Row
If Left(Cells(t, "M"), 1) = "#" Then
r = "&H" & Mid(Cells(t, "M"), 2, 2)
g = "&H" & Mid(Cells(t, "M"), 4, 2)
b = "&H" & Mid(Cells(t, "M"), 6, 2)
Cells(t, "M").Interior.Color = RGB(r, g, b)
End If
Next

End Sub
Avatar billede svelmoe Nybegynder
30. oktober 2007 - 08:32 #29
skulle den farve virke på alle #XXXXXX, eller kun en bestemt?
Avatar billede svelmoe Nybegynder
30. oktober 2007 - 08:36 #30
yes sir, så virker den :) mange tak! du lægger bare et svar
Avatar billede excelent Ekspert
30. oktober 2007 - 10:26 #31
ok velbekom
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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