Kadir sordu
Merhabalar Mustafa Bey
Öncelikle emeğinize sağlık. Soruma internette çözüm ararken bloğunuza denk geldim ve Koşullu Biçimlendirmeyi görünce sorumu sorayım dedim. Soruya gelecek olursak;
Aşağıdaki gibi sayılardan oluşan bir tablo var
Aşağıdaki şekilde de Veri Doğrulama ile Sol ve Üst başlık başlık numaralarını seçiyorum. Seçtiğim değerler arasında kalan alanları koşullu biçimlendirme ile boyamak istiyorum.
Örneğin yukarıdaki şeçimde D10:H15 arası oluyor. Bu arayı boyamasını istiyorum.
Seçimde dikkat edilmesi gereken; Sütun seç-2 sütun seç-1’den, satır seç-2 ise Satır seç-1’den küçük olmamalı.
Bu işlemi Koşullu Biçimlendirme ile nasıl seçebilirim. Yardımcı olabilir misiniz.
Kadir Bey Merhabalar;
Koşullu Biçimlendirme çalışabilmesi için D10:H15 arasındaki değerlere göre çalışır. Hücredeki başka kaynaktan gösterdiğiniz değerlerle Koşullu Biçimlendirme çalışmayacaktır. Bunun için Makro ile yapabiliriz.
Satır Sütun Değerlerini Tespit Etmek
Sizin sütun seçim ekranınızdaki seçtiğini değerlere göre aşağı kısmına sizinde kullandığınız KAÇINCI Fonksiyonu ile Satır ve Sütunların kaçıncı hücrede olduğunu buldum. Amacım seçilen hücrenin başlangıç ve bitiş noktasını bulmak.
Formülleri aşağıdaki şekildedir.
M8 Hücresinde Başlangıç Hücresi Satır :
=KAÇINCI(O2;A2:A15;0)+1
N8 Hücresinde Başlangıç Hücresi Sütun :
=KAÇINCI(M2;B1:K1;0)+1
O8 Hücresinde Bitiş Hücresi Satır :
=KAÇINCI(P2;A2:A15;0)+1
P8 Hücresinde Bitiş Hücresi Sütun:
=KAÇINCI(N2;B1:K1;0)+1
Sayıların Anlamı
Öncelikle bu sayıların ne anlama geldiğini anlatıyım.
Başlangıç Hücresi Satır 10 Sütun 4
10.Satır zaten bildiğimiz 10. Satır. 4. Sütun ise A’dan saymaya başlarsak D sütununa denk geliyor. Yani İlk tespit ettiğimi hücre D10 hücresidir.
Bitiş Hücresi Satır 15 Sütun 8
15. Satır 8. Sütun ise soldan saydığımızda H14 hücresidir.
Hedef Hücrelere Makro ile Boyama İşlemi Yapıyoruz
Şimdi M8, N8, O8, P8 hücrelerindeki değerlerden yararlanarak Makro ile Hedef hücreleri boyama işlemi yapacağız.
Sub ConditionalFormat()
Dim baslangicHucreSatir As Integer
Dim baslangicHucreSutun As Integer
Dim bitisHucreSatir As Integer
Dim bitisHucreSutun As Integer
Call bicimleriTemizle
baslangicHucreSatir = Range(“M8”).Value
baslangicHucreSutun = Range(“N8”).Value
bitisHucreSatir = Range(“O8”).Value
bitisHucreSutun = Range(“P8”).Value
With Worksheets(1).Range(Cells(baslangicHucreSatir, baslangicHucreSutun), Cells(bitisHucreSatir, bitisHucreSutun)).Interior
Range(“a1”).Select
End Sub
Sub bicimleriTemizle()
Range(“B2:K15”).Select
Selection.ClearFormats
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Son olarak tablonun yanına buton ekleyerek makronun çalışmasını sağlıyoruz.