Koşullu biçimlendirme ve VBA'dan yararlanarak aktif hücrenin renginin nasıl değiştirilebileceği ile ilgili alternatif bir çözüme bakalım.
Aşağıdaki formülü Koşullu Biçimlendirme > Yeni Kural > Biçimlendirilecek hücreleri belirlemek için formül kullan seçeneklerini takip ettikten sonra ilgili metin kutusuna uygulayın.
=VE(SATIR()=HÜCRE("sat");SÜTUN()=HÜCRE("süt"))
Koşullu biçimlendirmenin uygulandığı sayfaya ekleyin.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.ScreenUpdating = True
End Sub
Formülün Çalışma Mantığı
Formül iki şartın sağlanması durumunda çalışıyor. SATIR
formülünden gelen sonuç seçili hücrenin satır bilgisiyle eşleşiyorsa ve SÜTUN
formülünden gelen sonuç seçili hücrenin sütun bilgisiyle eşleşiyorsa koşullu biçimlendirme işlemi gerçekleşecek.
SATIR
ve SÜTUN
formülleri seçilen alanın satır ve sütun sayıları hakkında bilgi verirken HÜCRE
formülü seçilen hücre hakkında (eğer birden fazla hücre seçilmişse seçimin başlangıç noktası olan hücrenin) çeşitli bilgileri öğrenmemizi sağlıyor. Ön tanımlı parametrelerinden sat ile satır numarasını, süt ile de sütun numarasını öğrenebiliyoruz.
Burada sadece aktif hücreyi renklendiren mantık da şu: SATIR()
ve SÜTUN()
formülleri içine bilgi girilmeden kullanıldığı zaman aktif hücreyle/hücrelerle ilgileri bilgileri verir. HÜCRE
formülü de zaten tek hücre seçiminde de, çoklü hücre seçiminde de tek hücre ile ilgili bilgiler veriyor. Biz bu iki parametreyi VE
formülüyle birleştirince de işlemin tek hücre üzerinde yapılmasını sağlamış oluyoruz.
VBA kısmı da ekran güncellemesiyle alakalı, yani aslında formülle doğrudan bir alakası yok. Seçim yapıldığı zaman renk değişikliklerinin düzgün görüntülenebilmesi için kullanılıyor.
Satır Kontrolü
Yapılan seçimin satır numarası, seçilen ilk hücrenin satır bilgisiyle eşleşiyor mu?
SATIR()=HÜCRE("sat")
Sütun Kontrolü
Yapılan seçimin sütun numarası, seçilen ilk hücrenin sütun bilgisiyle eşleşiyor mu?
SÜTUN()=HÜCRE("süt")
Sonuç
Eğer verilen iki şart aynı anda sağlanıyorsa koşullu biçimlendirme işlemini yapan ve hücreyi biçimlendirmeye yarayan formül ortaya çıkmış oluyor.
=VE(SATIR()=HÜCRE("sat");SÜTUN()=HÜCRE("süt"))