Çözüldü İzin Kayıt Hesaplamasında Hatalı Hesaplama

merttr07

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
frmIzinKullanim UserForm sayfasında yaptığım hesaplamada bir hata var sanırım izinleri bir gün fazladan hesaplıyor. Çok baktım ama çözemedim yardımcı ola bilecek arkadaşlar varsa sevinirim.
 

Ekli dosyalar

Belgenize bakmadım.
Önemli olan başlangıç tarihi gününün ve bitiş tarihi gününün hesaplamaya dahil edilip edilmeyeceği ile ilgili karar.
Muhtemelen bitiş tarihi günü İZİNden sayılıyordur, başlangıç tarihi günü İZİN'Den sayılacaksa =B1-A1+1 gibi, sayılmayacaksa =B1-A1 gibi düşünmek gerekir.
Buna göre şu kod satırının sonundaki +1 kısmı doğru mu değil mi diye bakın.
txtGunSayisi = .......
 
Belgenize bakmadım.
Önemli olan başlangıç tarihi gününün ve bitiş tarihi gününün hesaplamaya dahil edilip edilmeyeceği ile ilgili karar.
Muhtemelen bitiş tarihi günü İZİNden sayılıyordur, başlangıç tarihi günü İZİN'Den sayılacaksa =B1-A1+1 gibi, sayılmayacaksa =B1-A1 gibi düşünmek gerekir.
Buna göre şu kod satırının sonundaki +1 kısmı doğru mu değil mi diye bakın.
txtGunSayisi = .......
txtGunSayisi = (CDate(txtBitisTarihi) - CDate(txtBaslangicTarihi)) -1 ile denedim olmadı
txtGunSayisi = (CDate(txtBitisTarihi) - CDate(txtBaslangicTarihi)) böyle denedim yine olmadı

If k <> hftgn And say = 0 Then m = m + 1 burayla alakalı ola bilirmi bitiş tarihini saymaması gerek
 
gun = (CDate(txtBitisTarihi) - CDate(txtBaslangicTarihi))
satırı dolayısıyla gun ADETi başlangıç ve bitiş tarihleri HARİÇ olarak tespit edilmiş oluyor gibi görünse de
hemen altındaki For ... Next döngüsü 0'dan başlatıldığından başlangıç tarihinin günü de hafta içi/hafta sonu kontrolüne tabi tutulmuş oluyor.
Daha üstte cbhafta diye bir değişken kullanılmış ama bunun ne olduğuna dair, kodun üst tarafında bir belirleme/hesaplama göremedim, belki de bir önceki aşamada açık olan bir userform kodlarıyla tespit ediliyordur (bilemiyorum tabi).

Gördüğüm bir sıkıntı da For i = 0 To gun döngüsünde If k <> hftgn kısmı bence sorunlu. Çünkü k değişkeni bir önceki For...Next döngüsünden kalma bir değişken ve o döngü tamamlandığında "k" değeri hep 8 olur gibi görüyorum (oysa en fazla 7 olmalı)

Önce, kullandığınız userformların ShowModal özelliklerini FALSE yapın.
Ardından, verdiğiniz kodun içindeki ilk satıra bir DURAK ekleyin (VBA ekranında imleci ilk kod satırına getirin ve F9 tuşuna basın),
sonra da userformu açarak hesaplama aşamasına gelin. VBA ekranı açık kalsın.
Kod çalıştığında, F9 yapılan satırda duracak. O aşamadan sonra kodu F8 tuşuna aralıklara basarak adım adım çalıştırın ve her satır değişiminde,
fareyle SARI (kod satırlarının sarı zeminli hale geldiğini göreceksiniz zaten) renkli satırın üstünde kalan satırlardaki değişken adlarının üstüne giderek hesaplanan değerleri görebilirsiniz. Bu şekilde kodu adım adım çalıştırıp kontroller yapın bakalım.

Belirttiğim gibi belgenizi açmadım/bakmadım.
 
gun = (CDate(txtBitisTarihi) - CDate(txtBaslangicTarihi))
satırı dolayısıyla gun ADETi başlangıç ve bitiş tarihleri HARİÇ olarak tespit edilmiş oluyor gibi görünse de
hemen altındaki For ... Next döngüsü 0'dan başlatıldığından başlangıç tarihinin günü de hafta içi/hafta sonu kontrolüne tabi tutulmuş oluyor.
Daha üstte cbhafta diye bir değişken kullanılmış ama bunun ne olduğuna dair, kodun üst tarafında bir belirleme/hesaplama göremedim, belki de bir önceki aşamada açık olan bir userform kodlarıyla tespit ediliyordur (bilemiyorum tabi).

Gördüğüm bir sıkıntı da For i = 0 To gun döngüsünde If k <> hftgn kısmı bence sorunlu. Çünkü k değişkeni bir önceki For...Next döngüsünden kalma bir değişken ve o döngü tamamlandığında "k" değeri hep 8 olur gibi görüyorum (oysa en fazla 7 olmalı)

Önce, kullandığınız userformların ShowModal özelliklerini FALSE yapın.
Ardından, verdiğiniz kodun içindeki ilk satıra bir DURAK ekleyin (VBA ekranında imleci ilk kod satırına getirin ve F9 tuşuna basın),
sonra da userformu açarak hesaplama aşamasına gelin. VBA ekranı açık kalsın.
Kod çalıştığında, F9 yapılan satırda duracak. O aşamadan sonra kodu F8 tuşuna aralıklara basarak adım adım çalıştırın ve her satır değişiminde,
fareyle SARI (kod satırlarının sarı zeminli hale geldiğini göreceksiniz zaten) renkli satırın üstünde kalan satırlardaki değişken adlarının üstüne giderek hesaplanan değerleri görebilirsiniz. Bu şekilde kodu adım adım çalıştırıp kontroller yapın bakalım.

Belirttiğim gibi belgenizi açmadım/bakmadım.
Ne yazık ki ne denediysem olmadı gözden kaçırıyorum sorunu
 
Formu açtım (yine geniş ekrana sığmıyor, VBA tarafında gördüğüm düğmeler (alt kısım) görünmüyor.
İlgili userformu açıp kodun işleyişini görmek için hangi işlemi yapmak gerekiyor?
Sorunun ortaya çıktığını görebilmek için kullanma şeklini de yazmalısınız.
Nereye ne yazılmalı/seçilmeli/hangi nesneye tıklanmalı, nerede hangi sonuç alınması gerekiyor da (olması gereken nedir)
hangi sonuç alınıyor (bu sonuç nereye yazılıyor) gibi, belgenizi bilmeyen kişiye göre açıklama yazmalısınız.
 
Formu açtım (yine geniş ekrana sığmıyor, VBA tarafında gördüğüm düğmeler (alt kısım) görünmüyor.
İlgili userformu açıp kodun işleyişini görmek için hangi işlemi yapmak gerekiyor?
Sorunun ortaya çıktığını görebilmek için kullanma şeklini de yazmalısınız.
Nereye ne yazılmalı/seçilmeli/hangi nesneye tıklanmalı, nerede hangi sonuç alınması gerekiyor da (olması gereken nedir)
hangi sonuç alınıyor (bu sonuç nereye yazılıyor) gibi, belgenizi bilmeyen kişiye göre açıklama yazmalısınız.
Hangi userform olduğunu yazdım list boş yere tıklandığında yeni kayıt alıyor izin türü seçilerek giriş yapılacak textbox aktif oluyor.
 
Ôrnek yıllık izin türü seçildiğinde hafta tatili açılıyor başlangıç bitiş tarihleri giriliyor hafta tatili seçiliyor ki hafta tatiline denk gelen izin memur hariç düşülsün diye geri kalan herşey aynı zaten
 
Formu açtım (yine geniş ekrana sığmıyor, VBA tarafında gördüğüm düğmeler (alt kısım) görünmüyor.
İlgili userformu açıp kodun işleyişini görmek için hangi işlemi yapmak gerekiyor?
Sorunun ortaya çıktığını görebilmek için kullanma şeklini de yazmalısınız.
Nereye ne yazılmalı/seçilmeli/hangi nesneye tıklanmalı, nerede hangi sonuç alınması gerekiyor da (olması gereken nedir)
hangi sonuç alınıyor (bu sonuç nereye yazılıyor) gibi, belgenizi bilmeyen kişiye göre açıklama yazmalısınız.
Resim 1
Ekli dosyayı görüntüle ÇEK FARKLARI LİSTELEME 006.xlsx

Resim 2
Adsız.webp

Resim 3
Adsız1.webp

Resim4
Adsız2.webp

Resim 5
Adsız3.webp

Resim 6
Adsız4.webp
 
Moderatörün son düzenlenenleri:
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
10
Üst