Ekders fonksiyonu...

Katılım
21 Kasım 2004
Mesajlar
87
Aşağıdaki fonksiyon ile istediğim sonucu alamıyorum.
Yüksekolu mezunu Yönetici ("YÜK.OK.-Yön.") bir personelin günlük girmesi gereken ders saatleri ikinci ve üçüncü satırdaki kodların karşılığını vermesi gerekinken doğru olarak göstermiyor. Kodlarda bir hata yapıyorum belli... Nasıl düzeltilmesi lazım.

Tahsil ve Yönetici durumuna göre günlük ders saatleri şöyle;
(Pazartesi, Salı, Çarşamba, Perşembe ve Cuma)
'Yüksek okul Mezunu Yönetici: 2-2-3-3-2
'Yüksek Okul Mezunu Öğretici: 2-2-2-2-1

'Lise Mezunu Yönetici: 2-2-2-1-2
'Lise Mezunu Öğretici: 1-1-2-1-1


Function derssaat(i, k)
If k = "Cmt" Or k = "Paz" Then derssaat = "x"

If i = "YÜK.OK.-Yön." And k = "Pzt" Or k = "Sal" Or k = "Cum" Then derssaat = 2
If i = "YÜK.OK.-Yön." And k = "Çar" Or k = "Per" Then derssaat = 3

If i = "YÜK.OK." And k = "Pzt" Or k = "Sal" Or k = "Çar" Or k = "Per" Then derssaat = 2
If i = "YÜK.OK." And k = "Cum" Then derssaat = 1


If i = "LİSE-Yön." And k = "Pzt" Or k = "Sal" Or k = "Çar" Or k = "Cum" Then derssaat = 2
If i = "LİSE-Yön." And k = "Per" Then derssaat = 1

If i = "LİSE" And k = "Pzt" Or k = "Sal" Or k = "Per" Or k = "Cum" Then derssaat = 1
If i = "LİSE" And k = "Çar" Then derssaat = 2
End Function
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Fonksiyonunuza aşağıdaki parantez ilavelerini yapmalısınız.

Kod:
Function derssaat(i, k)
If k = "Cmt" Or k = "Paz" Then derssaat = "x"
If i = "YÜK.OK.-Yön." And [COLOR=black]([/COLOR]k = "Pzt" Or k = "Sal" Or k = "Cum") Then derssaat = 2
If i = "YÜK.OK.-Yön." And (k = "Çar" Or k = "Per") Then derssaat = 3
If i = "YÜK.OK." And (k = "Pzt" Or k = "Sal" Or k = "Çar" Or k = "Per") Then derssaat = 2
If i = "YÜK.OK." And (k = "Cum") Then derssaat = 1

If i = "LİSE-Yön." And (k = "Pzt" Or k = "Sal" Or k = "Çar" Or k = "Cum") Then derssaat = 2
If i = "LİSE-Yön." And k = "Per" Then derssaat = 1
If i = "LİSE" And (k = "Pzt" Or k = "Sal" Or k = "Per" Or k = "Cum") Then derssaat = 1
If i = "LİSE" And k = "Çar" Then derssaat = 2
End Function
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Böyle daha hızlı çalışır.
Kod:
Function derssaat1(i, k)
If k = "Cmt" Or k = "Paz" Then derssaat1 = "x": Exit Function
Select Case i
    Case "YÜK.OK.-Yön."
        Select Case k
            Case "Pzt", "Sal", "Cum": derssaat1 = 2
            Case Else: derssaat1 = 3
        End Select
    Case "YÜK.OK."
        Select Case k
            Case "Cum": derssaat1 = 1
            Case Else: derssaat1 = 2
        End Select
    Case "LİSE-Yön."
        Select Case k
            Case "Per": derssaat1 = 1
            Case Else: derssaat1 = 2
        End Select
    Case "LİSE"
        Select Case k
            Case "Çar": derssaat1 = 2
            Case Else: derssaat1 = 1
        End Select
End Select
   
End Function
 
Son düzenleme:
Katılım
21 Kasım 2004
Mesajlar
87
Sn. leventm ve veyselemre, kodlar sorunsuz çalıştı. Çok teşekkürler..
 
Katılım
21 Kasım 2004
Mesajlar
87
Birde resmi tatil günlerini fonksiyona eklersek, daha hoş olacak. Mesela; 23-24-25 Ekim günleri Ramazan Bayramı idi. Bu resmi günler otomatik olarak "x" işaretli olacaktır.

2006 YILI RESMİ TATİL GÜNLERİ
YILBAŞI
1 OCAK PAZAR

KURBAN BAYRAMI AREFESi
9 OCAK PAZARTESİ

KURBAN BAYRAMI
10-11-12-13 OCAK

ULUSAL EGEMENLİK VE ÇOCUK BAYRAMI
23 NiSAN PAZAR

ATATÜRK'Ü ANMA GENÇLİK VE SPOR BAYRAMI
19 MAYIS CUMA

ZAFER BAYRAMI
30 AGUSTOS ÇARŞAMBA

RAMAZAN BAYRAMI AREFESi
22 EKiM PAZAR

RAMAZAN BAYRAMI
23-24-25 EKiM

CUMHURİYET BAYRAMI
29 EKiM PAZAR

KURBAN BAYRAMI AREFESi
30 ARALIK CUMARTESİ

KURBAN BAYRAMI
31 ARALIK PAZAR
 
Son düzenleme:
Üst