Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Solun väri

Sivun loppuun

butterfly [25.01.2008 08:54:05]

#

Hei, tuli pieni ongelma vastaan. Haluaisin tehdä sellaisen koodin, että nappia painamalla saisin aikaiseksi niin, että taulukossani kaikki solut joissa luku 1 koko solun väri muuttuisi vaalean harmaaksi. Solut jossa luku 2 hieman tummemman harmaaksi etc. lukuun 8 asti. Käytössäni on excel 2007, joten jos oikein olen ymmärtänyt eri harmaansävyt pitäisi riittää. Osaisiko joku auttaa?

Blaze [25.01.2008 09:02:49]

#

Eikös Excel 2007:ssa voi tehdä tuon ihan solun tyyleillä?
Nopsan googletuksen tulos: http://msdn2.microsoft.com/en-us/library/bb286672(office.11).aspx

rautamiekka [25.01.2008 17:03:17]

#

Äh, käytä OpenOffice.orgia :D

Blaze [25.01.2008 19:13:32]

#

Miten toi tehään OOo:ssa?

butterfly [28.01.2008 11:35:47]

#

No nyt on kuitenkin käytössä excel 2007 ja pitäisi saada 8 eri harmaansävyä käyttöön, onko niin montaa muuten edes vanhemmissa versioissa. Ajattelin jos joku olis osannu auttaa jonkinlaisen koodin kanssa, kun tämän täytyisi toimia niin että voi nappia napsauttamalla vaihtaa niin että näkyy joko numerot tai sitten eri harmaansävynä.

Temsku [28.01.2008 14:36:38]

#

Range("A1:A6").Interior.Color = RGB(200,160,35)

Tuo muuttaa esimerkiksi solut A1,A2,A3,A4,A5 ja A6 oransseiksi. Käytössä on siis vaikka kuinka paljon eri harmaasävyjä, kun tietää sopivat RGB-arvot.

Toinen vaihtoehto on käyttää ColorIndexiä, esimerkiksi

Range("A1:A6").Interior.ColorIndex = 36

muuttaa vastaavat solut vaaleankeltaiseksi.

Käytännössä siis käyt läpi kaikki solut silmukassa, ja muutat solun haluamasi väriseksi. Lisäksi täytyy myös tekstin väri muuttaa saman väriseksi, jotta numeroarvo ei paista läpi (jos siis et sen halua numeron näkyvän harmaissa soluissa).

Toiseen suuntaan voit sitten muuttaa kaikkien solujen värin valkoiseksi ja tekstit takaisin alkuperäisen väriseksi.

Alkuun voit tehdä yksinkertaisen tarkistuksen vaikka tutkimalla ensimmäisen solun väriä, jolla saadaan selville kummassa tilassa ollaan.

butterfly [28.01.2008 17:33:04]

#

Taas varmaakin idioottimainen kysymys, mutta mistähän sellaiset sopivat RGB-arvot voisi löytää eri harmaille? Vai onko vaan googlattava?

Temsku [28.01.2008 17:54:53]

#

Kokeile vaikka http://koti.mbnet.fi/winuus/varikartta.php

Dude [28.01.2008 20:47:25]

#

harmaillehan on aivan helppo löytää rgb-arvot: kaikkiin sama arvo ja mitä suurempi, sen vaaleampi.

butterfly [29.01.2008 12:18:58]

#

Kiitos kaikille avusta, johan löytyi harmaan sävyjä. Onnistuin saamaan koodini näyttämään tältä:

Sub ClorCells()
Dim cell As Range
For Each cell In ActiveSheet.UsedRange
    Select Case cell.Value
        Case 1
          cell.Interior.Color = RGB(40, 40, 40)
        Case 2
          cell.Interior.Color = RGB(80, 80, 80)
        Case 3
          cell.Interior.Color = RGB(120, 120, 120)
        Case 4
          cell.Interior.Color = RGB(150, 150, 150)
        Case 5
          cell.Interior.Color = RGB(180, 180, 180)
        Case 6
          cell.Interior.Color = RGB(220, 220, 220)
        Case 7
          cell.Interior.Color = RGB(240, 240, 240)
        Case 8
          cell.Interior.Color = RGB(260, 260, 260)
    End Select
Next cell
End Sub

Kuinkahan tähän saisi lisättyä vielä sellaisen, että luvut solun sisältäkin vaihtaisi väriä? ja että saisin nappia napsauttamalla toimimaan toisin päin?

Temsku [29.01.2008 12:59:43]

#

Exelissä on ihan tehokas Makron nauhoitussysteemi, jonka avulla saa helposti selville miten tietty toiminta suoritetaan koodin avulla. Kannattaa kokeilla.

Tässä tapauksessa

cell.Font.Color = RGB(x, x, x)

voisi toimia aika kätevästi.

Tee ohjelmaan alkuun tarkistus, jossa tarkistat vaikka tietyn solun värin. Jos solu on valkoinen, lähdet muuttamaan soluja ja niiden sisällä olevia numeroita harmaiksi. Jos taas solun väri on harmaa, muutat kaikkien solujen värit valkoiseksi ja fonttien värit mustaksi.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta