Automaatinen Calcin taustaväri ?

Hei !

Liian kauan yrittänyt tätä itse ratkoa, vaan ei onnistu.

Pitäis saada solun taustaväri muuttumaan automaattisesti niin, että jos vanha numero korvataan uudella joka on pienempi kuin edellinen, niin taustaväri muuttuu automaattisesti punaiseksi ja edelleen jos luku on suurempi niin sitten väri vaikka vihreäksi.

Selvennys vielä.

Luku on vaikka 4,5
Uusi on 4,7 ja taustaväri muuttuu vihreäksi
Uusi on 4,2 ja taustaväri muuttuu punaiseksi
Uusi on 4,3 ja taustaväri muuttuu vihreäksi

Eli aina edelliseen lukuun verrataan.

Läheltä piti vastauksia on netissä, mutta ei just tätä en ole löytänyt.
2222
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

Vaatinee makron. Yhdessä solussa ei ole arvojen aikasarjaa eikä sitä oikein saa totetuettua useamman solun ketjunakaan, paitsi käsin syöttämällä tai kopioimalla. Taulukkolaskennan idea on olla ajantasalla aina jokaisen muutoksen jälkeen.

Se onkin sitten toinen juttu, mikä olisi kevein makroratkaisu. Taulukkolehden tapahtumiin "Kaavat laskettu" tai "Sisältö muuttunut" sidottu makro saattaisi toimia eikä olisi koko aikaa syömässä prosessoritehoa. Jos ominaisuus halutaan satoihin soluihin taulukossa, makrototeutus saattaa olla hiukka hidas.

Äänestä

REM ***** BASIC *****

Private oListener as Object
Private CellRng as Object
Global prev as variant
Global oSListener As Object
Global oDocView As Object
Global arow as integer
Global acol as integer

Sub AddListener 'Run this first

Dim Doc, Sheet, Cell as Object

Doc = ThisComponent
Sheet = Doc.Sheets.getByIndex(0) 'get leftmost sheet

CellRng = Sheet.getCellrangeByName("A1:A10")

oListener = createUnoListener("Modify_","com.sun.star.util.XModifyListener") 'create a listener
Cellrng.addModifyListener(oListener) 'register the listener

oDocView = ThisComponent.getCurrentController

'create a listener to intercept the selection change event
oRListener = CreateUnoListener( "MyApp_", "com.sun.star.view.XSelectionChangeListener" )

' register the listener to the document controller
oDocView.addSelectionChangeListener(oRListener)


End Sub

Sub Modify_modified(oEv) 'macro jumps here when oListener detects modification of Sheet
CalledRoutine
End Sub

Sub Modify_disposing(oEv)
End Sub

Sub RmvListener
CellRng.removeModifyListener(oListener)
End Sub

Sub CalledRoutine
Sheet = ThisComponent.Sheets.getByIndex(0)
cell = Sheet.getCellByPosition(acol,arow)
if prev>cell.value then cell.CellBackColor=16724787 else cell.CellBackColor=44544
End Sub


REM Run this macro to stop event intercepting:
Sub Remove_Listener
' removes the listener
oDocView.removeSelectionChangeListener(oRListener)
End Sub


REM All listeners must support this event:
Sub MyApp_disposing(oEvent)

End Sub

REM What to do when we get an event:
Sub MyApp_selectionChanged(oEvent)
dim oCurr as object
oCurr = thiscomponent.getcurrentselection
arow=oCurr.getRangeAddress.startrow
acol=oCurr.getRangeAddress.startcolumn
prev=ThisComponent.Sheets(0).getCellByPosition(acol,arow).value
End Sub

sub taustavari
e= ThisComponent.Sheets(0).getCellByPosition(1,7).CellBackColor
print e
end sub

Äänestä

Kommentoi aloitusta


TedSpread kirjoitti:

Hei !

Liian kauan yrittänyt tätä itse ratkoa, vaan ei onnistu.

Pitäis saada solun taustaväri muuttumaan automaattisesti niin, että jos vanha numero korvataan uudella joka on pienempi kuin edellinen, niin taustaväri muuttuu automaattisesti punaiseksi ja edelleen jos luku on suurempi niin sitten väri vaikka vihreäksi.

Selvennys vielä.

Luku on vaikka 4,5
Uusi on 4,7 ja taustaväri muuttuu vihreäksi
Uusi on 4,2 ja taustaväri muuttuu punaiseksi
Uusi on 4,3 ja taustaväri muuttuu vihreäksi

Eli aina edelliseen lukuun verrataan.

Läheltä piti vastauksia on netissä, mutta ei just tätä en ole löytänyt.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu