UDF Hitung Warna Conditional Formating

Pada materi sebelumnya sudah saya buatkan User Defined functions (UDF) untuk menghitung Cells berdasarkan Warnanya. Baik itu untuk SUM Warna ataupun Count Warna.

Kedua UDF ini hanya bisa bekerja untuk warna-warna yang ditambahkan secara manual, sedangkan untuk warna yang ditambahkan melalui conditional Formating hasilnya akan 0.

Ini terjadi karena ada perbedaan property warna yang digunakan.

Cells yang diberi warna secara manual berada pada Object.Interior.color sedangkan Cells yang diberi warna melalui conditional formating berada di Object.Displayformat.Interior.color

Sehingga script untuk menghitung atau menjumlahkan (SUM) berdasarkan warna dari Conditional Formating bisa dibuat seperti dibawah ini.

Function HitungWarnaCF(ByVal SumRange As Range, ByVal Rng As Range) As Double
Dim IsiCell As Range

For Each IsiCell In SumRange
    warna = Evaluate("WarnaCF(""" & IsiCell.Address & """)")
    If warna = Rng.Interior.ColorIndex Then
        HitungWarnaCF = HitungWarnaCF + IsiCell.Value
    End If
Next
End Function

Function WarnaCF(Rng As String)
WarnaCF = Range(Rng).DisplayFormat.Interior.ColorIndex
End Function

Sedangkan jika ingin mencacah (COUNT) berdasarkan warna dari Conditional Formating, scriptnya bisa dibuat seperti dibawah ini

Function HitungWarnaCF(ByVal SumRange As Range, ByVal Rng As Range) As Double
Dim IsiCell As Range

For Each IsiCell In SumRange
    warna = Evaluate("WarnaCF(""" & IsiCell.Address & """)")
    If warna = Rng.Interior.ColorIndex Then
        HitungWarnaCF = HitungWarnaCF + 1
    End If
Next
End Function

Function WarnaCF(Rng As String)
WarnaCF = Range(Rng).DisplayFormat.Interior.ColorIndex
End Function

Bagi yang belum mengetahui cara menggunakan UDF, bisa dibaca di materi Apa Itu User-Defined Function (UDF) – vba.co.id

Sebagai catatan, untuk menghitung warna dari Conditional Formating selain menggunakan UDF (VBA) , jika memungkinkan, bisa juga menggunakan SUMIF atau COUNTIF dimana kriteria yang dimasukan kedalam rumus adalah kriteria yang sama yang digunakan dalam Conditional Formating.

Leave a Reply

Your email address will not be published. Required fields are marked *

Chat WhatsApp
WhatsApp