• DİKKAT

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

Userform Textbox verileri ile ilgili Hesaplama Hatası

Katılım
12 Mayıs 2005
Mesajlar
40
Merhaba,
Üzerinde deneme çalışması yaptığım dosyada karşılaştığım bir sorunu çözemedim. Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.
Sorun şu: Satın alınan ürün fiyata %10 KDV Dahil olarak alınıyor. Satıcı KDV'siz fiyat üzerinden %5 İskonto uygulayıp İskontolu Tutara %10 KDV uyguluyor.
Yazmaya çalıştığım kodlar, bu şekilde satın alınan 25 birim ürünün nihai Tutarını 880,95 TL yerine, 875 TL olarak hesaplıyor.
Nerede hata yapıyorum çözemedim.

Not: Ürün Yün ise Miktar bölümüne 5 (paket) yazılınca (Paket içeriğinde 5 yumak olduğu için) 5 ile çarparak 25 birim olarak hesaplıyor.
 

Ekli dosyalar

  • Ekran Alıntısı2.JPG
    Ekran Alıntısı2.JPG
    16.6 KB · Görüntüleme: 8
  • Ekran Alıntısı.JPG
    Ekran Alıntısı.JPG
    15.6 KB · Görüntüleme: 8
  • StokGirişDeneme.xlsb
    StokGirişDeneme.xlsb
    44.9 KB · Görüntüleme: 6
Merhaba.
Değişken türlerini integer yapmışsınız double olmalı
İnteger tamsayı değişkendir
Double ondalık değişkendir.
Kod:
Dim kdvsizfiyat As Integer, iskontolufiyat As Integer, kdvlifiyat As Integer
Aşağıdaki gibi olmalı.
Kod:
Dim kdvsizfiyat As Double, iskontolufiyat As Double, kdvlifiyat As Double
 
Teşekkür ederim. Dediğiniz gibi değiştirdim. Doğru hesaplandı.
Fakat yukarıda bahsetmiş olduğum hesaplamadaki gibi 880,95 TL yerine, 881 olarak YUKARI YUVARLIYOR..
Küsuratı nasıl gösterebilirim?
 
5 textboxun kodu da aynı bir prosedür yazıp hepsine çağıracak şekilde yazmak kodları kısaltır.
Kodlarda da ufak değişiklikler yaptım.

Kod:
Private Sub txtmiktar_Change()
    Hesapla
End Sub

Private Sub txtalis_Change()
    Hesapla
End Sub

Private Sub txtkdv_Change()
    Hesapla
End Sub

Private Sub txtiskonto_Change()
    Hesapla
End Sub

Private Sub txtsatis_Change()
    Hesapla
End Sub

Sub Hesapla()
    Dim kdvsizfiyat As Double, iskontolufiyat As Double, kdvlifiyat As Double
    
    kdvsizfiyat = SayıKontrol(txtalis) / (1 + (SayıKontrol(txtkdv) / 100))
    iskontolufiyat = SayıKontrol(kdvsizfiyat) / (1 + (SayıKontrol(txtiskonto)) / 100)
    kdvlifiyat = SayıKontrol(iskontolufiyat) * (1 + (SayıKontrol(txtkdv) / 100))
    
    If comturu.Text = "Yün" And txtiskonto.Text <> "" Then
        txtmaliyet = Format(((CDbl(SayıKontrol(kdvlifiyat)) * CDbl(SayıKontrol(txtmiktar)))), "#,##0.00") * 5
        txtgelir = Format(((CDbl(SayıKontrol(txtmiktar)) * CDbl(SayıKontrol(txtsatis)))), "#,##0.00") * 5
    Else
        txtmaliyet = Format(((CDbl(SayıKontrol(kdvlifiyat)) * CDbl(SayıKontrol(txtmiktar)))), "#,##0.00")
        txtgelir = Format(((CDbl(SayıKontrol(txtsatis)) * CDbl(SayıKontrol(txtmiktar)))), "#,##0.00")
    End If
End Sub
 
Geri
Üst