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?
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
Äh, käytä OpenOffice.orgia :D
Miten toi tehään OOo:ssa?
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ä.
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.
Taas varmaakin idioottimainen kysymys, mutta mistähän sellaiset sopivat RGB-arvot voisi löytää eri harmaille? Vai onko vaan googlattava?
Kokeile vaikka http://koti.mbnet.fi/winuus/varikartta.php
harmaillehan on aivan helppo löytää rgb-arvot: kaikkiin sama arvo ja mitä suurempi, sen vaaleampi.
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?
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.