Veri doğrulama'da mükerrer bulunca uyarma

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,486
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sevgili arkadaşlar ,
Ekteki örnekte sormak istediğim ya da gerçekleştirmek istediğim ; 1 gün içinde 5 derslikte 20 veya daha fazla sayıda eğitmene " aynı saatte başka derslikte ders" tayin etmemek"..

Örnekte bir tablo icinde ders saati - ders adı - ve dersin eğitmeni vardır ve sağa doğru 5 derslik için sütunlar vardır.
Ders saati sabittir.
Ders adı değişken ve iki derslikte aynı ders okutulabilir.
Sorun ; bir eğitmeni iki dersliğe yanlışlıkta atayarak iki yerde bulunmasını istememek ve bu karışıklığı baştan engelleyebilmek.
Mesela derslik1'de eğitmen2 varken derslik3'te eğitmen2 aynı saate atanırsa bir userform veya msgbox çalıştırarak programı yapanı uyarmak + bu girişi engellemek gerekiyor.
Zorluk ve yapamadığım sunlar:
Zorluk ; ders adları ve eğitmen adları veri doğrulama ile ( daha sağda göreceğiniz ) listeden geliyor.Ve adların bulunduğu yere bir daha veri doğrulama yapamıyorum, olan veri doğrulama formülünün de oraya nasıl yerleştirildiği ve parantez anlamlarını bilmiyorum.Bir örneği uyarlayarak bu tabloyu gerçek ders ve isimler için çıkarmayı başardım , ancak
yapamadıgım ; bir saate bir eğitmeni iki derslikte yazmayı engellemek oldu.
Ustadlarımız ve daha iyi bilenlerimiz bu konuda yardımcı olursa sevinirim.
Bütün eğitmen satırlarında bu olması gerektiğinden sanırım bir makro çözümü gerekecek.

Özetle; bir eğitmen 1 saat satırında 5 derslikten sadece birinde göreve atanabilmeli.
Ve bütün saat satırlarında da aynı kural çalışabilmeli .

Ders adları çakışabilir çünki farklı eğitmen aynı dersi 2 derslikte verebilir.

Herkese saygılarımla
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Listeden ayni saatte 1'den fazla öğretmen seçerseniz uyarı veriyor.:cool:
Mesela 9.00 - 9.50 arsında bir eğitmen birden fazla seçilirse uyarı veriyor.:cool:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D9:H" & Cells(65536, "D").End(xlUp).Row)) Is Nothing Then Exit Sub
If Left(Target, 7) = "eğitmen" Then
    If WorksheetFunction.CountIf(Range(Cells(Target.Row, "D"), Cells(Target.Row, "H")), Target.Value) >= 2 Then
        MsgBox "Bu isimde bu saatte 1'den fazla eğitmen olamaz..!!", vbCritical
        Target.Value = ""
        Target.Select
    End If
End If

End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,486
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
veri doğrulama'da mükerreri engelleme

Sayın Orion2
Çok teşekkür ederim , burada verdiğiniz ve ekteki düzeltmeniz kendi başına harika çalıştı ve tam olarak istediğim görevi yapıyor.
Kodlarınızı kendi orijinal çalışmama uyarladığımda ilk anda çalışmadı ve "type mismatch 13" hatası verdi. Kodlarda benden gelenlerde birkaç yere (') koyarak okumamasını sağladıktan sonra da çalışmadı, baka araya gözüme "eğitmen " kelimesi ve soldan 7 haneye bakması ilişti. Kendi dizgimde isimlerin başına bu kelimeyi de ekleyince bütün aynı saatteki sarı sırada eğitmen çakışmasında uyarmaya başladı.
Sonuç mükemmel oldu , sayenizde çalışmam bir sayfa daha işlevli hale gelmiş oldu. Sanırım eğitim yönetiminde olan başka arkadaşlara da faydalı olur. Tüm desteğiniz ve cevap hızınız için çok teşekkür ederim , allah sizden ve diğer tüm arkadaşlardan razı olsun.
Cems
 
Üst