Solu muotoilu jos luku muuttuu + tai -

Pötkötin

Moi. Mitenköhän solun värin saisi muuttumaan mikäli solussa oleva luku pienenee tai suurenee? Eli samalla tavalla kuin esim kauppalehden sivuilla jos kurssi laskee niin väri olisi punainen. Koitin ehdollista muotoilua mutta siinä pitää kai olla tietty luku mihin se vertaa kun taas haussa olis että väri muuttuu jos luku kasvaa tai pienenee. Eli siis kurssin mukaan.

13

1846

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • makron-avulla
    • yksinkertaista

      Tuohon ei tarvitse muuta kuin solun muotoilussa, kohdassa "Luku" valitsee kohdan "negatiiviset punaisella", etumerkillä tai ilman.

    • No tässä taas GIF animaatio, joka asettaa taulukon luvun esitystavan niin että negatiiviset luvut näytetään punaisella värillä. https://imgur.com/v0gX3wZ
      Kaiketi tämä on tehtävissä Excelilläkin samaan tapaan.

      • Kundepuu

        kannattaisi lukea kysymys uudestaan, ennenkuin postaa ihan huuhaata...
        kysyjähän haluaa luvun värin muuttuvan sen mukaan pieneneekö se vaiko kasvaa...
        ei onnaa ilman makroa


    • Kundepuu

      taulukon moduuliin
      muuta solu ja värit sopiviksi

      Option Explicit
      Private Sub Worksheet_Change(ByVal Target As Range)
      Static Vanha As Double
      If Not Intersect(Target, Range("A1")) Is Nothing Then
      If Target.Value > Vanha Then
      Target.Interior.Color = vbGreen
      Else
      If Target.Value < Vanha Then
      Target.Interior.Color = vbRed
      Else
      Target.Interior.Color = xlNone
      End If
      End If
      Vanha = Target.Value
      End If

      End Sub

      • värinvaihdos

        Samoilla linjoilla, laitoin vielä mahdollisuuden eräänlaiselle hystereesille, eli muuttujan "muutosraja" arvolla voi vaikuttaa kuinka pieneen muutokseen reagoidaan.

        Värejä voi muutella noiden RGB-funktioiden arvoilla.

        Dim temppi As Double
        Private Sub Worksheet_Change(ByVal target As Range)
        Dim muutosraja As Double: muutosraja = 0.05
        If IsNumeric(target) Then
        ' positiiviset arvot
        If target.Value - temppi > muutosraja Then
        target.Font.Color = RGB(0, 0, 0)
        target.Interior.Color = RGB(0, 255, 0)
        ' negatiiviset arvot
        ElseIf target.Value - temppi < -muutosraja Then
        target.Font.Color = RGB(255, 255, 255)
        target.Interior.Color = RGB(255, 0, 0)
        ' muutoin
        Else
        target.Font.Color = RGB(0, 0, 0)
        target.Interior.ColorIndex = xlNone
        End If
        temppi = target.Value
        Else
        ' jos solussa ei lukuarvo
        target.Font.Color = RGB(0, 0, 0)
        target.Interior.ColorIndex = xlNone
        End If
        End Sub


      • Kundepuu

        ei toimi noin oikein, koska ei huomoi solun vanhaa arvoa vaan viimeisen muutoksen arvon missä tahansa solussa ja vertaa siihen eikä solun oikeaan vanhaan arvoon...
        el


      • bugiraportti
        Kundepuu kirjoitti:

        ei toimi noin oikein, koska ei huomoi solun vanhaa arvoa vaan viimeisen muutoksen arvon missä tahansa solussa ja vertaa siihen eikä solun oikeaan vanhaan arvoon...
        el

        Heh, olet oikeassa. Olisi kannattanut testata useammalla solulla. Pitää viilata Intersect mukaan. Katson samalla saisiko siihen ympättyä muutaman sekunnin vilkkumisen, jolloin olisi hieman visuaalisempi.


    • Tämmöinen

      Tämä muuttaa alueella alue olevan solun väriä, kun sen arvoa muutetaan.
      Väri ei muutu, jos arvo muuttuu jonkin muun solun arvon muuttuessa (solussa on kaava).

      Private Sub Worksheet_Change(ByVal Target As Range)

          Dim uusi
          Dim kaava As String
          Dim alue As Range

      On Error GoTo err:
          Set alue = Range("A1:B5")
          If Not Intersect(alue, Target) Is Nothing Then
              uusi = Target.Value
              kaava = Target.Formula
              Application.EnableEvents = False
              Application.Undo ' katsotaan vanha arvo
              If Target.Value > uusi Then
                  Target.Interior.Color = vbRed
              ElseIf Target.Value < uusi Then
                  Target.Interior.Color = vbGreen
              Else
                  Target.Interior.Color = xlNone
              End If
              Target.Formula = kaava
          End If
      err:
          Application.EnableEvents = True
      End Sub

    • Pötkötin

      Mihin tollaset systeemit laitetaan, johonkin macroon vai? Ei oo tullu koskaan käytettyä..

    • sivullinen3

      Kopioi toi kaava, Excelissä sitten klikkaa alhaalta taulukonvalitsinta (esim. Taul1) hiiren oikealla ja valitse "Näytä koodi". VBA editor avautuu. Liitä kopioimasi makro siihen avautuvaan ikkunaan ja sulje Editori.
      Huomaa makrosta että toiminto "pelaa" vain alueella A1:B5. Muuta aluetta jos tarvis.

    • Sivullinen3

      Siis jos tarkkoja ollaan, niin toi alku piti olla "Kopioi toi makro".
      Sivullinen3 kiittää "Tämmöistä" . Makro pelaa hyvin. Sille löytyy varmasti käyttöä.

    • Pötkötin

      Kiitoksia kaikille, nyt toimii :)

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Niin surullinen

      onnettomuus taas. Voimia ihan kaikille läheisille,kavereille ja kouluun 🙏
      Lapua
      229
      5111
    2. MIksi suurin osa persuista on alkoholisteja?

      Tätä jäin pohdiskelemaan....
      Maailman menoa
      40
      3405
    3. 35
      2918
    4. Kehutaan vaihteeksi Perussuomalaisia

      Perussuomalaiset ovat olleet melkoisen lokakampanjoinnin kohteena, vaikka ovat saaneet paljon hyvää aikaiseksi. Nyt on
      Maailman menoa
      141
      2793
    5. Paloautoko se oli kolarissa Juntusrannan risteyksessä?

      Oli kuva paloautosta nettijutussa.
      Suomussalmi
      25
      2448
    6. SDP ylivoimainen ykkönen

      En ole koskaan viitsinyt käydä äänestämässä, mutta nyt SDP:n etumatka on niin kutkuttava, että pakkohan se on vaivautua.
      Maailman menoa
      68
      2276
    7. Tiesitkö? Johannes Brotheruksen ex-isäpuoli on kuin onkin Mikko Kuustonen - Tästä on kyse!

      Tiesitkö? Ja hehän on kuin kaksi marjaa... Johannes Brotherus on KUUMAA-yhtyeen jäsen ja tänä syksynä mukana Vain elämää
      Suomalaiset julkkikset
      19
      2188
    8. Mitä tapahtuu?

      Mitä säpäkän risteyksessä on tapahtunut kun poliiseja, ambulansseja ja kopteri paikalla?
      Outokumpu
      31
      1820
    9. Roiskeläpät takaisin niin alkaa lasit kestämään

      "Tuulilaseja hajottava talvi-ilmiö on ehkä ratkennut" Tämän päivän autoissa kun on esimerkiksi vanhempaa autokalustoa s
      Yleistä autoilusta
      41
      1772
    10. Polttomoottoriauto on köyhän merkki

      Kun ei ole varaa ostaa sähköautoa, niin joutuu köyhän autoa käyttämään.
      Maailman menoa
      83
      1438
    Aihe