• DİKKAT

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

TextBox'ta Hesaplama

Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Merhaba,

UserForm'da, çalıştığım KOD aşağıdadır,

İstenen,

TextBox18 ve TextBox10'a tarih girildiğinde ;

TextBox11'in (Yaşı) otomatik hesaplanması,

UserForm'a kayıtta, önce TextBox10'a (Doğum Tarihi) , sonrasında TextBox18'e (Kayıt Tarihi) tarih girilmektedir.

Şöyle bir şey denedim, ya yanlış ve/veya eksik kodladım, yada yanlış yere ekledim,

'TextBox11.Text = (TextBox18.Text - TextBox10.Text)


Kod:
Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
Dim s1, s2,s3 As Worksheet
Set s1 = Sheets("KAYITLI_ÜYE_LİSTESİ")
Set s2 = Sheets("ÜYE_KAYIT_YEDEKLERİ")
Set s3 = Sheets("ÜYE_AİDAT_LİSTESİ")

Dim a, b,c As Long
a = s1.Range("A" & Rows.Count).End(xlUp).Row + 1
b = s2.Range("A" & Rows.Count).End(xlUp).Row + 1
c = s3.Range("B" & Rows.Count).End(xlUp).Row + 1

s1.Select

S1.Unprotect "123456789"
s2.Unprotect "123456789"

s1.Cells(a, 1) = TextBox7.Value 
s1.Cells(a, 2) = TextBox8.Value 
...........................................
S1.Cells(a, 4) = TextBox10.Value 'Doğum Tarihi
S1.Cells(a, 5) = TextBox11.Value 'Yaşı
...........................................
S1.Cells(a, 13) = TextBox18.Value 'Kayıt Tarihi

s2.Cells(b, 1) = TextBox7.Value  
s2.Cells(b, 2) = TextBox8.Value  
...........................................
...........................................

s1.Protect "123456789"
s2.Protect "123456789"

s3.Cells(c, 2) = TextBox8.Value 

MsgBox "Verileriniz Kaydedildi. Form boşaltılıyor "

TextBox8 = "" 
TextBox9 = "" 
..........................................
..........................................

UserForm_Initialize
ThisWorkbook.Save
Application.DisplayAlerts = True

End Sub

Teşekkür ederim.
 
Merhaba,

Konu günceldir arkadaşlar,

Teşekkür ederim.
 
Merhabalar,
Bu kodu denemisiniz.

Private Sub Textbox10_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox11 = Val(TextBox18.Value) - Val(TextBox10.Value)
End Sub
Örnek:
Textbox18 =2018, textbox10 =2000 olduğunu düşünürsek textbox11 = 18 olur
iyi çalışmalar
 
Sayın byfika merhaba,

Öncelikle duyarlığınız için teşekkür ederim,

Önerdiğiniz kodu, 1 no.lu mesajımdaki koda entegre etmem gerekiyor, yani CommandButton1 çalıştırıldığında, bu işlemi de gerçekleştirmesi gerekiyor,

Ne yapıla bilir ?

Teşekkür ederim.
 
Textbox10,18 e değer girildiğinde textbox11 e otomatik olarak sonucu yazar. End sub dan sonra yazabilirsin, ve commandbutton ile kaydı yaparsınız.
 
Tekrar merhaba,

Uyguladım, formül çalışıyor, ancak

TextBox 18 ve 11 tarih içeriyor,

Çıkarma işlemi sonucu YAŞ'ı, küsuratsız bulmak ( örn; 36 ) istiyorum,

Teşekkür ederim.
 
Merhaba.

Aşağıdaki kodun aynısını sadece başlık satırındaki TextBox numarasını değiştirerek, TextBox18 için de oluşturun.
TextBoxlara yazılan tarihlerin anlamlı tarihler olacağı (örneğin 30.02 veya 31.04 gibi tarih metni yazılmayacağı) varsayılmıştır.
.
Kod:
Private Sub Textbox[B][COLOR="Red"]10[/COLOR][/B]_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox10 = "" Or TextBox18 = "" Then Exit Sub
If CLng(CDate(TextBox10)) > CLng(CDate(TextBox18)) Then
    MsgBox "-- TextBox10 değeri, TextBox18 değerinden büyük olamaz.", vbInformation
    Exit Sub
Else
    TextBox11 = Evaluate("=DATEDIF(" & CLng(CDate(TextBox10)) & "," & CLng(CDate(TextBox18)) & ",""y"")")
End If
End Sub
 
Sayın Ömer BARAN merhaba,

Tamamdır, sorunum sayenizde çözülmüştür, teşekkür ederim.

Saygılarımla.
 
Estağfurullah, kolay gelsin.
 
Geri
Üst