Värikoodi monimutkaiseen kaavaan

Ville 59

Hei,

Onnistun hakemaan onnistuneesti toisesta välilehdeltä tiedot seuraavan kaavan avulla:
=IF(ISNA(VLOOKUP(B59;'991 puhelimet 6 2011'!$A$2:$B$220;2;FALSE));0;VLOOKUP(B59;'991 puhelimet 6 2011'!$A$2:$C$220;2;FALSE))

Haluisin ettei tietyllä värikoodilla olevalle tule arvoa. yritin pyöritellä kaavaa muotoon:
=IF(AND(ColorFunction($N$5;$N$4:$N$50;""));ISNA(VLOOKUP(B59;'991 puhelimet 6 2011'!$A$2:$B$220;2;FALSE));0;VLOOKUP(B59;'991 puhelimet 6 2011'!$A$2:$C$220;2;FALSE)) --> ei toimi ainakaan näin
ja lisäsin VBA:han:
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)

Dim rCell As Range

Dim lCol As Long

Dim vResult

lCol = rColor.Interior.ColorIndex



If SUM = True Then

For Each rCell In rRange

If rCell.Interior.ColorIndex = lCol Then

vResult = WorksheetFunction.SUM(rCell, vResult)

End If

Next rCell

Else

For Each rCell In rRange

If rCell.Interior.ColorIndex = lCol Then

vResult = 1 vResult

End If

Next rCell

End If



ColorFunction = vResult

End Function

osaisko joku jeesata mitä pitää muuttaa? Eli ideana että N sarakkeeseen mihin haetaan toiselta välilehdeltä tietoa, että jos on tietyn värinen, niin kohta jää tyhjäksi, vaikka sille arvo olisi toisella välilehdellä

6

275

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • muuan mies

      Riittäisikö se, että nuo tietyn väriset näytetään valkoisella värillä valkoisella pohjalla ehdollisella muotoilulla, jolloin kohta _näyttää_ tyhjältä?

    • ville 59

      niin olen tähän mennessä toiminut.. mutta luulisi onnistuvan kaavan ja VBA:n avulla, jolloin saisin kohdat kokonaan ilman arvoa..

      • haet siis solulla B59 arvoa toisesta taulukosta ja olet varmaankin kopioinut kaavaa alaspäin jolloin seuraavaan soluun haetaan arvoa solusta B60 jne...

        tokassa kaavassa yrität sitten "funktioräpellyksestäsi" päätellen laskea solun N5 värin mukaan joko summaa tai solun N5 väristen lukumäärää soluista N4:N50 riippuen funktion kutsusta?

        päin persettähän toi on kokonaan...
        funktio ei palauta mitään

        jos siis haluat laskea tietyltä alueelta tietynväriset arvot niin paras tehdä oma makro ja käyttää sitä ja samalla tyhjentää tietynväristen solujen arvot.
        Mitenkäs noi värit soluun määritellään?

        kahotaan saatko selkokielistä kyssäri aikaan...


    • Ville 59

      juu nimenomaa funktioräpellys yritykseni oli... =D

      juu olet oikeassa, kyseisen rivin kohdalla haen solun B59 arvoa toisesta taulukosta ja ratkaisu näkyy sarakkeessa N(tässä tapauksessa esim N59). Sama homma toistuu esim sitten seuraavalla rivillä B60... jne.. siinä ei ongelmaa...
      eli ymmärtääkseni kaavani:
      =IF(ISNA(VLOOKUP(B59;'991 puhelimet 6 2011'!$A$2:$B$220;2;FALSE));0;VLOOKUP(B59;'991 puhelimet 6 2011'!$A$2:$C$220;2;FALSE))
      on tätä myöten oikea...

      mutta jos on N sarakkeessa on väreillä erilaisia henkilöitä jotka ovat väriltään harmaat(ei kuuluu saada arvoa vaikka sellainen olisikin....) ja sitten valkoinen(henkilöt jotka saavat arvon jos sellainen on olemassa toisessa taulokossa)
      Ns. valkoisten osalta no problem, se onnistuu yllä mainitulla kaavalla, eli tuo arvon jos sellainen on olemassa..
      mutta harmaille en haluisi arvoa vaikka sellainen olisikin.. Olen ratkaissut tähän mennessä ehdollisella muotoilulla, sillä saan kyseisen solun tyhjännäköiseksi, muttei poista arvoa.. Tällöin ongelmaksi muodostuu jos linkitän kyseistä solua eteenpäin muissa kaavoissa.

      en tiedä onko tämä nyt selkeemmin selitetty.. hope so! oman makron tekemisestä en tiedä mitään.. tuon copypastoin...

      • ei oo aikaa enempää kun reissua pukkaa...
        poista kaavat N sarakkeesta ja lisää se koodissa oamakaavasi kohtaan...

        jos ei onnaa niin viikon päästä palailen asiaan

        väri on 15 =harmaa, muuta oikeaksi

        taulukon moduuliin...

        Option Explicit

        Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("B:B")) Is Nothing Then
        If Target.Offset(0, 12).Interior.ColorIndex = 15 Then
        Target.Offset(0, 12) = ""
        Else
        Target.Offset(0, 12).Formula = "omakaavasi tähän"
        End If
        End If
        End Sub

        Keep EXCELing
        @Kunde


    • Vilel 59

      eikös tuohon tarvittaisi vielä jonkinnäköinen kaava N-sarakkeen kohdalle viitaten moduulin....

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

    Luetuimmat keskustelut

    1. Muistatko kaivattusi

      Syntymäpäivän? Päivämäärä riittää. 🌹
      Ikävä
      149
      2139
    2. 121
      1445
    3. Atte Harjanne usuttaa eläkeläisvihaan

      Karmeeta kuultavaa aamun uutislähetyksessä, kun Atte Harjanne, tunnettu eläkeläisvihaaja, suitsii sukupolvien välistä v
      Maailman menoa
      334
      1232
    4. Postimerkki kirjeeseen ja kortiin maksaa jo 3 euroa!

      https://yle.fi/a/74-20229241 Kyllä tämä on järjetön hinta, Posti tuhoaa itsensä tällä hinnalla, täytyyhän Postin "Herro
      Maailman menoa
      140
      1190
    5. IS: Väitöstutkimus - Pyöräilybuumi oli pelkkä kupla!

      Pyöräilybuumista paljastui karu totuus Väitöstutkimuksen mukaan suuri suomalainen pyöräilyrenessanssi olikin vain pelkk
      Maailman menoa
      3
      1161
    6. Keitä oli kunnanjohtajan erottajat?

      Kouluja ei ole varaa ylläpitää mutta johtajasopimukseen palaa 100000 euroa ja uuden johtajan hakuprosessi maksaa kymmeni
      Ilmajoki
      65
      1155
    7. Miten pääsee ujon naisen pään sisään?

      Siis tosi tosi tosi ujon...
      Ikävä
      141
      1129
    8. Mulla on ikävä

      sua nainen ja niitä katseita ❤️ Lupaatko, että katseemme kohtaa taas?
      Ikävä
      49
      1099
    9. Mene perheinesi arkkiin - kasteelle !

      Juutalaiset oli hyvin lapsirakkaita, mitään ehkäisyä ei käytetty. Perheissä oli paljon lapsia. Viiden koko perheen kast
      Kaste
      470
      967
    10. Milloin bikineistä

      Tuli juhla tai esiintymis asu? Pikkasen harkintaa vois käyttää. Bikinit kuuluvat uimarannalle. No, mitä maailman tähdet
      Maailman menoa
      98
      955
    Aihe