Formül hatası

Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Aşağıdaki kodda a yada b herhangi bir değer yazdığımızda hata veriyor.
Hata vermesini nasıl engelleyebiliriz?
Yani a yada b ye tarih ile alakası bir şey yazarsak sadece hesaplama yapmasın. X yazsın sonuca mesela Mümkünmü?


Function Kidem3(Başlangıç_Tarihi, Son_Tarih)
A = Başlangıç_Tarihi
b = Son_Tarih
a1 = Int(Left$(A, 2))
a2 = Int(Mid(A, 4, 2))
a3 = Int(Right$(A, 4))

b1 = Int(Left$(b, 2))
b2 = Int(Mid$(b, 4, 2))
b3 = Int(Right$(b, 4))

If b1 > a1 Then
gun = (b1 - a1)
ElseIf b1 = a1 Then
gun = 0
Else
b2 = (b2 - 1)
gun = ((b1 + 30) - a1)
End If

If b2 > a2 Then
ay = (b2 - a2)
ElseIf b2 = a2 Then
ay = 0
Else
b3 = (b3 - 1)
ay = ((b2 + 12) - a2)
End If

Yıl = b3 - a3

If Yıl > 0 Then Yıl1 = (Yıl) Else: Yıl1 = (Yıl)
If ay > 0 Then Ay1 = (ay) Else: Ay1 = ""
If gun > 0 Then Gun1 = (gun) Else: Gun1 = ""

Kidem3 = Yıl1 & Ay1 & Gun1
End Function
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Function Kidem3(Başlangıç_Tarihi, Son_Tarih)
A = Başlangıç_Tarihi
b = Son_Tarih
If Not IsDate(A) Or Not IsDate(b) Then
Kidem3="X"
Exit Function
End If
a1 = Int(Left$(A, 2))
a2 = Int(Mid(A, 4, 2))
a3 = Int(Right$(A, 4))
.....
.......
olarak deneyiniz.
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Argument not optional diye hata verdi.
ben yanlış yazmışım. Oldu fakat tarihi yazarken hata veriyor 15.12.2006 yazacakken
15.12.200 de durduruyor.
b3 = Int(Right$(b, 4)) e getiriyor.
15.12.100
15.12.200
15.12.300..... bunlarda yine hata veriyor.
 
Son düzenleme:
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
fakat tarihi yazarken hata veriyor 15.12.2006 yazacakken
15.12.200 de durduruyor.
b3 = Int(Right$(b, 4)) e getiriyor.
15.12.100
15.12.200
15.12.300..... bunlarda yine hata veriyor.

Hücreye mi yazarken hata veriyor?
Tam olarak anlayamadım.Küçük örnek bir dosya eklerseniz iyi olur.
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
3 tane textbox
2 sinde tarih birindede bunların sonucu var bunlar ileri geri butonuyla değiştiriyorum.
Orda hata veriyor.

ama hücredede hata veriyor. #değer yazıyor.

15.12.200 filan varsa 2006 yazacaksam 200 de kalıyor.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Textbox'larda bu tür hatalar çıkabilir.

Siz Textbox'ların hangi olayına VBA kodlarını yazdınız?

Bunlarıda eklerseniz problemin anlaşılması kolay olabilir.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Örnek bir dosya eklerseniz daha anlaşılır olacaktır.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Kodları Textbox'ların Change olayı yerine Exit olayına yazınız.

Örneğin,

Kod:
Private Sub TextBox131_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox130 & TextBox131 = "" Then
TextBox275 = ""
TextBox276 = ""
TextBox277 = ""
Exit Sub
Else
TextBox275 = Kidem2(CDate(TextBox130), CDate(TextBox131))
TextBox276 = Kidem1(CDate(TextBox130), CDate(TextBox131))
TextBox277 = Kidem(CDate(TextBox130), CDate(TextBox131))
End If
End Sub
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Bul deyince yada clikleyince hesaplama yapmıyor sadece girerken çıkışta yapıyor .
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Buna başka türlü bir çözüm bulmamız gerekiyor.Çünkü Change olayında siz
veri girerken anında hesaplama yaptığı için daha tarih tamamlanmadığından hata verir.

Bunun yerine hesaplanan sonuçlarıda herhangi bir kolona kayıt edip,daha sonra bul ile aradığımızda bu verileri tekrar yükleyebilirsiniz.
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Zaten bilgilerim EI sütununa kadar uzanıyor ve dediğiniz gibi yapsak ilveten
(140-289 textbox) 149 sütun eder. Dikkat ederseniz benim kitapta 116 sütunluk yer kaldı. Başka sayfaya derseniz onu bilemem ama herşeyi baştan yapmam gerekiyor.

İllaki textbox lazım değil başka bir şeyde olabilir label filan onlarla olursa bilmiyorum.
Uzman sizsiniz. :)
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
tarih

arkadaşlar ve üstadlar ii akşamlar konuyu tam anlamamak ile birlikte tarih ile ilgili bir sorun var sanıyorum >>
textboxların exit ya da change olayına değil de "after update" olayına eklemeyi dener misiniz ?
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
1. si combobox ve 3 tanede textbox düşünün ve combobox dan veri arattırarak
yada bul diyerek textboxlara tarih getirtiyoruz.
iki tane. Bunlardan birisi küçük diğeri büyük tarih.
15.12.2005-17.12.2005

3. textbox da yukardaki formülü kullanarak gün ay vs. hesaplayıp yazıyor.

2. si buraya veride kaydediyorum.
1.textboxa tarih giriyorum.. sorun yok.
2.sine girdiğimde 15.12.2006 yazarken yazdırmıyor buda change olarak ayarlandığı için yani ben yazarken oda hesaplama yaptığı için 15.12.200 dediğimde durduruyor yaptığım işlemi 6 yazdırmıyor yani

Aynısını hücrede denediğim zaman 15.12.200 haricinde hiç bir şekilde hata vermiyor.
Tabi kodların başına Sayın ripek in kodlarını yerleştirdikten sonra önce bu kadarda yazamıyordum.
Sonra sayın ripek change değilde exit yapın dedi ama bu seferde önceden tanımlı tarihlerin sonuçlarını göremiyorum.

Umarım anlatabilmişimdir.
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Sayfadada eğer tarih 15.12.200 gibi olursa hata veriyor.
Bunu sayfada önleme şeklini kodlarda uygulasak olmazmı?
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
calendar eklersek aynı sorun olurmu?
 
Üst