Conditional formatting Excel Macro VBA
Excel mempunyai fasilitas yang sangat berguna untuk memberi penanda pada data bernama conditional formatting. fasilitas ini dapat digunakan melalui format>conditional formatting pada menu bar lembar kerja excel 2003 sedangkan pada excel 2007 dapat dilakukan melalui tab home>conditional formatting.
dengan menu ini kita dapat memformat cell berdasarkan isinya. sebagai contoh: jika sel lebih besar dari 5 tapi kurang dari 10 kita dapat membuat perubahan pada seluruh cellnya dengan warna latar belakang yang berbeda dari yang lain. ini bisa kita lakukan terbatas untuk 3 kondisi saja.
apabila tidak cukup dengan 3 kondisi yang ditentukan kita bisa menambah menggunakan excel macro VBA. sebagai contoh kode VBA tersebut bila kita memiliki 6 kondisi dalam range A1:A10 pada lembar kerja, select case dapat kita atur untuk melakukan keenam kondisi tersebut.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer
If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'isi sesuai keinginan
End Select
Target.Interior.ColorIndex = icolor
End If
End Sub
Setelah kode VBA di masukkan, coba masukkan beberapa angka dalam range A1:A10 antara 1 sampai 3 dan warna latar belakang dari setiap cell akan berubah.
dengan menu ini kita dapat memformat cell berdasarkan isinya. sebagai contoh: jika sel lebih besar dari 5 tapi kurang dari 10 kita dapat membuat perubahan pada seluruh cellnya dengan warna latar belakang yang berbeda dari yang lain. ini bisa kita lakukan terbatas untuk 3 kondisi saja.
apabila tidak cukup dengan 3 kondisi yang ditentukan kita bisa menambah menggunakan excel macro VBA. sebagai contoh kode VBA tersebut bila kita memiliki 6 kondisi dalam range A1:A10 pada lembar kerja, select case dapat kita atur untuk melakukan keenam kondisi tersebut.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer
If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'isi sesuai keinginan
End Select
Target.Interior.ColorIndex = icolor
End If
End Sub
Setelah kode VBA di masukkan, coba masukkan beberapa angka dalam range A1:A10 antara 1 sampai 3 dan warna latar belakang dari setiap cell akan berubah.