• DİKKAT

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

180 textbox da toplama

Katılım
2 Ekim 2007
Mesajlar
124
Excel Vers. ve Dili
office 2003
Arkadaşlar merhaba

Userform üzerinde textbox1 den textbox180 e kadar text kutularım var. Ben istiyorum ki bunlara rakamları yazdıkça textbox 181 de toplama yapsın. mesela textbox1 e 5 girdiğimde textbox181 5 olsun, textbox7 ye 121 girince de 126 olsun. Yani herhangi bir commandbutton falan olmadan direk toplama yapsın otomatik. Sanırım çok zor birşey değil ama beceremedim ya. şunu istemiyorum ama textbox181=textbox1+textbox2+....
Dizi oluşturarak yapılsın istihyorum. mümkündür değil mi?
 
Levent bey ilgilendiğiniz için teşekkür ederim.

"textboxlara sayı yazınca toplamı label1 de versin" konusunu bana uygun buldum. İnceledim. dosyayı da indirdim tam istediğim gibi çalışıyor. Fakat anlamadığım bir kaç satırı sormak istiyorum.

1- SendKeys "{bs}" ne demek? arattım google da buldum birşeyler gerçi ama. eğer textbox nümerik değilse boşluk bırak mı demek?
2-class modülünün ilk satırındaki Public WithEvents txt As MSForms.TextBox ne manaya geliyor?
3-ReDim Preserve txt(6) ne manaya geliyor?
 
Selamlar,

1- Bu ifade en son yazılan karakter sayısal değilse backspace tuşuna otomatik olarak bas ve yazılan karakteri sil demektir.

2- Bu satır ile formunuza eklediğiniz TextBoxlar (txt) ismiyle tanımlanmaktadır. Sizin 180 adet TextBox için ayrı ayrı kod yazmamanızı sağlamaktadır.

3- Formunuzun üzerindeki TextBox sayısını ifade etmektedir. Siz bu bölüme 180 yazacaksınız.
 
Selamlar,

1- Bu ifade en son yazılan karakter sayısal değilse backspace tuşuna otomatik olarak bas ve yazılan karakteri sil demektir.

2- Bu satır ile formunuza eklediğiniz TextBoxlar (txt) ismiyle tanımlanmaktadır. Sizin 180 adet TextBox için ayrı ayrı kod yazmamanızı sağlamaktadır.

3- Formunuzun üzerindeki TextBox sayısını ifade etmektedir. Siz bu bölüme 180 yazacaksınız.

Size de selam,
Korhan bey çok öz ve anlaşılır bir açıklama olmuş. Ancak o userformda sanki 6 değil 4 textbox var. Neden 6 denmiş acaba
Teşekkür ederim. İyi çalışmalar
 
Selamlar,

Sanırım Levent bey düzeltmeyi unutmuş. Siz 4 olarak düzeltin yine çalışacaktır.
 
Çok teşekkür ederim Korhan bey. Levent bey ile sizin verdiğiniz bilgiler çok işime yaradı.
 
yA afedersiniz bir şey daha soracağım .
Diyelim ki bir kaç label daha ekleyeceğim ve birine textbox1 den textbox 35 e kadar birinde textbox 36 dan 48 e .... kadar toplamalar yaptıracağım.
Hepsine ayrı ayrı class mı oluşturmak lazım bu durumda..
 
Selamlar,

Hayır ayrı classlar oluşturmanıza gerek yok. Levent beyin örnek dosyasındaki kodu aşağıdaki şekilde kullanabilirsiniz.

Kod:
Public WithEvents txt As MSForms.TextBox
Private Sub txt_Change()
If IsNumeric(txt) = False [COLOR=red]And txt <> "" Then[/COLOR]
SendKeys "{bs}"
Exit Sub
End If
For a = 1 To 35
deg1 = UserForm1.Controls("textbox" & a)
If deg1 = "" Then deg1 = 0
toplam1 = CDbl(deg1) + toplam1
Next
UserForm1.Label1 = Format(toplam1, "#,##0.00")
For a = 36 To 48
deg2 = UserForm1.Controls("textbox" & a)
If deg2 = "" Then deg2 = 0
toplam2 = CDbl(deg2) + toplam2
Next
UserForm1.Label2 = Format(toplam2, "#,##0.00")
End Sub
 
Son düzenleme:
Eyvallah Korhan hocam. Sordum an&#305;nda cevap ald&#305;m. &#199;ok te&#351;ekk&#252;r ederim. &#304;n&#351;aallah bir g&#252;n de benim size yarar&#305;m dokunur. Excel de olmaz herhalde ama :)
 
Sevgili arkada&#351;lar &#351;u kodlar&#305; &#231;al&#305;&#351;t&#305;r&#305;yorum fakat ufak bir sorun var. O da &#351;u ki: textboxlara de&#287;erleri yazar yazmaz label de toplam&#305;n&#305; g&#246;r&#252;yoruz. Ancak textboxlardan birinin i&#231;indeki de&#287;eri silince label daha &#246;nceki haliyle kal&#305;yor ve textbox &#305;n de&#287;erini "0" olarak alg&#305;lam&#305;yor. Nedendir acaba?

....
......
For a = 1 To 19 '-- idari i&#351;lerde yap&#305;lan toplam&#305; hesapl&#305;yoruz &#351;imdi de..Ve bunu label 156 ya yazd&#305;r&#305;yoruz.
Range("R" & i).Select
deg1 = GirisForm.Controls("textbox" & a)
If deg1 = "" Then deg1 = 0
toplam1 = CDbl(deg1) * Val(ActiveCell.Offset(21 - i, a - 1)) + toplam1
GirisForm.Label156 = "&#304;dari i&#351;lerde harcanan toplam vakit: " & Format(toplam1, "#,##0.0")
Next

......
......
 
Sevgili arkadaşlar şu kodları çalıştırıyorum fakat ufak bir sorun var. O da şu ki: textboxlara değerleri yazar yazmaz label de toplamını görüyoruz. Ancak textboxlardan birinin içindeki değeri silince label daha önceki haliyle kalıyor ve textbox ın değerini "0" olarak algılamıyor. Nedendir acaba?

Kimse yardımcı olamayacak mı acaba? Uğraştım ama düzeltemiyorum bunu
 
Selamlar,

&#220;stteki mesaj&#305;mdaki kodda gerekli g&#252;ncellemeyi yapt&#305;m (k&#305;rm&#305;z&#305; renkli b&#246;l&#252;m). &#304;ncelermisiniz.
 
Korhan hocam yine imdad&#305;ma sen yeti&#351;tin ya. Te&#351;ekk&#252;r ederim eline sa&#287;l&#305;k.
 
konu çok eski ama dosyayı indiremedim tekrar upload yapmanız mümkünmü ilk sayfadı kodu class olarak yazdım ama çalışmadı eksik yaptığım bir şeyler var kesinlikle
 
Geri
Üst