Cellák összeszámolása háttérszín alapján

Cellák összeszámolása háttérszín alapján - dinós mesekönyv

Az utóbbi időszakban nagyon elhanyagoltam a blogot, nem posztoltam semmit, nem fejlesztettem az oldalt, és fel is gyűlt jó sok e-mail, ami miatt elnézést kérek, hogy megválaszolatlanul maradtak. Kompenzálni szeretném ezt azzal, hogy most az egyik emailben megfogalmazott problémára megoldást nyújtok.

Továbbá mentésgemre szolgáljon, hogy egy olyan projekt viszi el a szabadidőmet és a fókuszomat, ami a jövő generációját szolgálja.  Írtam egy gyönyörűen illusztrált mesekönyvet, azzal a céllal, hogy modern és hagyományos, örökérvényű tanulságokat adjak át a gyerekeknek. Egy dinós mesekönyv, „Tanulságos Dinókalandok” címen, csodálatos képekkel, fontos értékekkel és tanulságos mesékkel, valamint dinszauruszokkal teletűzdelve.

Tanulságos Dinókalandok - dinós mesekönyv

Ennyit a kreatív linképítésről és a dinós mesekönyvekről, vissza a makrós problémához. 🙂

Hány darab sárga háttérszínű cella van?

Egyik olvasó az alábbi e-maillel fordult hozzám:

Hogyan tudom megszámolni egy referencia cellában, pl A1 cellában lévő bizonyos háttér szín alapján egy tartományban pl. B1:B10 lévő azonos színű cellák darabszámát?

A feladatunk tehát, hogy az A1 cella referencia háttérszínével kifestett cellákat számoljuk össze B1:B10 tartományban és írjuk ki a számot A3 cellába. A példában én sárga színt használok, de a megoldásban ezt dinamikusan kezeljük, mert először kiolvassuk a makrónkban a referencia színt az A1 cellából. Második lépésben végigfutunk a B1:b10 tartomány celláink, és ha szerepel benne sárga háttérszínű cella, akkor azt megszámoljuk egy változóban. Végül ennek a változó értékét írjuk ki A3 cellába.

Íme a VBA kódunk:

Sub Gomb1_Click()

'1. Meghatározzuk A1 cella színét
Dim Color As String
Color = Range("A1").Interior.ColorIndex

'2. Végigmegyünk B1:B10 tartomány minden celláján és megnézzük melyek tartalmazzák a referencia színünket
Dim SumColor As Integer
SumColor = 0

For i = 1 To 10
    If Cells(i, 2).Interior.ColorIndex = Color Then
        SumColor = SumColor + 1
    End If
    
Next

'3. Kiírjuk az összesített számot
Range("A3") = SumColor

End Sub

Ennyire egyszerű kódról van szó.

Mennyire találtad hasznosnak ezt cikket?
[Összes szavazat: 1 Átlag értékelés: 5]