tarihe göre koşullu biçimlendirme

Katılım
25 Mart 2024
Mesajlar
36
Excel Vers. ve Dili
Excel® LTSC MSO (Sürüm 2408 Derleme 16.0.17932.20360) 64 bit
merhabalar. P sütununda isimlerin yer aldığı listem var. hemen sağında Q sütununda da izinli olduğu tarih var. ben bu isimleri C ve J sütununda göreve atıyorum. istediğim şey Q sütunundaki tarih bugünden büyük veya eşit ise C ve J sütununda ismi seçtiğimde isim kırmızı dolgu olsun. yapmak istediğim izinli olan kişiyi göreve atarsam kırmızı dolgu ile uyarı almak yardımcı olursanız sevinirim.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,971
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
VBA ile yapmak isterseniz

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Dim sonSatir As Long
    Dim izinTarihi As Date

    Application.EnableEvents = False

    ' Son dolu satırı bul
    sonSatir = Cells(Rows.Count, "P").End(xlUp).Row

    For i = 2 To sonSatir
        If IsDate(Cells(i, "Q").Value) Then
            izinTarihi = Cells(i, "Q").Value
            If izinTarihi >= Date Then
                ' Q sütunundaki tarih bugünden büyük veya eşitse C:J aralığını kırmızıya boya
                Range("C" & i & ":J" & i).Interior.Color = RGB(255, 0, 0)
            Else
                ' Değilse renklendirmeyi kaldır
                Range("C" & i & ":J" & i).Interior.ColorIndex = xlNone
            End If
        Else
            ' Tarih geçerli değilse renklendirmeyi kaldır
            Range("C" & i & ":J" & i).Interior.ColorIndex = xlNone
        End If
    Next i

    Application.EnableEvents = True
End Sub
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
893
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Eğer bir kişiyi C veya J sütununda göreve atarsanız ve bu kişi P sütununda yer alıyorsa ve Q sütunundaki tarihi bugünün tarihi veya daha ileri bir tarihse, C veya J hücresine dolgu rengi çıkacaktır
 

Ekli dosyalar

Katılım
25 Mart 2024
Mesajlar
36
Excel Vers. ve Dili
Excel® LTSC MSO (Sürüm 2408 Derleme 16.0.17932.20360) 64 bit
VBA ile yapmak isterseniz

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Dim sonSatir As Long
    Dim izinTarihi As Date

    Application.EnableEvents = False

    ' Son dolu satırı bul
    sonSatir = Cells(Rows.Count, "P").End(xlUp).Row

    For i = 2 To sonSatir
        If IsDate(Cells(i, "Q").Value) Then
            izinTarihi = Cells(i, "Q").Value
            If izinTarihi >= Date Then
                ' Q sütunundaki tarih bugünden büyük veya eşitse C:J aralığını kırmızıya boya
                Range("C" & i & ":J" & i).Interior.Color = RGB(255, 0, 0)
            Else
                ' Değilse renklendirmeyi kaldır
                Range("C" & i & ":J" & i).Interior.ColorIndex = xlNone
            End If
        Else
            ' Tarih geçerli değilse renklendirmeyi kaldır
            Range("C" & i & ":J" & i).Interior.ColorIndex = xlNone
        End If
    Next i

    Application.EnableEvents = True
End Sub
hocam bu makro bende çalışmadı karmaşık bir biçimlendirme yaptı. eğer ve düşeyara formülünü içiçe kullanarak yapamaz mıyız
 
Katılım
25 Mart 2024
Mesajlar
36
Excel Vers. ve Dili
Excel® LTSC MSO (Sürüm 2408 Derleme 16.0.17932.20360) 64 bit
Eğer bir kişiyi C veya J sütununda göreve atarsanız ve bu kişi P sütununda yer alıyorsa ve Q sütunundaki tarihi bugünün tarihi veya daha ileri bir tarihse, C veya J hücresine dolgu rengi çıkacaktır
hocam altın üye değilim dosya indirmeme izin verilmiyor
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
893
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Kod:
=VE(C2<>""; EĞERSAY(P:P;C2)>0; İNDİS(Q:Q;KAÇINCI(C2;P:P;0))>=BUGÜN())

=VE(J2<>""; EĞERSAY(P:P;J2)>0; İNDİS(Q:Q;KAÇINCI(J2;P:P;0))>=BUGÜN())
 
Katılım
25 Mart 2024
Mesajlar
36
Excel Vers. ve Dili
Excel® LTSC MSO (Sürüm 2408 Derleme 16.0.17932.20360) 64 bit
Kod:
=VE(C2<>""; EĞERSAY(P:P;C2)>0; İNDİS(Q:Q;KAÇINCI(C2;P:P;0))>=BUGÜN())

=VE(J2<>""; EĞERSAY(P:P;J2)>0; İNDİS(Q:Q;KAÇINCI(J2;P:P;0))>=BUGÜN())
ELİNİZE SAĞLIK HOCAM İSTEDİĞİM GİBİ OLDU
 
Üst