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

243

    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. 4 kuoli kolarissa

      Kenen vastuulla tienhoito? Sohjoa ja vettä tie täynnä. Oliko säästetty tienhoidossa? Järkyttävä onnettomuus.
      Joensuu
      318
      11810
    2. Suomea odottaa karu kohtalo

      Mitäs menitte uhkailemaan ja leikkimään kovaa. Ei mitään mahdollisuuksia Venäjää vastaan.
      Maailman menoa
      415
      3328
    3. Nainen, moraali on koetuksella sun kanssa

      Koen nyt olevani rappiolla ja kyllä, omaa syytäni ja itsekontrollin puutetta, mutta olethan kyllä puoleensavetävä, ettei
      Ikävä
      95
      1848
    4. Kuka on oikein

      Kaivattusi?
      Ikävä
      89
      1636
    5. Mikä on lempikuvasi

      Kaivatustasi?
      Ikävä
      83
      1623
    6. Mitä sinä näet

      kun katsot peiliin?
      Ikävä
      92
      1111
    7. Onko kenelläkään tästä tietoo?

      https://www.haapavesi-lehti.fi/artikkeli/lukijalta-ilkka-repo-etsii-nimettoman-kirjeen-lahettajaa Olisi tärkeä saada te
      Haapavesi
      41
      1081
    8. Se helpottaisi oloa jos

      Se toinen tietäisi että molemmat tykkäämme toisistamme. Se on asia mikä vaivaa ja ahdistaa minua vaikka tilanne olisikin
      Ikävä
      73
      937
    9. Ihastukselleni

      Kun viimeksi nähtiin, niin sisälläni repesi myrsky ja salamat iskivät kuin rajuilma. En halunnut katsoa sinua, en halunn
      Ikävä
      21
      923
    10. Ovatko miehet niin heikkoja ja lahjattomia, etteivät siedä tasa-arvoa?

      Muutenhan ei ole mitenkään perusteltavissa, miksi miesten pitäisi saada etuoikeuksia ja etumatkaa. Sehän tarkoittaisi, e
      Maailman menoa
      253
      887
    Aihe