• DİKKAT

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

Tarihe göre hücre renklendirme

ganiyu

Altın Üye
Katılım
21 Aralık 2016
Mesajlar
53
Excel Vers. ve Dili
Office Professional Plus 2019 Türkçe
Merhaba,

Basit bir rezervasyon listesi yapmak istiyorum.
GENEL sayfasındaki verilere göre ilgili ayın sayfasında renklendirme yapılacak.

Ekli dosyadaki örneğe göre bunu nasıl yaparım?
Teşekkürler.
 

Ekli dosyalar

Merhaba,
Örnek dosyanıza göre :
D5:AGxx alanı seçilerek
Koşullu Biçimlendirme Formül :
Kod:
=VE(D$4>=DOLAYLI("GENEL!G"&KAÇINCI($B5;GENEL!$I:$I;0));D$4<=DOLAYLI("GENEL!H"&KAÇINCI($B5;GENEL!$I:$I;0)))

Not : Aynı numara ile birden fazla oda no da çalışmaz
 
Merhaba Necdet bey,
Öncelikle teşekkür ederim.
Aynı oda numarasıyla birden fazla çalışmasını ve her tarih aralığının farklı renk olmasının çözümü var mıdır?
 
Merhaba Sayın ganiyu,
Birden fazla oda olması mantık olarak doğru, bunu fonksiyon ile çözümü mutlaka vardır ama benim bilgim yetmedi.
Bakalım ofisin yeni fonksiyonları ile çözüm olabilir mi? bir arkadaş ilgilenirse bende öğrenmiş olurum.
 
Tekrar merhaba,
Makro olarak isterseniz aşağıdaki kodları deneyiniz.

Kod:
Sub Deneme()
    
Dim i   As Long
Dim j   As Long
Dim bsCol As Integer
Dim btCol As Integer

Dim c   As Range


btCol = Sayfa2.Range("B4").End(xlToRight).Column

i = Sayfa2.Cells(Rows.Count, "B").End(3).Row
If i < 5 Then i = 5

Sayfa2.Range(Sayfa2.Cells(5, 4), Sayfa2.Cells(i, btCol)).Interior.Pattern = xlNone

For i = 5 To Sayfa1.Cells(Rows.Count, "B").End(3).Row
    j = 0
    On Error Resume Next
    j = Application.WorksheetFunction.Match(Sayfa1.Range("I" & i), Sayfa2.Columns("B:B"), 0)
    On Error GoTo 0
    If j > 0 Then
        bsCol = Sayfa1.Cells(i, "G") - Sayfa2.Range("D4") + 4
        btCol = bsCol + Sayfa1.Cells(i, "H") - Sayfa1.Cells(i, "G")
        Sayfa2.Range(Sayfa2.Cells(j, bsCol), Sayfa2.Cells(j, btCol)).Interior.ColorIndex = bsCol
    End If
Next i

End Sub

Not : Kodlarda geçen Sayfa1 ve Sayfa2, sayfa indisleridir. Sheets("GENEL") yerine Sayfa1, Sheets("HAZIRAN") yerine de Sayfa2. kullandım.
 
Tekrar merhaba,
Makro olarak isterseniz aşağıdaki kodları deneyiniz.

Kod:
Sub Deneme()
   
Dim i   As Long
Dim j   As Long
Dim bsCol As Integer
Dim btCol As Integer

Dim c   As Range


btCol = Sayfa2.Range("B4").End(xlToRight).Column

i = Sayfa2.Cells(Rows.Count, "B").End(3).Row
If i < 5 Then i = 5

Sayfa2.Range(Sayfa2.Cells(5, 4), Sayfa2.Cells(i, btCol)).Interior.Pattern = xlNone

For i = 5 To Sayfa1.Cells(Rows.Count, "B").End(3).Row
    j = 0
    On Error Resume Next
    j = Application.WorksheetFunction.Match(Sayfa1.Range("I" & i), Sayfa2.Columns("B:B"), 0)
    On Error GoTo 0
    If j > 0 Then
        bsCol = Sayfa1.Cells(i, "G") - Sayfa2.Range("D4") + 4
        btCol = bsCol + Sayfa1.Cells(i, "H") - Sayfa1.Cells(i, "G")
        Sayfa2.Range(Sayfa2.Cells(j, bsCol), Sayfa2.Cells(j, btCol)).Interior.ColorIndex = bsCol
    End If
Next i

End Sub

Not : Kodlarda geçen Sayfa1 ve Sayfa2, sayfa indisleridir. Sheets("GENEL") yerine Sayfa1, Sheets("HAZIRAN") yerine de Sayfa2. kullandım.
Çok teşekkür ederim.
 
Merhaba,

1 ay içinde aynı oda için 7 farklı konaklama tanımlayarak formülle çözüm ürettim. Aynı tarihlere gelen konaklamalar için uyarı amaçlı KIRMIZI dolgu rengi kullandım.

Formüller performans açısından 1000 satırlık veri için kurgulanmıştır.
 

Ekli dosyalar

@Necdet bey,
Konaklama geceye göre olduğu için;
Hücreleri giriş tarihinden başlayıp, çıkış tarihinden 1 gün önce olacak şekilde renklendirme yapabilir miyiz?
Örneğin giriş :1 çıkış:5 Temmuz ise; 1-4 Temmuz hücreleri renkli olacak.
Teşekkürler.
 
Merhaba,

1 ay içinde aynı oda için 7 farklı konaklama tanımlayarak formülle çözüm ürettim. Aynı tarihlere gelen konaklamalar için uyarı amaçlı KIRMIZI dolgu rengi kullandım.

Formüller performans açısından 1000 satırlık veri için kurgulanmıştır.
@korhan Aydın bey çok teşekkür ederim. Elinize sağlık. Harika olmuş.
 
Geri
Üst