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.
Automaatinen Calcin taustaväri ?
2
124
Vastaukset
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.- ...
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
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 904666
- 293354
- 2013172
- 513017
- 242945
Miten hitsissä ulosoton asiakas?
On tää maailma kumma, tässä haisee suuri kusetus ja ennennäkemättömän törkeä *huijaus*! Miten to.monen kieroilu on edez3212786Kuule rakas...
Kerrohan minulle lempivärisi niin osaan jatkaa yhtä projektia? Arvaan jo melkein kyllä toki. Olethan sinä aina niin tyyl442697Kela valvoo lasten tilejä.
Tämä isoveli Kela kyttää jopa lasten yli 200,- euron rahat jotka on melko varmasti lahjaksi saatu. Se vaikuttaa perheen2352458Törmättiin tänään
enkä taaskaan osannut reagoida fiksusti. Menen aina lukkoon. Yksi asia on varma: tunteeni sinua kohtaan ovat edelleen v252256- 492217