• DİKKAT

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

nsat makro karşılığı

Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
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)
 
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)
 
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.
 
Bu şekilde bişey buldum ama nasıl uygulayacağımı çözemedim.

Kod:
Sub Virgul_2()
    MsgBox Evaluate("=SUMPRODUCT(TRUNC(A1:A1000,2))")
End Sub
 
Şö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
 
Zeki bey bunu makro içerisinde nasıl kullanabilirim fonksiyon olarak kullanmak istemiyorum.
 
Deneyiniz.

C++:
Sub Test()
    Veri = Evaluate("TRUNC(" & Range("A1") & "/ 1.18, 5)")
End Sub
 
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)")
 
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
 
Teşekkür ederim hocam bu sefer oldu Allah zihin açıklığı versin size.
 
Geri
Üst