• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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:
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.
 
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
 
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:
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:
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?
 
Geri
Üst