• DİKKAT

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

eksik vardiya da uyarı ve eksigi bulması hk.

zetkatamet

Altın Üye
Katılım
13 Mart 2008
Mesajlar
1,408
Excel Vers. ve Dili
Office 365 Türkçe
Arkadaşlar,
Ekte, eksik vardiyada uyarı vermesi ve mümkünse hangi vardiyanın eksik olabileceğini nasıl bulabiliriz?
Şöyle bir fikrim var;

1 vardiyası 2 yada 6 ya teslim edebiliyor.
2 vardiyası sadece 3 e teslim edebiliyor.
3 vardiyası sadece 1 e teslim edebiliyor.
5 vardiyası 2 yada 6 ya teslim edebiliyor.
6 vardiyası sadece 5 e teslim edebiliyor.

bir önceki güne bakılarak bir sonraki günde yukarıdaki kuralı bozan bir durum var ise uyarı verilmesi, ve eksik olan vardiyanın bulunması.

Şimdiden teşekkürler.
 

Ekli dosyalar

Bu soru ile 3.denemem, hiç cevap alamıyorum. Sorum saçmamı, anlaşılmaz mı? Dönüş rica ederim.
 
Dosyanızı dosya.tc sitesine yükleyip linki paylaşırsanız bakabilirim.
 
Eklerinizdeki hesaplamalar formül ile geliyorsa formülleri gösterecek şekilde dosya eklermisiniz
 
İlginize teşekkürler Sn.Kmlzdmr,
Formül yok, vardiya çizelgesini kişi manuel dolduruyor. Doldurma esnasında yanlışlık olabiliyor. Amacım ilana çıkmadan önce uyarı olsun. Birde uyarı ile birlikte hangi vardiya eksik ise belirlenmesi. Hangi vardiya kime vardiya teslim edebiliyor ile çözülebileceğini tahmin ediyorum. Zaman ayırdığınız için teşekkürler.
 
Sayfanın kod bölümüne ekleyerek çalıştırınız.
Ayrıca koşullu biçimlendirmede 6 sayısı için yaptığınız biçimlendirmeyi siliniz.
Kırmızı boyalı hücredeki vardiyanın takip eden günde devamı yok demektir. (Sizin istediğiniz gibi.)
Ahmet'in 20. gün vardiyası (2) nin 21. günde karşılığı da yok.

Ayrıca TABLO daki vardiya değerlerini seçerek hücre biçimlendirmeden GENEL'i seçiniz. Bazı değerleriniz isteğe uyarlanmış tarih gibi bişeydi.

Kod:
Sub EksikVardiyaTespitEt()
    On Error Resume Next
    Dim vardiya As Range
    Set vardiya = Range("B4:E8")
   
    For i = 3 To 6
        For j = 8 To 39
            If IsEmpty(Cells(i, j).Offset(0, 1)) Then Exit Sub
            a = Application.WorksheetFunction.VLookup(Cells(i, j), vardiya, 3, 0)
            b = Application.WorksheetFunction.VLookup(Cells(i, j), vardiya, 4, 0)
           
            aSay = Application.WorksheetFunction.CountIf(Range(Cells(3, j + 1), Cells(6, j + 1)), a)
            bSay = Application.WorksheetFunction.CountIf(Range(Cells(3, j + 1), Cells(6, j + 1)), b)
            toplam = aSay + bSay
           
            If toplam = 0 Then
                Cells(i, j).Interior.Color = vbRed
            End If
        Next j
    Next i
   
End Sub
 
Sn.muratboz06
Emeklerinize sağlık. Çok teşekkür ederim. Zaman ayırdınız.
Makrosuz çözüm beklesem, biraz da kendimi geliştirmek adına. Umarım yanlış anlamazsınız.
Saygılarımla.
 
Geri
Üst