Hesaplama İşleminde Hata

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
İyi akşamlar arkadaşlar

Aşağıdaki kırmızı renkli kod satırındaki işlemin snucu damga_vergii_istisnasi değişkeninin değerinden küçük ise aktif hücrenin 9. sütununa 0 yazması gerekiyor ama yazdırmıyor. Küçük olan işlemin sonucunu yazıyor.

'DAMGA VERGİSİ
If ComboBox7.Value > 2021 Then
If WorksheetFunction.Round(ActiveCell.Offset(0, 7).Value * sab.Range("L10").Value, 2) < damga_vergii_istisnasi Then
ActiveCell.Offset(0, 9).Value = 0
ActiveCell.Offset(0, 9).NumberFormat = "#,##0.00"
Else
'Kodun devamı. İşemin sonucu büyük ise sonuçtan damga_vergii_istisnasi değişkenin değerini sonuçtan çıkaracak. aktif hücrenin 9. sütununa sonucu yazması gerekiyor. Onu da yapmıyor. Bu kez de büyük olan işlemin sonucunu yazıyor.

ActiveCell.Offset(0, 9).Value = WorksheetFunction.Round(ActiveCell.Offset(0, 7).Value * sab.Range("L10").Value, 2) - damga_vergii_istisnasi
ActiveCell.Offset(0, 9).NumberFormat = "#,##0.00"
End If
End if

Nerede yanlışlık var yardımcı olabilir misiniz.
 
Katılım
10 Mart 2013
Mesajlar
187
Excel Vers. ve Dili
2016 - İngilizce
Altın Üyelik Bitiş Tarihi
29.05.2018
Merhaba,

Kod satırınızda yapılan hesaplamalar doğru olsa da, sorun ActiveCell.Offset(0, 9).Value = 0 veya ActiveCell.Offset(0, 9).Value = WorksheetFunction.Round(ActiveCell.Offset(0, 7).Value * sab.Range("L10").Value, 2) - damga_vergii_istisnasi satırlarının çalışmadığından kaynaklanıyor olabilir.
Bu durumda, kod satırlarını şu şekilde değiştirmeniz gerekebilir.

If ComboBox7.Value > 2021 Then
Dim result As Double
result = WorksheetFunction.Round(ActiveCell.Offset(0, 7).Value * sab.Range("L10").Value, 2)
If result < damga_vergii_istisnasi Then
ActiveCell.Offset(0, 9).Value = 0
ActiveCell.Offset(0, 9).NumberFormat = "#,##0.00"
Else
ActiveCell.Offset(0, 9).Value = result - damga_vergii_istisnasi
ActiveCell.Offset(0, 9).NumberFormat = "#,##0.00"
End If
End If

Yukarıdaki kodda, hesaplama sonucu bir değişkende tutuluyor ve daha sonra bu değişken değerine göre koşullu bir yapı oluşturuluyor. Bu şekilde hücrelere doğru değerlerin yazılması sağlanabilir.
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Merhaba,

Kod satırınızda yapılan hesaplamalar doğru olsa da, sorun ActiveCell.Offset(0, 9).Value = 0 veya ActiveCell.Offset(0, 9).Value = WorksheetFunction.Round(ActiveCell.Offset(0, 7).Value * sab.Range("L10").Value, 2) - damga_vergii_istisnasi satırlarının çalışmadığından kaynaklanıyor olabilir.
Bu durumda, kod satırlarını şu şekilde değiştirmeniz gerekebilir.

If ComboBox7.Value > 2021 Then
Dim result As Double
result = WorksheetFunction.Round(ActiveCell.Offset(0, 7).Value * sab.Range("L10").Value, 2)
If result < damga_vergii_istisnasi Then
ActiveCell.Offset(0, 9).Value = 0
ActiveCell.Offset(0, 9).NumberFormat = "#,##0.00"
Else
ActiveCell.Offset(0, 9).Value = result - damga_vergii_istisnasi
ActiveCell.Offset(0, 9).NumberFormat = "#,##0.00"
End If
End If

Yukarıdaki kodda, hesaplama sonucu bir değişkende tutuluyor ve daha sonra bu değişken değerine göre koşullu bir yapı oluşturuluyor. Bu şekilde hücrelere doğru değerlerin yazılması sağlanabilir.
Teşekkürler sayın ridvanucok
 
Üst