dogrulama

Katılım
12 Nisan 2006
Mesajlar
33
aynı shett ıcerısınde yazdıgım bır rakamla dıger rakamın aynı olması durumunda satır renklerının aynı olmasını ıstıyorum yardımcı olabılırmısınız
tesekkur ederım
 
Katılım
1 Eylül 2007
Mesajlar
4
Excel Vers. ve Dili
office 2003 TR
EĞERSAY da birden fazla koşul

Değerli hocalarım;
Bir lojman nöbet listesi hazırlamak istiyorum ama çok çabalamama ve forumda uzun süre arama yapmama rağmen başaramadım. Konu daha önce verildi ise özür dilerim ama ben bulamadım.

Sıkıntım şu: Ekteki dosyada 1 no dan 13 no ya kadar lojman numaraları var.Nöbetler dörder saatlik olmak üzer sütunlarda belirtilmiştir. Koşullar:
1-) Aynı anda aynı kişi farklı yerlerde olamayacağından tek nöbeti olacak.(4 saatlik süreç içerisinde).Bunu =EĞERSAY(B:B,B4)=1 ile başardım ama ikinci ve üçüncü şartları entegre edemedim.
2-)Bir kişi bir günde (yani tüm sayfadaki hücrelerde) üçüncü kez nöbete yazılmayacak. Nöbet günde 2 kere.
3-) Bir kişi iki kez üst üste (örneğin 06:00-10:00 ile 10:00-14:00 nöbetlerinde) nöbete gitmeyecek.Ama 06:00-10:00 ile 14:00-18:00 nöbetine gidebilir.

Umarım derdimi anlatabilmişimdir. Dediğim gibi sadece birinciyi çözebildim ama yeterli olmadı. Benim için ciddi önem arzeden bir hadisedir. Yardımcı olmanızı rica ediyorum.
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Doğrulamadaki formülü
=EĞERSAY(B:G;B2)=1
şeklinde değiştirin
 
Katılım
1 Eylül 2007
Mesajlar
4
Excel Vers. ve Dili
office 2003 TR
Omerceri teşekkür ederim ama sorumun cevabını almış değilim.
Ya da şu şekilde sorayım:
=EĞERSAY(B:B,B4)=1
=EĞERSAY(4:4,B4)=1
=EĞERSAY(B:G,B4)=1

Bu formulü excel sürümüme göre birisi birleştirebilir mi lütfen? Aralarına artı koydum olmadı.
(Ayrıca forumdaki formullerde (; ) ile ayraç kullanılmasına rağmen bendeki excel neden (,) kabul ediyor onu da anlayamadım. :S )
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Başka koşullar da varmış, fark etmedim. Doğrulamayla zor gözüküyor, makro ile yapabilirsem
 
Katılım
6 Şubat 2005
Mesajlar
1,467
=YADA(EĞERSAY(B:B,B4)=1;EĞERSAY(4:4,B4)=1;EĞERSAY(B:G,B4)=1)
şeklinde birleştirebilinir ama çözüm olurmu denemek lazım.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sn.ömerçerinin formullerine ek veya alternatif olarak; aşağıdaki kodları;

İlgili sheet'in kod sayfasına kopyalayınız.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Value = "" Then: Exit Sub
satir = Target.Row
sutun = Target.Column
[COLOR=green]'----- Bu bu kısımdaki kısıtı siz doğrulama yoluyla çözmüşsünüz -----------------
'      Eğer doğrulamadan vazgeçmek isterseniz, bunu kullanabilirsiniz -----------
'x = Application.WorksheetFunction.CountIf(Range(Cells(4, sutun), Cells(100, sutun)), Target.Value)
'If x > 1 Then
'  MsgBox "Bu kişi; aynı anda; iki farklı yerde olamaz", vbCritical, "Verilerinizi kontrol edin"
'  Application.EnableEvents = False
'  Target.Value = ""
'  Target.Select
'  Application.EnableEvents = True
'End If
'--------------------------------------------------------------------------------[/COLOR]
y = Application.WorksheetFunction.CountIf(Range(Cells(satir, 2), Cells(satir, 7)), Target.Value)
If y > 2 Then
  MsgBox "Bir kişi, aynı gün, üç nöbet tutamaz", vbCritical, "Fazla Nöbet"
  Application.EnableEvents = False
  Target.Value = ""
  Target.Select
  Application.EnableEvents = True
End If
If Target.Offset(0, -1).Value = Target.Value Or Target.Offset(0, 1).Value = Target.Value Then
  MsgBox "Bir kişi, üstüste iki defa nöbet tutamaz", vbCritical, "Üst Üste Nöbet"
  Application.EnableEvents = False
  Target.Value = ""
  Target.Select
  Application.EnableEvents = True
End If
End Sub
 
Katılım
1 Eylül 2007
Mesajlar
4
Excel Vers. ve Dili
office 2003 TR
Fpc hocam çok teşekkür ederim harika olmuş.Aradığım şey tam olarak buydu.
Yalnız şöyle bir durum var: Aynı satırda 3 nöbet yazarsam günde 3 nöbet tutulamayacağı uyarısını almama rağmen farklı satırlarda ayunı kişiye 4 nöbet yazılabiliyor. Bunu engellemem için ne gibi değişiklik yapmam lazım kodlarınızda?
Acemiliğimi mazur görün. Excel dünyasında yeniyim :=)
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kod:
y = Application.WorksheetFunction.CountIf(Range(Cells(satir, 2), Cells(satir, 7)), Target.Value)
Yukarıdaki satırı, aşağıdaki gibi değiştirin ve deneyin, lütfen.

Kod:
y = Application.WorksheetFunction.CountIf(Range(Cells(4, 2), Cells(satir+50, 7)), Target.Value)
 
Katılım
1 Eylül 2007
Mesajlar
4
Excel Vers. ve Dili
office 2003 TR
İlginiz için teşekkürler.Gerçekten makbule geçti. İyi çalışmalar
 
Üst