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

191

    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. IL - PerSut tykittää - Vaaralliset tappajat vankilaan jopa loppuelämäksi!!

      Entistä rajumpi elinkautinen tulee – Vaaralliset tappajat vankilaan jopa loppuelämäksi Henkirikosten uusijat voidaan ja
      Maailman menoa
      196
      22552
    2. Some kuhisee Sanna Marinista: "Wau"

      Sanna Marinia hehkutetaan. Muun muassa Jodelissa kommentoidaan The Sunday Timesin julkaisemaa kuvaa Marinista. Hän ant
      Maailman menoa
      97
      9811
    3. Sannalla tänään vuorossa The Daily Show

      Eli nyt mennään jo satiirin puolelle. Tuohan on vähän kuten Lindströmin ohjelma Suomessa.
      Maailman menoa
      53
      7723
    4. Äärioikeistopurran nukke Petteri Lapanen paniikissa

      Kun Suomen historian paras pääministeri antoi vankan lausunnon, kuinka "keskustelu politiikassa on käpertynyt lähinnä va
      Maailman menoa
      95
      6492
    5. SIELTÄ SE TULI: Kepu-Kurvinen: "Emme enää lähde punavihreään hallitukseen"

      Nyt muuten nauretaan loppuviikko, että tähänkö kaatui Lindtmanin pääministerihaaveet. "Antti Kurvisen mukaan puolue ei
      Maailman menoa
      193
      6227
    6. Tanskassa lain vaatimana Bovaer tappanut nautoja ja sairastuttanut

      Samaa myrkkyä myös Suomen lehmiin ollut tuloillaan, miten teidän tilalla? https://www.agriland.ie/farming-news/bovaer-m
      Maailman menoa
      64
      5830
    7. Ruotsalaisuuden Päivän virallinen liputuspäivä poistettava VÄLITTÖMÄSTI!

      Suomen valtion ja suomalaisuuden kannalta ei ole minkäänlaisia perusteita liputtaa virallisesti ruotsalaisuuden päivää,
      Maailman menoa
      60
      5325
    8. Täysi ryöpytys Sanna Marinille ulkomailla.

      https://www.iltalehti.fi/ulkomaat/a/f699d84f-fa53-4dba-8718-2c395017fc55 Sanna Marinin kirja saa todella tylyn vastaanot
      Maailman menoa
      51
      5213
    9. HS - Sanna Marinin kirja on priimaluokan vedätys!

      Kirja-arvio|Toivo on tekoja tulisi ensisijaisesti nähdä maineen rahallisen hyödyntämisen voimaannuttavana merkkipaaluna.
      Maailman menoa
      121
      4863
    10. Minja Koskelan "istumista" kertovassa uutisessa ei sanottu persuista mitään

      eli jälleen kerran äärivasemmistolainen valehtelee, hän kun väittää että juuri persut ovat lähetelleet Koskelalle vähemm
      Maailman menoa
      107
      4554
    Aihe