Soru Vba İle Yuvarlama

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
204
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Sevgili forum üyesi ve uzmanı herkese günaydın.. Aşağıda bir vba problemim var yardımcı olacak arkadaşlar olursa şimdiden teşekkür ederim.
Ben bu kod ile MİZAN sayfamda bulunan verileri etopla aracılığıyla KARZARAR sayfasına çekiyorum. Problemsiz çalışan bir kod. Ancak bir ekleme yapmak istiyorum. Bu şekilde çalışan veri çeken başka sayfalarımda olduğu için bunu bütün bir dosyada aktif olacak bir kod mu yoksa aşağıdaki kodun içine entegre edilebilecek bir şey mi olur bilmiyorum. Yapmak istediğim ise virgülden sonraki kısımların en yakın tam sayıya yuvarlanması. (Ss.Range("AC3:AD" & Rows.Count).NumberFormat = "#,##0;(#,##0)") En altta yazdığım bu kısım diyelim ki hücredeki sayı 123.562,23 ise bunu 123.562 olarak gösteriyor. Ama ben tamamen bu sayının en yakın tam sayıya yuvarlasın istiyorum.


Sub KAR_ZARAR()
Dim i As Long, sons As Long, sond As Long, z As Date
Dim Sd As Worksheet, Ss As Worksheet, Wf As WorksheetFunction
Dim a1 As String, a2 As String, a3 As String, a4 As String, a5 As String, b1 As String

z = Timer
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With

Set Sd = Sheets("MİZAN")
Set Ss = Sheets("KARZARAR")
Set Wf = WorksheetFunction

Ss.Select
sons = Ss.Cells(Rows.Count, 1).End(xlUp).Row
sond = Sd.Cells(Rows.Count, 1).End(xlUp).Row
Ss.Range("AC3:AD" & Rows.Count).ClearContents

a1 = Sd.Range("A3:A" & sond).Address(external:=True)
a2 = Sd.Range("M3:M" & sond).Address(external:=True)
a3 = Sd.Range("N3:N" & sond).Address(external:=True)
a4 = Sd.Range("O3:O" & sond).Address(external:=True)

For i = 3 To sons
If Wf.CountA(Ss.Cells(i, "A").Resize(1, 25)) > 0 Then
b1 = Ss.Cells(i, "A").Resize(1, 25).Address
Ss.Cells(i, 29) = -Evaluate("=SUM(SUMIF(" & a1 & "," & b1 & "," & a4 & "))")
Ss.Cells(i, 30) = -Evaluate("=SUM(SUMIF(" & a1 & "," & b1 & "," & a3 & "))")
End If
Next
Ss.Range("AC3:AD" & Rows.Count).NumberFormat = "#,##0;(#,##0)"

With Application
.ScreenUpdating = True
.Calculation = xlAutomatic
.EnableEvents = True
End With

' MsgBox "Süre: " & Format(Timer - z, "0.00"), vbInformation
End Sub
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Merhaba,

“123.562,23” ondalıklı sayınıza en yakın tam sayı “123.562”tir. Siz “123.563” olarak mı görünmesini istiyorsunuz?
 

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
204
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Selamlar Hocam en yakın tamsayıya yuvarlasın 123.562 olmalı
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Merhaba,

Kod bahsettiğiniz gibi çalışıyor. İsterseniz temsili verileri içeren örnek dosyanızı ekleyin oradan bakalım.
 

Ekli dosyalar

Üst