• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Hücre Değerine Göre Satır Boyama

  • Konbuyu başlatan Konbuyu başlatan betoncu
  • Başlangıç tarihi Başlangıç tarihi
Merhaba,

Satır boyama makrosu yazacak olursak,

H1 değeri "açık", "kapalı", "iptal", "talep", "iade" metinlerinden herhangi birini içerdiğinde;

B2:Z2 satırını örneğin "açık" olursa sarı, "kapalı" olursa yeşil, "talep" olursa mavi, "iade" olursa kırmızı olacaktır. Çalışma sütun aralığı 1 den 500 'e olması gerekiyor.

Yardımcı olabilir misiniz.
 
H1 değerine göre B2:Z2 aralığını biçimlendirmek istiyorsunuz. Peki "sütun aralığı 1'den 500'e" ifadesinden kastınız nedir?
 
Düzeltiyorum, H1 değerine göre B1:Z1 satırı boyanacak.

Boyanacak sütün aralığı olarak 1-500 yazdım, yani A1:Z500 hücrelerini kapsayacak. Kodlamada gerekli değil ise kullanılmayabilir.

Teşekkürler.
 
Yani H1 değerine göre B1:Z1, H23 değerine göre B23:Z23 mü boyanacak?
 
Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayıp deneyiniz:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [H1:H500]) Is Nothing Then Exit Sub
a = Target.Row
If Target = "açık" Then
    Range("B" & a & ":Z" & a).Interior.Color = vbYellow
ElseIf Target = "kapalı" Then
    Range("B" & a & ":Z" & a).Interior.Color = vbGreen
ElseIf Target = "talep" Then
    Range("B" & a & ":Z" & a).Interior.Color = vbBlue
ElseIf Target = "iade" Then
    Range("B" & a & ":Z" & a).Interior.Color = vbRed
Else
    Range("B" & a & ":Z" & a).Interior.Color = xlNone
End If
End Sub

Kodun düzgün çalışması için hücrelere aynen kodda yazıldığı şekliyle veri girilmelidir.
 
Teşekkürler, emeğinize sağlık.
Kodu modül olarak eklesem çalışma kitabındaki tüm sayfalarda çalışır mı ?
 
Modül olarak çalışacak bir kod değildir. Tüm sayfalarda çalışması için aşağıdaki kodu VBA sayfasında This Workbook ya da Bu Çalışma Kitabı bölümüne yapıştırmalısınız:

Kod:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, [H1:H500]) Is Nothing Then Exit Sub
a = Target.Row
If Target = "açık" Then
    Range("B" & a & ":Z" & a).Interior.Color = vbYellow
ElseIf Target = "kapalı" Then
    Range("B" & a & ":Z" & a).Interior.Color = vbGreen
ElseIf Target = "talep" Then
    Range("B" & a & ":Z" & a).Interior.Color = vbBlue
ElseIf Target = "iade" Then
    Range("B" & a & ":Z" & a).Interior.Color = vbRed
Else
    Range("B" & a & ":Z" & a).Interior.Color = xlNone
End If
End Sub
 
Renk kodlarını aşağıdaki gibi değiştirdim.
İstediğim renkleri yakaladım.
Font rengini de değiştirmek istersek, hangi satıra ilave etmemiz gerekiyor ?


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [H1:H500]) Is Nothing Then Exit Sub
a = Target.Row
If Target = "Satınalma" Then
Range("B" & a & ":Z" & a).Interior.Color = RGB(255, 255, 0)
ElseIf Target = "Geldi" Then
Range("B" & a & ":Z" & a).Interior.Color = RGB(0, 176, 80)
ElseIf Target = "İade" Then
Range("B" & a & ":Z" & a).Interior.Color = RGB(0, 176, 240)
ElseIf Target = "İptal" Then
Range("B" & a & ":Z" & a).Interior.Color = RGB(255, 0, 0)
Else
Range("B" & a & ":Z" & a).Interior.Color = xlNone
End If
End Sub
 
Range("B" & a & ":Z" & a).Font.Color = RGB(0, 176, 80)

Şeklinde font rengini değiştirebilirsiniz. Bir satır hücre rengi bir satır da font rengi için olacak:
Kod:
If Target = "Satınalma" Then
Range("B" & a & ":Z" & a).Interior.Color = RGB(255, 255, 0)
Range("B" & a & ":Z" & a).Font.Color = RGB(0, 176, 80)
ElseIf Target = "Geldi" Then

gibi
 
Merhaba,

Alt satırlara doğru çoklu kopyalama yapıldığında "Runtime Eror "13" Type mismatch hatası aldım. Bu sebepten dolayı koşullu biçimlendirme kullanmak daha sağlıklı geldi.
 
hÜCRE DEĞERİNE GÖRE SATIR BİÇİMLENDİRME

Merhaba;

Belirttiğiniz VB kodu ile u hücre deki açık veya kapalı değerine göre a ve w sütünları boyunca devam eden satırları kırmızı yada yeşil e boyattım. ikiside yok ise xlNone ile dolgusuz olmasını sağladım
Ancak excel i yeniden açtığımda yukarıda enable macros ifadesini onayladığımda, örneğin b sütunundaki bir değeri değiştirdiğimde mevcut satırın dolgu rengi u hücresindeki açık veya kapalı ifadelerini değiştirmediğim halde kalkıyor.
U hücresindeki değeri yenileyerek tekrar eski haline gelmesini sağlayabiliyorum. Ek olarak ctrl+z/ geri fonksiyonuda bu durumda çalışmıyor. yardımcı olabilirmisiniz.
 
Merhaba Arkadaşlar
Mevcut tabloda Örnek C sütununda ki kelime HATA olduğunda A1:K1 satırını komple tek rege örn: kırmızıya nasıl boyayabiliriz, misal c sütününda HATA yazarken A20:K20 satırınıda aynı renge boyamak için ne yapabilirim
Tşkler
 
Merhaba,

Koşullu biçimlendirme ile yapabilirsiniz.

Öncelikle A1:K100 hücrelerini seçin. Aralığı istediğiniz kadar genişletebilirsiniz.
GİRİŞ menüsündeki Koşullu Biçimlendirme seçeneğini seçin.
Açılan menüden YENİ KURAL seçeneğini seçin.
Karşınıza gelen pencerede "Biçimlendirilecek hücreleri belirtmek için formül kullan" seçeneğine tıklayın.
Hemen altında formül alanı açılacaktır.

Bu bölüme aşağıdaki formülü uygulayın.
Biçim butonuna tıklayıp KIRMIZI dolgu rengini seçin.
TAMAM butonlarına tıklayarak işlemi tamamlayın.

Kod:
=$C1="HATA"
 
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = "7" And Target.Value = "ÖDENMEDİ" Or Target.Value = "ödenmedi" Then
Range("A" & Target.Row & ":I" & Target.Row).Interior.ColorIndex = 38
Else
Range("A" & Target.Row & ":I" & Target.Row).Interior.Color = xlNone
End If
End Sub

Merhaba, Bu kodları hücreye veri girişi yapınca değilde döngü ile B sütununa nasıl uygulayabiliriz? Yani sadece B sütununda "ÖDENMEDİ" yazınca boyasın. Olabilir mi?
 
Merhaba,
Aşağıdaki kodu deneyiniz. Ayrıca bunun yerine koşullu biçimlendirme kullanarak makrosuz da hücre değerine göre renklendirme yapabilirsiniz.
Kod:
Sub kod()
For a = 1 To Cells(Rows.Count, "B").End(3).Row
    If Cells(a, "B").Value = "ÖDENMEDİ" Then
        Range("A" & a & ":I" & a).Interior.ColorIndex = 38
    Else
        Range("A" & a & ":I" & a).Interior.Color = xlNone
    End If
Next
End Sub
İyi çalışmalar...
 
Merhaba,
Aşağıdaki kodu deneyiniz. Ayrıca bunun yerine koşullu biçimlendirme kullanarak makrosuz da hücre değerine göre renklendirme yapabilirsiniz.
Kod:
Sub kod()
For a = 1 To Cells(Rows.Count, "B").End(3).Row
    If Cells(a, "B").Value = "ÖDENMEDİ" Then
        Range("A" & a & ":I" & a).Interior.ColorIndex = 38
    Else
        Range("A" & a & ":I" & a).Interior.Color = xlNone
    End If
Next
End Sub
İyi çalışmalar...

Koşullu biçimlendirme ile A2'deki değer Sayfa1'deki A sütununda yazan değerlerin arasında değilse kırmızıya boya gibi bir şey yapılabilir mi? Her denediğimde hata alıyorum, bir türlü yapamadım.
 
Eğersay formülü ile kontrol yapabilirsiniz. Ancak başka sayfa olduğu için ad tanımlaması kullanmanız gerekebilir.
Mesela; Sayfa1 A sütununa ad tanımlama ile Liste ismini verirseniz koşullu biçimlendirme formülü şu şekilde olabilir: =EĞERSAY(Liste;$A1)=0
 
Geri
Üst