Új hozzászólás Aktív témák

  • KBaj

    kezdő

    Kedves Mindenki!
    Régen jelentkeztem, de eléggé lekötnek a munkáim.
    A jelenlegi munkámban akadt egy feladat amiben nem tudok dűlőre jutni, ezért kérném és megköszönném a segítségeteket.
    Feladat: Adott egy táblázat, melyben van egy range_data névvel elnevezett Range és egycellából álló CellaSzín1 nevű Range tartomány. A cél az, hogy egy tetszőleges eredmény cellában (minél gyorsabban) megszámoljuk a CellaSzín1 nevű cella kitöltő színével megegyező range_data celláit, melyek a keresést megelőzően Excel táblában beállított feltételes formázással lett megszínezve több féle színnel.
    Az interneten való kutakodás után a következőkre jutottam: Talán a legjobb lenne táblafüggvényt írni, mert azt sokkal hamarabb elvégzi az Excel, mint a lomha VBA For-Next ciklust. Így az alábbival próbálkoztam:
    Function CountCcolor(range_data As Range, CellaSzín1 As Range) As Long
    Dim cel As Range
    Dim xcolor As Long
    Set range_data = Application.Range("Munka1!O3183:S3284")
    xcolor = CellaSzín1.Interior.ColorIndex
    For Each cel In range_data.Cells
    If cel.Interior.ColorIndex = xcolor Then
    CountCcolor = CountCcolor + 1
    End If
    Next cel
    End Function
    A tetszőleges cellába írtam a meghívó függvényt: =CountCcolor(CellaSzín1;range_data) azzal a szándékkal, hogy a tábla újraszámolás utasításra (amely lehet automatikus Excel vagy VBA külön utasítás) beírja a cellába a range_data tartományban talált CellaSzín1 cella alapszínével megegyező cellák darabszámát. De sajnos nem így van. A funkció függvény lefut ugyan, de nem működik stabilan, ha nem #ÉRTÉK hibát jelez akkor a kijelzett szám annyi mint a vizsgált terület „szín nincs” összes celláinak száma (CellaSzín1.Interior.ColorIndex=-4142; negatív, tehát nincs szín). Pedig lenne mit összeszámolni.
    Nem tudom hogyan tovább?
    Tisztelettel megkérek Mindenkit, aki tud segítsen.
    A segítséget előre is köszönöm.

    Kbaj

Új hozzászólás Aktív témák