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

1905

    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. Rakas

      Eihän se tietysti minulle kuulu, mutta missä sinä olet? 😠
      Ikävä
      54
      2228
    2. Pidit itseäsi liian

      Vanhana minulle? Niinkö?
      Ikävä
      62
      2122
    3. SDP:n lyhyt selviytymisopas

      1. Komitea on vastaus, oli kysymys mikä tahansa Jos maailma on muuttumassa tai jossain palaa, demari ei hätiköi. Ensin p
      Maailman menoa
      13
      1641
    4. Joko olet luovuttanut

      Mun suhteen?
      Ikävä
      62
      1462
    5. Haluaisitko oikeasti

      Vakavampaa välillemme vai tämäkö riittää
      Ikävä
      50
      1419
    6. Mitä se olisi

      Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?
      Ikävä
      41
      875
    7. Toivoisitko

      Toivoisitko, että kaivattusi olisi introvertimpi tai extrovertimpi? Itsenäinen tai tarvitsisi enemmän apua/sinua? Osoit
      Ikävä
      90
      767
    8. Nanna Karalahti :Paljastus bisneksistä Jere Karalahden kanssa!

      Ottanut yhteyttä seiskalehden toimittajaan ja kertonut totuuden yhteisestä Herotreeni-nimisestä verkkovalmenuksesta.
      Kotimaiset julkkisjuorut
      118
      747
    9. Sotekeskus

      Aloite on hyvä, kiitokset siitä. Mutta jos olette yhtään seuranneet hyvinvointialueen kokouksia niin sehän on jo nuijit
      Ähtäri
      33
      718
    10. Sinunkin pitää jättää

      Se kaivattusi rauhaan.
      Ikävä
      40
      683
    Aihe