• DİKKAT

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

Toplamda kuruşlar gelmiyor.

vuranoğlu

Altın Üye
Katılım
18 Nisan 2008
Mesajlar
260
Excel Vers. ve Dili
excel 2016 tr
Textbox üzerinde ondalıklı çarpma işlemi gerçekleşmesine rağmen
toplamda sonuç ondalıklı gelmiyor.
 

Ekli dosyalar

Merhaba,

Önce TL ekleyerek metin formunu kazandırmış olduğunuzdan tekrar sayıya çevirmeye çalıştığınızda sorun yaşıyorsunuz.
Format tanımlamalarınızı TextBox49 = Format(TextBox49, "#,##0.00 TL") işlem öncesinden alıp işlem sonuna taşırsanız çözüme ulaşabilirsiniz.

İyi çalışmalar.
 
Merhaba
Private Sub TextBox49_Change()

TextBox49 = Val(TextBox3) + Val(TextBox6) + Val(TextBox9) + _
Val(TextBox12) + Val(TextBox15) + Val(TextBox18) + Val(TextBox21) + Val(TextBox24) + Val(TextBox27) + Val(TextBox30) + _
Val(TextBox33) + Val(TextBox36) + Val(TextBox39) + Val(TextBox42) + Val(TextBox45) + Val(TextBox48)

TextBox49 = Format(TextBox49, "#,##0.00 TL")
End Sub
kodu değiştirdim.
Ancak;
sonuc değişmedi.
,5*3=1,5 TextBox49 da (toplam)1,00 çıkıyor.
 
Merhaba.
Kodlardaki bütün TextBox49 = Format(TextBox49, "#,##0.00 TL") satırları silin.
TextBox49_Change() kodlarını da aşağıdaki ile değiştirin.
Kod:
Private Sub TextBox49_Change()
    TextBox49 = Val(TextBox3) + Val(TextBox6) + Val(TextBox9) + _
    Val(TextBox12) + Val(TextBox15) + Val(TextBox18) + Val(TextBox21) + Val(TextBox24) + Val(TextBox27) + Val(TextBox30) + _
    Val(TextBox33) + Val(TextBox36) + Val(TextBox39) + Val(TextBox42) + Val(TextBox45) + Val(TextBox48)
    TextBox49 = Format(TextBox49.Text, "Currency")
End Sub
 
Merhaba.
Değişiklikleri uyguladım ama sonuç olumsuz.
 

Ekli dosyalar

Dosyanız ekte.
Gereksiz tekrar eden kodları da düzenledim.
 

Ekli dosyalar

Teşekkür ederim.
₺ ifadeyi kaldırsak
 
Class ile alternatif çözüm...
 

Ekli dosyalar

GenelToplam ve Hesapla kodlarını silin yerine aşağıdakileri kopyalayın.
Kod:
Private Sub Hesapla(txt1 As Control, txt2 As Control, txt3 As Control)
    If IsNumeric(txt1.Value) And IsNumeric(txt2.Value) Then
        txt3.Value = Format(CDbl(txt1.Value) * CDbl(txt2.Value), "0.00")
        GenelToplam
    Else
        txt3.Value = ""
        GenelToplam
    End If
End Sub

Sub GenelToplam()
    Dim Bak As Integer
    Dim Toplam As Double
    Toplam = 0
    For Bak = 3 To 48 Step 3
        If IsNumeric(Me.Controls("TextBox" & Bak).Value) Then
            Toplam = Toplam + CDbl(Me.Controls("TextBox" & Bak).Value)
        End If
    Next
    TextBox49.Value = Format(Toplam, "0.00")
End Sub
 
Ben de kodları CoPilot'a yazdırıp, ufak tefek değişiklik yaptım.
Korhan beyin önerisini destekliyorum. Böyle çok fazla ve aynı işi yapan objelerle uğraşıyorsanız Class Module daha iyidir
Korhan beyin dosyası gibi bu da bir alternatif olsun.
 

Ekli dosyalar

Geri
Üst