July 10, 2015

Mengubah Warna Cell dengan Macro


Contoh kasus

Di file ExcelPix (Use Your Illusion), saya membuat ExcelPix cover album ketiga Guns N' Roses yaitu "Use Your Illusion I". Di album keempat GNR, cover album menampilkan gambar yang sama tapi hanya berbeda scheme warna. Dengan cara manual kita bisa mengubah warna pada cell dengan memilih menu Home > Fill Color dan memilih Theme Color yang disediakan atau tentukan warna sendiri.


Mengubah warna cell secara manual
Mengubah warna cell secara manual

Solusi dengan macro

Kalau kita menginginkan perubahan warna tersebut hanya sekali, mungkin dengan cara manual bisa diterima. Tapi kalau perubahan warna tersebut mau dilakukan secara sering, tentunya cara di atas tidak efisien. Karena itu perlu memanfaatkan fasilitas macro yang ada di Excel. Langkah-langkahnya sebagai berikut:

  1. Tentukan dulu range yang ingin diubah warnanya, kita tidak ingin Excel mencari cell yang berwarna dari ujung kiri atas sampai ujung kanan bawah. Kita gunakan perintah Akhir = Range("A1").SpecialCells(xlCellTypeLastCell).Address untuk menentukan alamat dari cell terakhir. Metode SpecialCells(xlCellTypeLastCell) tidak akan mempedulikan apakah cell tersebut ada isinya atau tidak, selama cell tersebut formatnya sudah kita ubah (misal dengan mengubah fill color), Excel tetap akan memperlakukan dia sebagai cell terakhir yang digunakan. Setelah mendapat alamat cell terakhir, kita tentukan range yang ingin kita ubah warna cell-nya dengan perintah Set Rng = Range("A1:" & Akhir)

  2. Setelah range ditentukan, langkah kedua kita lakukan looping dari cell A1 sampai "Akhir" untuk mencari warna yang ingin kita ubah dan tentukan warna pengganti jika warna tersebut sudah ditemukan. Kita gunakan perintah berikut:
    For Each sel In Rng
        Select Case sel.Interior.Color
            Case RGB(185, 23, 46)
                sel.Interior.Color = RGB(76, 41, 135)
            Case RGB(240, 182, 7)
                sel.Interior.Color = RGB(39, 129, 181)
            Case RGB(106, 22, 45)
                sel.Interior.Color = RGB(14, 6, 57)
        End Select
    Next
    
    Kita ingin mengubah warna merah gelap (RGB(185, 23, 4)) menjadi warna biru gelap (RGB(76, 41, 135)), warna orange (RGB(240, 182, 7)) menjadi warna biru muda (RGB(39, 129, 181)), warna merah gelap banget (RGB(106, 22, 45)) menjadi warna biru gelap banget (RGB(14,6,57)).

  3. Langkah ketiga, buat Command Button dari menu Developer > Insert > ActiveX Controls . Dari caption Command Button tersebut, kita bisa manfaatkan untuk melakukan switch perubahan warna. Artinya jika scheme warnanya merah, maka akan diubah menjadi biru, jika scheme warnanya biru maka akan diubah menjadi merah.
Berikut coding VBA lengkapnya:

Option Explicit

Private Sub CommandButton1_Click()
    Dim Akhir As String
    Dim Rng As Range
    Dim sel As Range
    
    Akhir = Range("A1").SpecialCells(xlCellTypeLastCell).Address
    Set Rng = Range("A1:" & Akhir)
  
    If CommandButton1.Caption = "Use Your Illusion II" Then
        For Each sel In Rng
            Select Case sel.Interior.Color
                Case RGB(185, 23, 46) 'merah gelap
                    sel.Interior.Color = RGB(76, 41, 135) 'biru gelap
                Case RGB(240, 182, 7)  'oranye
                    sel.Interior.Color = RGB(39, 129, 181) 'biru muda
                Case RGB(106, 22, 45) 'merah gelap
                    sel.Interior.Color = RGB(14, 6, 57) 'biru gelap banget
            End Select
        Next
        CommandButton1.Caption = "Use Your Illusion I"
    ElseIf CommandButton1.Caption = "Use Your Illusion I" Then
        For Each sel In Rng
            Select Case sel.Interior.Color
                Case RGB(76, 41, 135)
                    sel.Interior.Color = RGB(185, 23, 46)
                Case RGB(39, 129, 181)
                    sel.Interior.Color = RGB(240, 182, 7)
                Case RGB(14, 6, 57)
                    sel.Interior.Color = RGB(106, 22, 45)
            End Select
        Next
        CommandButton1.Caption = "Use Your Illusion II"
    End If

End Sub

Mengubah warna cell dengan macro
Mengubah warna cell dengan macro

Untuk melakukan perubahan warna secara otomatis, klik tombol (command button) yang sudah dibuat sebelumnya. Download file Mengubah Warna Cell dengan Macro di Google Drive.

0 comments:

Post a Comment

Copyright © 2015 ExcelPix All Right Reserved
Shared by Themes24x7