• DİKKAT

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

LİSTE TOPLAMA HATASI

Katılım
24 Aralık 2020
Mesajlar
113
Excel Vers. ve Dili
excel 2010
ARKADAŞLAR AŞAĞIDAKİ KODLARA GÖRE 10 SATIRI OTOMATİK TOPLAMA İŞLEMİ YAPTIM TÜM TEXTBOX'LAR DOLUYKEN TOPLAMA İŞLEMİNİ YAPIYOR AMA 1 YADA Bİ KAÇ TEXTBOX BOŞSA TOPLAMA YAPMIYOR BU HATAYI NASIL GİDEREBİLRİZ.

TextBox355 = Format(CDbl(TextBox300) + CDbl(TextBox302) + CDbl(TextBox308) + CDbl(TextBox314) + CDbl(TextBox320) + CDbl(TextBox325) + CDbl(TextBox331) + CDbl(TextBox337) + CDbl(TextBox343) + CDbl(TextBox349), "#,##0.00")225093
 
TextBox355 =1xTextBox300 + 1x TextBox302 ..... şeklinde denermisin
 
Dosyanı yüklersen daha hızı cevap alabilirisniz
 
Merhabalar
Textbox değeri rakam olmadıgı için hata veriyor. Boş değilde 0 yazarsanızhata vermez. Yada toplayacağınız textbox ardışık olursa textbox400,401,402 .... gibi for döngüsü ile bir kod yazılabilir.
 
hocam dosya şirket için bilgiler içeriyor boş olarak oluşmuş bi form olmadığı için gönderemiyorum kusura bakmayın çözüm ve önerileriniz çok teşekkür ediyorum. porgramın taslak haline getirip size gönderebilirim
 
Merhabalar
Textbox değeri rakam olmadıgı için hata veriyor. Boş değilde 0 yazarsanızhata vermez. Yada toplayacağınız textbox ardışık olursa textbox400,401,402 .... gibi for döngüsü ile bir kod yazılabilir.

hocam farkettim hatayı ama çok yerde değişiklik yapmam gerekecek for döngüsü için şimdilik o hücreleri 0 la geçmeye çalışacam. teşekkür ederim..
 
hocam farkettim hatayı ama çok yerde değişiklik yapmam gerekecek for döngüsü için şimdilik o hücreleri 0 la geçmeye çalışacam. teşekkür ederim..

Aşağıdaki kod ile düzeltebilirsiniz. tabi textbox adlarını ardışık yaparsanız
Kod:
Private Sub CommandButton1_Click()

Dim i As Long
For i = 400 To 409


    If UserForm1.Controls("Textbox" & i).Value = "" Then
 UserForm1.Controls("Textbox" & i).Value = 0

  End If
 
Next
       TextBox355 = Format(CDbl(TextBox400) + CDbl(TextBox401) + CDbl(TextBox402) + CDbl(TextBox403) + CDbl(TextBox404) + CDbl(TextBox405) + CDbl(TextBox406) + CDbl(TextBox407) + CDbl(TextBox408) + CDbl(TextBox409), "#,##0.00")

End Sub
 
Merhaba
Alternatif olarak ;
Kod:
Dim t(), topla As Double, x As Long, sr As String
t = Array("300", "302", "308", "314", "320", "325", "331", "337", "343", "349")
For x = 0 To UBound(t)
If IsNumeric(Controls("TextBox" & t(x))) = True Then
topla = topla + CDbl(Controls("TextBox" & t(x)))
Else
If Controls("TextBox" & t(x)) <> "" Then sr = sr & vbCrLf & "TextBox" & t(x)
End If
Next
TextBox355 = Format(topla, "#,##0.00")
If sr <> "" Then MsgBox "Hatalı sayı girişi var:" & vbCrLf & sr
 
Merhaba
Alternatif olarak ;
Kod:
Dim t(), topla As Double, x As Long, sr As String
t = Array("300", "302", "308", "314", "320", "325", "331", "337", "343", "349")
For x = 0 To UBound(t)
If IsNumeric(Controls("TextBox" & t(x))) = True Then
topla = topla + CDbl(Controls("TextBox" & t(x)))
Else
If Controls("TextBox" & t(x)) <> "" Then sr = sr & vbCrLf & "TextBox" & t(x)
End If
Next
TextBox355 = Format(topla, "#,##0.00")
If sr <> "" Then MsgBox "Hatalı sayı girişi var:" & vbCrLf & sr
TEŞEKKÜR EDERİM HOCAM DENEDİM AMA SONUÇ SIFIR VERDİ DİĞER ÇALIŞMAYIDA DENİYORUM.
 
Aşağıdaki kod ile düzeltebilirsiniz. tabi textbox adlarını ardışık yaparsanız
Kod:
Private Sub CommandButton1_Click()

Dim i As Long
For i = 400 To 409


    If UserForm1.Controls("Textbox" & i).Value = "" Then
UserForm1.Controls("Textbox" & i).Value = 0

  End If

Next
       TextBox355 = Format(CDbl(TextBox400) + CDbl(TextBox401) + CDbl(TextBox402) + CDbl(TextBox403) + CDbl(TextBox404) + CDbl(TextBox405) + CDbl(TextBox406) + CDbl(TextBox407) + CDbl(TextBox408) + CDbl(TextBox409), "#,##0.00")

End Sub


HOCAM BU ŞEKİLDE YAPTIM BUNDADA TOPLAMA SIFIR VERDİ

Private Sub CommandButton9_Click()
Dim i As Long
For i = 400 To 409


If UserForm1.Controls("Textbox" & i).Value = "" Then
UserForm1.Controls("Textbox" & i).Value = 0

End If

Next

TextBox355 = Format(CDbl(TextBox400) + CDbl(TextBox401) + CDbl(TextBox402) + CDbl(TextBox403) + CDbl(TextBox404) + CDbl(TextBox405) + CDbl(TextBox406) + CDbl(TextBox407) + CDbl(TextBox408) + CDbl(TextBox409), "#,##0.00")

On Error Resume Next

TextBox400 = Format(CDbl(TextBox297) * CDbl(TextBox299), "#,##0.00")
TextBox401 = Format(CDbl(TextBox304) * CDbl(TextBox306), "#,##0.00")
TextBox402 = Format(CDbl(TextBox310) * CDbl(TextBox312), "#,##0.00")
TextBox403 = Format(CDbl(TextBox316) * CDbl(TextBox318), "#,##0.00")
TextBox404 = Format(CDbl(TextBox322) * CDbl(TextBox324), "#,##0.00")
TextBox405 = Format(CDbl(TextBox328) * CDbl(TextBox330), "#,##0.00")
TextBox406 = Format(CDbl(TextBox334) * CDbl(TextBox336), "#,##0.00")
TextBox407 = Format(CDbl(TextBox340) * CDbl(TextBox342), "#,##0.00")
TextBox408 = Format(CDbl(TextBox346) * CDbl(TextBox348), "#,##0.00")
TextBox409 = Format(CDbl(TextBox352) * CDbl(TextBox354), "#,##0.00")

TextBox357 = Format(CDbl(TextBox355) * CDbl(TextBox356), "#,##0.00")

TextBox358 = Format(CDbl(TextBox355) + CDbl(TextBox357), "#,##0.00")


End Sub
 
tamamdır hocam oldu elinize sağlık şimdi değerler topluyor....
 
Geri
Üst