Kodu Kısaltma ve Hata

Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Private Sub TextBox41_change()
If TextBox40 = "" Then
TextBox40 = 0
End If
If TextBox41 = "" Then
TextBox41 = 0
End If
.
.
.
If TextBox139 = "" Then
TextBox139 = 0
End If
TextBox140 = ""
TextBox141 = ""
TextBox142 = ""
.
.
.
TextBox289 = ""
TextBox140 = tarihfark2((TextBox40), ((TextBox41)))
TextBox141 = tarihfark1((TextBox40), ((TextBox41)))
TextBox142 = TarihFark((TextBox40), ((TextBox41)))
TextBox143 = tarihfark2((TextBox42), ((TextBox43)))
.
.
.
.
TextBox144 = tarihfark1((TextBox42), ((TextBox43)))
TextBox147 = tarihfark1((TextBox44), ((TextBox45)))
TextBox150 = tarihfark1((TextBox46), ((TextBox47)))
...........................
TextBox289 = TarihFark((TextBox138), ((TextBox139)))
If textbox1 = "" Then
TextBox140 = ""
TextBox141 = ""
TextBox142 = ""
.
.
.
.
TextBox289 = ""
End If
End Sub

Bununla textboxlarda hesaplama yaptırıyorum fakat ilk baştaki 3 ünü hesaplıyor verilerde bir ileri gidince ötekilerini hesaplıyor.
ve çok uzun yardım edebilirseniz sevinirim.
 
Moderatör tarafında düzenlendi:

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Kanımca, bu kadar TextBoxlu bir programdan performans beklemek zor gibi. Onun için alternatif çözümler araştırmak gerekir. Aşağıdaki eklediğim dosyada, hücrelerle textboxlar yapılmıştır(benzetilmiştir). Fikir verir babında bakmakta fayda var.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,519
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Kullandığınız kodu kısaltmak için aşağıdaki mantıkla döngülerinizi kurabilirsiniz.

Kod:
    For X = 40 To 139
    If Controls("TextBox" & X) = "" Then Controls("TextBox" & X) = 0
    Next
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Sağolun hocam ama döngüyü tabiki benim anladığım kadarıyla burda kullanamıyorum.
yada hepsinde olmuyor
en iyisi dosya eklemek daha mantıklı olacaktır.
 
Son düzenleme:
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Kendimce bir çözüm buldum dahada uzadı ama olsun :)
fakat bu seferde başka yerde hata vermeye başladı
textbox daki değerleri spinbuton gibi bir şeyle değiştirince
ve arkasındanda tarih boş çıkınca hata veriyor.


Bunu çalıştırdığımda :

Private Sub TextBox41_change()
If TextBox40 = "" Then
TextBox42 = 0
End If
If TextBox41 = "" Then
TextBox41 = 0
End If
TextBox140 = ""
TextBox141 = ""
TextBox142 = ""
TextBox140 = Kidem2((TextBox40), ((TextBox41)))
TextBox141 = Kidem1((TextBox40), ((TextBox41)))
TextBox142 = Kidem((TextBox40), ((TextBox41)))
If TextBox41 = "" Then
TextBox140 = ""
TextBox141 = ""
TextBox142 = ""
End If
End Sub

Bu kodda hata veriyor :

Function Kidem2(Başlangıç_Tarihi, Son_Tarih)
A = Başlangıç_Tarihi
b = Son_Tarih
a1 = Int(Left$(A, 2)) <<<<<<<<<<<<<<<<< Burda run time '13' : Type Mismatch
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 = ay
If gun > 0 Then Gun1 = (gun) Else: Gun1 = gun

Kidem2 = Gun1
End Function


Bu formülü hücrede kullandığım zaman eğer hücreler boşsa yada başka değer varsa #değer yazıyordu.
buda bununla ilgili sanırım.
 
Son düzenleme:
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Function Kidem2 satırına
if value.kidem2 = error then
kidem2=0
filan gibi bir şeyler yazmaya çalışıyorum ama nereye koyduysam olmadı doğru yoldamıyım?
 
Üst