Soru Aynı excel dosyası Win10'da farklı Win7 de farklı sonuç gösteriyor?

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
İZİN GİR butonuna tıklayın

başlangıç 15.12.2021
bitiş 07.01.2022 yazın

Windows10 ise 21 cikacak

windows7 makine ise 20 gün cikacak
örnek dosya ekledim.

doğru olan 20 cumartesileride saydırıp hesaplatıyorum. Ama makineler değişince niye hesap değişiyor çözemedim?
 

Ekli dosyalar

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,340
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Resmi tatillere göre yaptığınız sorgu çalışmadığı için 1 Ocak sayıya dahil ediliyor ve bu sebeple 21 sayısını elde ediyorsunuz. İlgili sorguyu değiştirerek deneyiniz.
Bende aşağıdaki gibi olunca doğru sonuç veriyor. Deneyerek uygun sorguyu bulabilirsiniz sanıyorum.
Rich (BB code):
If Not (x Mod 7 = 1 Or InStr(RsmT, x) <> 0) Then y = y + 1
İyi çalışmalar...
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Merhaba,
Resmi tatillere göre yaptığınız sorgu çalışmadığı için 1 Ocak sayıya dahil ediliyor ve bu sebeple 21 sayısını elde ediyorsunuz. İlgili sorguyu değiştirerek deneyiniz.
Bende aşağıdaki gibi olunca doğru sonuç veriyor. Deneyerek uygun sorguyu bulabilirsiniz sanıyorum.
Rich (BB code):
If Not (x Mod 7 = 1 Or InStr(RsmT, x) <> 0) Then y = y + 1
İyi çalışmalar...
değişikliği yaptım win10da yine 21

ama hocam neyegorehesaplansin sayfasinin M sutununda 01.01.2022 mevcut atlaması gerekmiyor mu?

Kaldıki windows7 ve windows11 makienelerde 20 cikarken windows10da 21 cikiyor :(


Sıkıntı şurada
If Not (x Mod 7 = 1 Or InStr(RsmT, Format(x, "dd.mm.yyyy")) <> 0) Then y = y + 1

burdaki dd. yi d. yapınca düzeliyor mesela. neyegorehesaplansin sayfasında 1.01.2022 gösterdiği için mi acaba? oradakinin başına0 koyuyorum ama hep 1.01.2022 yapıyor
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
RsmT = Join(Application.Transpose(Syf.Range("M1:M549").Value), ",")
Bu satırda izin tarihlerinizi yazıldığı formatta text olarak birleştiriyorsunuz.
Ama userformda dd.mm.yyyy formatında bakıyorsunuz

Evet problem sizin de dediğiniz gibi bundan dolayı çıkıyor.
YUkarıdaki RsmT string değişkenini aşağıdaki gibi değiştirerek kontrol eder misin.
C++:
RsmT = Join(Application.Transpose(CLng(Syf.Range("M1:M549").Value)), ",")
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Yine 21 çıkıyor Ömer hocam :( Yeni bir yapı yazmayı deneyelim Zahmet verdim sizede
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Birde bölgesel ayarlarınızı kontrol etmenizi öneririm. Tarih biçimlendirmesi ile sayı simgelerine bakınız.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,340
Excel Vers. ve Dili
2007 Türkçe
Aşağıdaki şekilde dener misiniz?
Rich (BB code):
If Not (x Mod 7 = 1 Or InStr(RsmT, DateValue(Format(x, "dd.mm.yyyy"))) <> 0) Then y = y + 1
Veya EğerSay da deneyebilirsiniz?
If Not (x Mod 7 = 1 Or WorksheetFunction.CountIf(Syf.Range("M:M"), x) <> 0) Then y = y + 1
Her ikisi de bende doğru sonuç üretiyor.
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Aşağıdaki şekilde dener misiniz?
Rich (BB code):
If Not (x Mod 7 = 1 Or InStr(RsmT, DateValue(Format(x, "dd.mm.yyyy"))) <> 0) Then y = y + 1
Veya EğerSay da deneyebilirsiniz?
If Not (x Mod 7 = 1 Or WorksheetFunction.CountIf(Syf.Range("M:M"), x) <> 0) Then y = y + 1
Her ikisi de bende doğru sonuç üretiyor.
Teşekkürler oldu hocam
 
Üst