• DİKKAT

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

Textboxlarda toplam sorunu (kısıtlamak)

Katılım
13 Ocak 2008
Mesajlar
142
Excel Vers. ve Dili
2003 office
Userform da 2 adet textbox var, bu textboxların toplamının 24 ü geçmemesini nasıl sağlayabilirim.


Örn: Textbox1 e 20, yazarsam, textbox2 ye 4 den büyük rakam yazılmasın ayrıca istersem hücreleri boş bırakabileyim.
 
Merhaba,
Aşağıdaki kodlamayı inceleyiniz.
Kod:
Private Sub TextBox1_Change()
If TextBox1 = "" Then Exit Sub
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - CDbl(TextBox2) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox1 = ""
End If
End Sub
Kod:
Private Sub TextBox2_Change()
If TextBox1 = "" Then Exit Sub
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - CDbl(TextBox1) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox2 = ""
End If
End Sub
 
Merhaba,
Aşağıdaki kodlamayı inceleyiniz.
Kod:
Private Sub TextBox1_Change()
If TextBox1 = "" Then Exit Sub
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - CDbl(TextBox2) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox1 = ""
End If
End Sub
Kod:
Private Sub TextBox2_Change()
If TextBox1 = "" Then Exit Sub
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - CDbl(TextBox1) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox2 = ""
End If
End Sub

Bu kodlarda bir sıkıntı var.Oda Val fonksiyonu kullanmaktan kaynaklanıyor.
Her 2 textboxada 12,5 değerini girin ve deneyin.
Toplamı 25 yapıyor.Ama val fonksiyonu yüzünden bunu algılayamıyor.
Ben sürekli mesajlarımda Val fonksiyonu kullanımı konusundaki sakıncaları uyarıyorum.Şimdi buradada uyarayım.Val fonksiyonu yerine cdbl fonksiyonunu kullanınız.Belki val fonksiyonunu tam sayılar için kullanılabilir ama onun içinde Int fonksiyonunu tavsiye ediyorum.:cool:
Ne diyebilirim!
Biz hatalı sonucu söylediğimiz ve gösterdiğimiz halde insanlar hala hatalı sonuç üreten konu hakkında ısrar ediyorlar.Ne diyebilirim.Siz devam edin!!:cool:
 
Merhaba,
Aşağıdaki kodlamayı inceleyiniz.
Kod:
Private Sub TextBox1_Change()
If TextBox1 = "" Then Exit Sub
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - CDbl(TextBox2) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox1 = ""
End If
End Sub
Kod:
Private Sub TextBox2_Change()
If TextBox1 = "" Then Exit Sub
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - CDbl(TextBox1) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox2 = ""
End If
End Sub

sn LEUMRUK
yukarıdaki kodlar işe yarıyor fakat tek texbox 'a 24 den fazla bir değer verildiğinde hata veriyor.

yani ben hem texboxlerın toplamının 24 ü geçmemesini hemde textbox1 e de textbox2 ye de 24 den fazla rakam verilmesin istiyorum
 
sn LEUMRUK
yukarıdaki kodlar işe yarıyor fakat tek texbox 'a 24 den fazla bir değer verildiğinde hata veriyor.

yani ben hem texboxlerın toplamının 24 ü geçmemesini hemde textbox1 e de textbox2 ye de 24 den fazla rakam verilmesin istiyorum




kodlarda şu değişkliği yapınız,

If TextBox1 = "" or TextBox1 > 24 Then Exit Sub
 
kodlarda şu değişkliği yapınız,

If TextBox1 = "" or TextBox1 > 24 Then Exit Sub

kodları şu şekilde değiştirdim
Private Sub TextBox1_Change()
If TextBox1 = "" or TextBox1 > 24 Then Exit Sub
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - CDbl(TextBox2) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox1 = ""
End If
End Sub

fakat olmadı sadece textbox1 e 24 büyük rakam yazarsam yazıyo, ben hiçbir texbox'a 24 den büyük rakam yazılmasın istiyorum.
 
sn LEUMRUK
yukarıdaki kodlar işe yarıyor fakat tek texbox 'a 24 den fazla bir değer verildiğinde hata veriyor.

yani ben hem texboxlerın toplamının 24 ü geçmemesini hemde textbox1 e de textbox2 ye de 24 den fazla rakam verilmesin istiyorum

Kodları aşağıdakiyle değiştirin.
Kod:
Private Sub TextBox1_Change()
If TextBox1 = "" Then Exit Sub
If TextBox1 > 24 Then
MsgBox "Gireceğiniz değer 24'ten büyük olamaz.", vbCritical, "UYARI"
TextBox1 = ""
Exit Sub: End If
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - Val(TextBox2) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox1 = ""
End If
End Sub
Kod:
Private Sub TextBox2_Change()
If TextBox2 = "" Then Exit Sub
If TextBox2 > 24 Then
MsgBox "Gireceğiniz değer 24'ten büyük olamaz.", vbCritical, "UYARI"
TextBox2 = ""
Exit Sub: End If
If Val(TextBox1) + Val(TextBox2) > 24 Then
MsgBox "Gireceğiniz değer " & 24 - Val(TextBox1) & " den büyük olamaz.", vbCritical, "UYARI"
TextBox2 = ""
End If
End Sub
 
Geri
Üst