Otomatİk KoŞ.bİÇİm.

Katılım
18 Haziran 2006
Mesajlar
112
Otomatik Koşullu Biçimlendirme

ArkadaŞlar Benİm Sorum ŞÖyle; A SÜtununda GÖrdÜĞÜnÜz Gİbİ İsİmler Var Ve Hemen SaĞindakİ İkİ SÜtunda Da Bazi Sayilar Mevcut. Benİm YapamadiĞim A SÜtununa İsİmlerİ Ve İlgİlİ Rakamlari Gİrİnce, A SÜtunundakİ İsİmlerle Alakali KoŞullu BİÇİmlendİrmelerİn Otomatİk Olarak Devreye Gİrmesİdİr. Burda Belkİ Problem Şu Olabİlİr, İsİmler Yanliz Bu 3 İsİmle Sinirli KalmayacaĞidir. Bunun İÇİn İlerde Çikabİlecek Extra İsİmler İÇİn De Uygun Bİr Kod Yazabİlİr Mİsİnİz? Şİmdİden Yardimci Olmaya ÇaliŞanlara TeŞekkÜrler.
 
Son düzenleme:

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Siz anlatmışsınız ama ben anlamadım...

extra ( ! ) isimlere uygulanacak formül nedir? Yani, Mahmut diye biri ilave edilirse, ne olmasını istiyorsunuz? Veya Osman eklenirse koşul ne olacak? Daha açık ifade edebilirseniz ileride problem ( ! ) yaşamamanız için kafa yorabiliriz.
 
Katılım
18 Haziran 2006
Mesajlar
112
İstediğim şöyle eklenen isimlere göre koşullu biçimlendirmeler çalışacak. Diğer söylediğim ise ilk defa eklenen isimlere göre kendim vba kısmında yeni isme göre tanımlama yapabilirmiyim?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

İlk olarak sorunuzun başlığını düzeltebilirmisiniz. Aramalarda problem olmaması açısından.

Aşağıdaki kodu kullanmak istediğiniz sayfanın kod bölümüne uygulayıp denermisiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [C:C]) Is Nothing Then Exit Sub
    
    If UCase(Replace(Replace(Target.Offset(0, -2), "ı", "I"), "i", "İ")) = "AHMET" And Target.Offset(0, -1) > Target Then
    Target.Offset(0, -2).Interior.ColorIndex = 3
    Else
    Target.Offset(0, -2).Interior.ColorIndex = xlNone
    
    If UCase(Replace(Replace(Target.Offset(0, -2), "ı", "I"), "i", "İ")) = "ALİ" And (Target.Offset(0, -1) + Target) > 50 Then
    Target.Offset(0, -2).Interior.ColorIndex = 4
    Else
    Target.Offset(0, -2).Interior.ColorIndex = xlNone
    
    If UCase(Replace(Replace(Target.Offset(0, -2), "&#305;", "I"), "i", "&#304;")) = "MEHMET" And Target.Offset(0, -1) < Target Then
    Target.Offset(0, -2).Interior.ColorIndex = 5
    Else
    Target.Offset(0, -2).Interior.ColorIndex = xlNone
    
    End If: End If: End If
End Sub
&#304;simler artt&#305;k&#231;a kod i&#231;indeki a&#351;a&#287;&#305;daki sat&#305;r&#305; kopyalay&#305;p ismi de&#287;i&#351;tirmeniz ve "ColorIndex=5" &#351;eklinde olan ifadenin say&#305;sal de&#287;erini de&#287;i&#351;tirmeniz gerekecektir. Bu renk de&#287;eridir.

Ayr&#305;ca a&#351;a&#287;&#305;daki sat&#305;r&#305; ne kadar kopyalarsan&#305;z kodun sonuna o kadar adet " :End If " ifadesi eklemeniz gerekmektedir.

Kod:
    If UCase(Replace(Replace(Target.Offset(0, -2), "&#305;", "I"), "i", "&#304;")) = "MEHMET" And Target.Offset(0, -1) < Target Then
    Target.Offset(0, -2).Interior.ColorIndex = 5
    Else
    Target.Offset(0, -2).Interior.ColorIndex = xlNone
&#214;rnek olarak koda "VEL&#304;" isminide eklemek isterseniz kod a&#351;a&#287;&#305;daki &#351;ekilde olmal&#305;d&#305;r.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [C:C]) Is Nothing Then Exit Sub
    
    If UCase(Replace(Replace(Target.Offset(0, -2), "&#305;", "I"), "i", "&#304;")) = "AHMET" And Target.Offset(0, -1) > Target Then
    Target.Offset(0, -2).Interior.ColorIndex = 3
    Else
    Target.Offset(0, -2).Interior.ColorIndex = xlNone
    
    If UCase(Replace(Replace(Target.Offset(0, -2), "&#305;", "I"), "i", "&#304;")) = "AL&#304;" And (Target.Offset(0, -1) + Target) > 50 Then
    Target.Offset(0, -2).Interior.ColorIndex = 4
    Else
    Target.Offset(0, -2).Interior.ColorIndex = xlNone
    
    If UCase(Replace(Replace(Target.Offset(0, -2), "&#305;", "I"), "i", "&#304;")) = "MEHMET" And Target.Offset(0, -1) < Target Then
    Target.Offset(0, -2).Interior.ColorIndex = 5
    Else
    Target.Offset(0, -2).Interior.ColorIndex = xlNone
    
    If UCase(Replace(Replace(Target.Offset(0, -2), "&#305;", "I"), "i", "&#304;")) = "VEL&#304;" And Target.Offset(0, -1) < Target Then
    Target.Offset(0, -2).Interior.ColorIndex = 6
    Else
    Target.Offset(0, -2).Interior.ColorIndex = xlNone
    
    End If: End If: End If: End If
End Sub
 
Son düzenleme:
Katılım
18 Haziran 2006
Mesajlar
112
Say&#305;n Cost Control ve Say&#305;n Fructose'a ayr&#305; ayr&#305; te&#351;ekk&#252;r ediyorum. Biraz ge&#231; oldu ama kusura bakmay&#305;n. Siteye ge&#231; girebildim. Konuyu de&#287;i&#351;tirmeye &#231;al&#305;&#351;t&#305;m . Umar&#305;m olmu&#351;tur. &#304;yi G&#252;nlerrrr.
 
Üst