Soru TextBox'lar arası anlık veri değişimi

Katılım
5 Mart 2018
Mesajlar
34
Excel Vers. ve Dili
2016
Merhabalar
TextBox_BirimFiyat değiştiğinde bu değişikliği algılayıp Kalem1_Fiyat textBox'un yeni değerle değişikliği algılayıp yeni tutarla hesaplamasını nasıl sağlayabilirim.

Kod:
Private Sub Kalem1_Miktar_Change()
If TextBox_BirimFiyat = "" Then
On Error GoTo Bitir
If Kalem1_Miktar = "" Then Exit Sub
Bitir: MsgBox "Lütfen önce KDV Dahil  /  KDV Hariç fiyat belirleyiniz!!", vbCritical
Kalem1_Miktar = ""
Exit Sub
End If

If Kalem1_Miktar = "" Then
Kalem1_Fiyat = ""
Else
Kalem1_Fiyat = Replace(Kalem1_Miktar * TextBox_BirimFiyat, ".", ",")
End If

Kalem1_Fiyat = Format(Kalem1_Fiyat, "0.00")
End Sub
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,658
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Örnek dosya eklermisiniz.
 
Katılım
5 Mart 2018
Mesajlar
34
Excel Vers. ve Dili
2016
Sayfa3'ten Fatura kes düğmesine basınca açılan userformda KDV Dahil yada KDV Hariç kısmına tutar girdikten sonra Birim Fiyat oluşuyor. Sonra kalemlerde Miktar kısmına değer girince Birim Fiyat ile çarpıyor ve Fiyat kısmına yazıyor. Ancak KDV Dahil yada KDV Hariç kısmından değeri değiştirince Fiyat eski kalıyor. İnşallah anlatabilmişimdir.

Dosya linktedir;
http://dosya.co/jidfqlq2xxtt/Proje.rar.html
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,007
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bir şeyler karaladım. Deneyiniz.

Kod:
Private Sub KDV_Dahil_Change()
If Me.KDV_Dahil = "" Then Me.KDV_Haric.Enabled = True
If Me.KDV_Dahil <> "" Then Me.KDV_Haric.Enabled = False

If KDV_Dahil = "" Then
TextBox_BirimFiyat = ""
Else
TextBox_BirimFiyat = Replace(KDV_Dahil / 1.18, ".", ",")
End If
TextBox_BirimFiyat = Format(TextBox_BirimFiyat, "0.00")

For Each Nesne In Me.Controls
    If InStr(1, Nesne.Name, "Miktar") > 0 Then
        If Nesne.Value <> "" Then
            Ad = Replace(Nesne.Name, "Miktar", "Fiyat")
            Me.Controls(Ad).Value = Nesne.Value * IIf(TextBox_BirimFiyat.Value = "", 0, TextBox_BirimFiyat.Value)
        End If
    End If
Next
End Sub

Private Sub KDV_Haric_Change()
If Me.KDV_Haric = "" Then Me.KDV_Dahil.Enabled = True
If Me.KDV_Haric <> "" Then Me.KDV_Dahil.Enabled = False
If Me.KDV_Haric = "" Then Me.TextBox_BirimFiyat.Enabled = True
If Me.KDV_Haric <> "" Then Me.TextBox_BirimFiyat.Enabled = False

If KDV_Haric = "" Then
TextBox_BirimFiyat = ""
Else
TextBox_BirimFiyat.Value = KDV_Haric.Value
End If

For Each Nesne In Me.Controls
    If InStr(1, Nesne.Name, "Miktar") > 0 Then
        If Nesne.Value <> "" Then
            Ad = Replace(Nesne.Name, "Miktar", "Fiyat")
            Me.Controls(Ad).Value = Nesne.Value * IIf(TextBox_BirimFiyat.Value = "", 0, TextBox_BirimFiyat.Value)
        End If
    End If
Next
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,007
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Görsel üzerinde tarif edebilir misiniz?
 
Katılım
5 Mart 2018
Mesajlar
34
Excel Vers. ve Dili
2016
Aslında sorun küsuratlar da ortaya çıkıyor. Bu konuda yardımcı olabilecek birileri var mı?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,007
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sebebi KDV DAHİL işleminde 3 küsürattan sonraki kuruş rakamlarını biçimlendirmenizden kaynaklanıyor.

Biçimi kaldırırsanız toplamlar tutacaktır.
 
Katılım
5 Mart 2018
Mesajlar
34
Excel Vers. ve Dili
2016
Biçimlendirmeyi kaldırdığımda 33.90 yapıyor. Ben bu veriyi Excelde hücreye atadığımda 33,90 olarak yazmasını nasıl sağlarım peki?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,007
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi deneyiniz.

Kod:
Range("A1").Value = CDbl(Tutar)
 
Üst