Miten teen ehdollisen muotoilun jos valitulla alueella jokin arvo muuttuu?

Anonyymi

Tarkoitukseni olisi käyttää ehdollista muotoilua uuden säännön kanssa. Eli jos joku arvo (kokonaislukujua) valitulla alueella muuttuu, niin tietty solu alueen ulkopuolella muuttuu punaiseksi. Tämä olisi minulle indikaattori, että taulukon muokkauksen jälkeen muistaisin suorittaa makron.

10

64

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Helpoiten tuo onnistuu makrolla. Ehdolliseen muotoiluun ei taida yksinkertaisesti saada muutoksen tarkkailua.

      Tämä ko. välilehden moduliin:

      Private Sub Worksheet_Change(ByVal Target As Range)
          If Not (Intersect(Target, Range(Alue)) Is Nothing) Then
             Range(Merkki).Interior.Color = RGB(255, 0, 0)
          End If
      End Sub

      Esimerkissä alueet oli määritelty vakiona modulissa
      Public Const Alue = "A1:C3"
      Public Const Merkki = "D1"

      Voit laittaa makroosi rivin, joka kuitaa värin.

      • Anonyymi

        Kiitos vastauksesta. En halua käyttää kuitenkaan montaa makroa samassa työkirjassa.

        Taidan kuitenkin tyytyä tekemääni ratkaisuun: jos solun E27 arvo =0 , solu E26 on vihreä tekstillä "Status". Jos arvo =1, solu E26 on punainen tekstillä "Status". Avatessani työkirjan siis manuaalisesti syötän arvon 1 soluun E27, jolloin muistan suorittaa oman makron ennen tallentamista.


      • Anonyymi
        Anonyymi kirjoitti:

        Kiitos vastauksesta. En halua käyttää kuitenkaan montaa makroa samassa työkirjassa.

        Taidan kuitenkin tyytyä tekemääni ratkaisuun: jos solun E27 arvo =0 , solu E26 on vihreä tekstillä "Status". Jos arvo =1, solu E26 on punainen tekstillä "Status". Avatessani työkirjan siis manuaalisesti syötän arvon 1 soluun E27, jolloin muistan suorittaa oman makron ennen tallentamista.

        Yksinkertainen on kaunista, mutta rajoitus yksi makro per työkirja on perusteeton.


      • Anonyymi
        Anonyymi kirjoitti:

        Yksinkertainen on kaunista, mutta rajoitus yksi makro per työkirja on perusteeton.

        Yksinkertainen, mutta iso on tämä kyseinen taulukkokin. Tämän halusin vain siksi, että muistan suorittaa tuon oman makron ennen tallentamista ja vielä tarkistaa ennen tallennusta.


    • Kun Excel aukeaa, niin voit liittää siihen makron. Mutta jos 1 pikku makro on liikaa, niin sitten manuaalisesti vaan..

      Private Sub Workbook_Open()
      Worksheets(1).Range("E27") = 1
      End Sub

      • Anonyymi

        @kunde . Tämän tein; kiitosta.


      • Anonyymi kirjoitti:

        @kunde . Tämän tein; kiitosta.

        Voithan sä sen makron liittää suoraan ennen sulkemista tapahtumaankin, jolloin tota aukeamistapahtuman makroa ei sitten tarvitse ja suorittaa sen sun makron automaattisesti...

        Private Sub Workbook_BeforeClose(Cancel As Boolean)
        tähän oman makro kutsu
        End Sub

        Keep EXCELing
        @Kunde


      • Anonyymi
        kunde kirjoitti:

        Voithan sä sen makron liittää suoraan ennen sulkemista tapahtumaankin, jolloin tota aukeamistapahtuman makroa ei sitten tarvitse ja suorittaa sen sun makron automaattisesti...

        Private Sub Workbook_BeforeClose(Cancel As Boolean)
        tähän oman makro kutsu
        End Sub

        Keep EXCELing
        @Kunde

        @kunde Onko mitään eroa jos suorittaa tuon makron sulkiessa tai avatessa ko. työkirjan?


      • Anonyymi

        @kunde Kiitos selvennyksestä ja nopeista vastauksista. Homma on nyt selvä tämän ketjun osalta.


    • Anonyymi

      Tarvitsenkin lisää apuja. Nyt tarkoitus olisi suojata taulukkoa ja välilehtiä "sheets" tiettyjen solualueiden osalta. Suojaa solut ratkaisu ei käy, koska jaan työkirjaa One Driven kautta jaetulla linkillä vain luku muodossa.

      Tein tällaisen koodin "Workbook, Change":

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim KeyCells As Range
      Set KeyCells = Range("B7:S49")
      If Not Application.Intersect(KeyCells, Range(Target.Address)) _
      Is Nothing Then
      Application.EnableEvents = False
      Application.Undo
      Application.EnableEvents = True

      MsgBox "Cell " & Target.Address & "Et voi muuttaa solun arvoa"

      End If
      End Sub

      Tämä toimii, mutta jos valitsen solun tältä alueelta ja syötän siihen esim. luvun 1 koodi sallii täyttökahvan käytön, enkä tietenkään voi tietenkään enää poistaa solujen sisältöä. Koodihan voi olla kylläkin väärin. Toinen ratkaisuni olisi käyttää "Workbook, SelectionChange" jolloin voisin käyttää

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Not (Intersect(Target, Range(Alue)) Is Nothing) Then

      jolloin automaattisesti tulisi teksti ja undo, mutta tähän eivät omat taidot vielä taivu.

      terv.j

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

    Luetuimmat keskustelut

    1. En ole rakastunut

      Tai ihastunut sinuun. Kiinnostuin kyllä heti koska erotut massasta.
      Ikävä
      376
      3481
    2. Miksi suomalaisia vainajia säilytetään kylmäkonteissa ulkona? Näin kuolleita kohdellaan Suomessa

      Suomesta ei löydy enää tilaa kuolleille. Tänä päivänä vainajia säilytetään ympäri maata ulkona kylmäkonteissa. Kontit
      Maailman menoa
      185
      1567
    3. Olen ärtynyt koska

      minulla on tunteita sinua kohtaan. Tunteita joita en voi ilmaista. Kaipaan kaikkea sinussa. Siksi olen välillä hankala.
      Ikävä
      66
      1297
    4. Suomalaiset marjat loppuvat

      Suomalaiset marjat mätänevät metsään, koska ulkomaalaiset, lähinnä thaimaalaiset poimijat ovat huolehtineet suomalaisten
      Maailman menoa
      145
      1162
    5. Puhutko toisista ihmisistä

      pahaa, jotta näyttäytyisit itse jotenkin paremmassa valossa?
      Ikävä
      117
      853
    6. Joku tukeva täti syyttää suomalaisia rasisteiksi Hesarissa

      ”Kaikki valkoiset ihmiset Suomessa ovat kasvaneet rasistiseen ajatteluun”, sanoo Maija Laura Kauhanen: https://www.hs.
      Maailman menoa
      164
      825
    7. Mitä teen väärin?

      Alkaa pikku hiljaa tympäsemään ainainen pakkien saanti. Eka ennen kun nähdään, miehet ovat kiinnostuneita viestittelemää
      Sinkut
      116
      794
    8. Oli mukava tavata irl

      Sattuma toi sinut matkani varrelle. Ihmettelin sitä silloin, ehkä vähän vieläkin. Oli ilo jutella ja tuntea, vaikka nyt
      Ikävä
      24
      789
    9. Yhteiskuntaa hyväksi käyttäjät

      Kyllä täällä Suomussalmellakin osaavat käyttää näitä Suomen etuja hyväksi. Vuokrataan ns. asunto lapselle että saa asu
      Suomussalmi
      48
      786
    10. Haluaisin tietää

      mikä saa sinut tuntemaan olosi rakastetuksi. Ja sitten haluaisin mahdollisuuden tehdä juuri niin. 💔
      Ikävä
      46
      782
    Aihe