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

142

    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. Janne Ahonen E R O A A

      Taas 2 lasta jää vaille ehjää perhettä!
      Kotimaiset julkkisjuorut
      187
      3896
    2. Tekisi niin mieli laittaa sulle viestiä

      En vaan ole varma ollaanko siihen vielä valmiita, vaikka halua löytyykin täältä suunnalta, ja ikävää, ja kaikkea muuta m
      Ikävä
      92
      1856
    3. Miksi ihmeessä?

      Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek
      Ateismi
      28
      1522
    4. Ootko huomannut miten

      pursuat joka puolelta. Sille joka luulee itsestään liikoja 🫵🙋🏻‍♂️
      Ikävä
      165
      1372
    5. Erika Vikman diskattiin, tilalle Gettomasa ja paluun tekevä Cheek

      Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek https://www.rumba.fi/uut
      Maailman menoa
      24
      1211
    6. Pitääkö penkeillä hypätä Martina?

      Eivätkö puistonpenkit ole istumista varten.Ei niitä kannata liata hyppäämällä koskaa likaantuvat eikä siellä kukaan niit
      Kotimaiset julkkisjuorut
      210
      1121
    7. Kerropa ESA miten kävi tuomioiden

      Osaako ESA kertoa miten haukkumasi kunnanhallituksen kävi.
      Puolanka
      38
      1090
    8. Kuinka kauan

      Olet ollut kaivattuusi ihastunut/rakastunut? Tajusitko tunteesi heti, vai syventyivätkö ne hitaasti?
      Ikävä
      94
      1079
    9. Maikkarin tentti: Orpo jälleen rauhallinen ja erittäin hyvä, myös Purra oli hyvä

      Lindtman ja Kaikkonen oli kohtalaisia, sen sijaan punavihreät Koskela ja Virta olivat taas heikkoja. Ja vastustavat jalk
      Maailman menoa
      129
      1053
    10. Milli-helenalla ongelmia

      Suomen virkavallan kanssa. Eipä ole ihme kun on etsintäkuullutettu jenkkilässäkin. Vähiin käy oleskelupaikat virottarell
      Kotimaiset julkkisjuorut
      189
      950
    Aihe