nsat makro karşılığı

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
nsat makro olarak nasıl kullanabilirim. Aşağıdaki kodun virgülden sonra 5 hanesini dikkate almasını istiyorum. Yuvarla ile kullanmak istemiyorum.

Kod:
Round((s1.Cells(i, "B") / 1.18), 5)
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
NSAT daha önce kullanmadım ama Excel yardımından ondalık kısmını iptal edip tamsayıya yuvarlama yaptığını okudum. Bu durumda ondalık yani virgülden sonraki kısım iptal olacağından sizin isteğiniz olan "virgülden sonra 5 hane" NSAT formülüyle nasıl dikkate alınacak anlamadım.

Asıl yapmak istediğiniz 1,234567 ve 1,234561 sayılarının her ikisini de 1,23456 olarak alması ise AŞAĞIYUVARLA formülünü deneyiniz.

WorksheetFunction.RoundDown(s1.Cells(i, "B") / 1.18, 5)
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Teşekkür ederim Yusuf bey bana aşağı yukarı yada 0,5 üzerini yukarıya yuvarlamak çözmüyor. virgülden sonraki 5 haneden sonra tamamen kesmem gerekiyor. fonksiyonda kullanılıyor nsat(değer;5) şeklinde ve işimi görüyor. Tüm düzenlemelerimi makro ile yaptığım için kodun içerisinde düzenlemem gerekiyor.
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Bu şekilde bişey buldum ama nasıl uygulayacağımı çözemedim.

Kod:
Sub Virgul_2()
    MsgBox Evaluate("=SUMPRODUCT(TRUNC(A1:A1000,2))")
End Sub
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Şöyle birşey kullanabilirsiniz...

C#:
Function VBA_Trunc(ByVal value As Double, ByVal vDecimal As Integer)
    ' Zeki Gürsoy
    Dim factor As Long
   
    factor = 10 ^ vDecimal
    value = Fix(value * factor)
    VBA_Trunc = value / factor
End Function
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Zeki bey bunu makro içerisinde nasıl kullanabilirim fonksiyon olarak kullanmak istemiyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Sub Test()
    Veri = Evaluate("TRUNC(" & Range("A1") & "/ 1.18, 5)")
End Sub
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Hocam yeni bakma fırsatım oldu denedim ama değer hatası veriyor kodu aşağıdaki şekilde kullandım.

Kod:
s2.Cells(satır, "K").Value = Evaluate("TRUNC(" & s1.Cells(i, "H") & "/ 1.18, 5)")
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Eğer uyguladığınız değer ondalıklı bir değerse aşağıdaki gibi sonuç alabilirsiniz.

C++:
Sub Test()
    Veri = Evaluate("TRUNC(" & Replace(Range("A1"), ",", ".") & "/ 1.18, 5)")
End Sub
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Teşekkür ederim hocam bu sefer oldu Allah zihin açıklığı versin size.
 
Üst