• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Koşullu biçimlendirme makro yardımı

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

codejitsu

Yasaklı Üye
Katılım
2 Tem 2022
Mesajlar
6
Aldığı beğeni
1
Excel V
Office 2019 TR
Konu Sahibi
Merhaba Arkadaşlar
Ekli örnek dosyamda A sütununda liste fiyatı verilen bir ürün için C sütununda bir satış fix fiyatı belirlenmiş. E ve L sütunlarında ise çeşitli iskonto oranları ile liste fiyatı üzerinden iskontolu fiyatlar hesaplanmış durumda. Yapmak istediğim C sütunundaki fix fiyata en yakın iskontolu fiyat hücresini renklendirmek. Araştırdım ve bulduğum örnekleri değiştirmeye çalıştım ancak kod bilgim yok denecek kadar az olduğu için beceremedim. Dosyam çok büyük ve kişisel verilerde içerdiği için benzer bir örnek ekledim. Yardımcı olabileceklere minnettar olurum. İlgi gösteren herkese şimdiden teşekkür ederim.
 
örneğiniz ekte
 
Çözüm
Konu Sahibi
Teşekkürler tam istediğimi yapıyor. Ellerinize sağlık. Zahmet olmaz ise kendi dosyama uyarlayabilmem için bu kodların mantığını range aralıkları nasıl değiştirmek gerektiğini kısa bir not şeklinde açıklayabilir misiniz hem ben hem igilenenler de bu vesile ile öğrenmiş olalım.
 
Sub boya()
'-------------------Tanımlamalar
Dim rg As Range
Dim i As Long
Dim dizi As Variant
Dim a As Long, b As Long, c As Long, d As Long, e As Long, f As Long, g As Long, h As Long, j As Long, sutun As Long
'----------- Sayfa1(Sayfa1) A3 ile L10000 arasında boyalı alanları temizle------------
Sayfa1.Range("A3:L10000").Interior.Color = xlNone
'----------- Sayfa1 A1 den başla tüm dolu satırları al
Set rg = Sayfa1.Range("A1").CurrentRegion
'----------Satır 3 den son dolu satıra kadar döngüye gir-----------
For i = 3 To rg.Rows.Count
'------------ fix fiyat değerini a değişkenine ata
a = rg(i, 3)
'----tüm değişkenleri a değişkeninden çıkar ama eksi değer olmasın(abs)
b = Abs(a - rg(i, 5)): c = Abs(a - rg(i, 6)): d = Abs(a - rg(i, 7)): e = Abs(a - rg(i, 8)): f = Abs(a - rg(i, 9))
g = Abs(a - rg(i, 10)): h = Abs(a - rg(i, 11)): j = Abs(a - rg(i, 12))
'---------dizinin boyutlarını belirle ve diziyi doldur
ReDim dizi(1 To 1, 1 To 8)
dizi(1, 1) = b: dizi(1, 2) = c: dizi(1, 3) = d: dizi(1, 4) = e: dizi(1, 5) = f: dizi(1, 6) = g: dizi(1, 7) = h: dizi(1, 8) = j
'-----------ilk değeri ata
sutundeger = b

For k = 1 To 8
'-----------eğer ATANAN değer dizinin dönen değerinden büyük ise atanan değeri değiştir ve en küçük değeri bul. Bu değerin dizinin kaçıncı elemanını bul dizi 4.sütundan başladığı için bunu 4 ile topla
If sutundeger >= dizi(1, k) Then
sutundeger = dizi(1, k)
sutun = k + 4
End If
Next k
'---------bulduğun sütun ve satır değerleri ile hücreyi boya
Sayfa1.Cells(i, sutun).Interior.ColorIndex = 33
Next i
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst