السلام عليكم
اخواني الكرام هذا حل للسؤال الخاص بدالة تقريب
الدالة بها طريقتين للتقريب
الاولى اذا كان بعد الفاصلة رقم واحد مثل 1.6 او 1.9 او 1.3 سيتم التقريب الى التالي
1. اذا كان اقل من 5 سيصبح الرقم بدون تقريب مثل
1.3 سيصبح 1
99.4 ستصبح 99
2. اذا كان يساوي 5 لن يتم الاتقريب
3. اذا اكثر من 5 ستم زيادة 1 مثل
6.6 ستصبح 7
==========
الحالة الثانية وهي اذا كان الرقم بعد الفاصلة من رقمين سيتم التقريب بنفس الحالة الاولى لكن الى الرقم الاول بعد الفاصلة
هذا هو كود الدالة
Function RoudFun(MyCel As String)
If MyCel = Empty Then RoudFun = "": Exit Function
MyCel_Int = Int(MyCel)
MyCel2 = Round(MyCel - MyCel_Int, 3)
If Len(MyCel2) = 1 Then RoudFun = MyCel: Exit Function
If Len(MyCel2) = 3 Then
Select Case MyCel2
Case 0 To 0.4:
RoudFun = MyCel_Int
Case 0.5 To 0.5:
RoudFun = MyCel_Int + 0.5
Case 0.6 To 0.9:
RoudFun = MyCel_Int + 1
End Select
End If
If Len(MyCel2) = 4 Then
Select Case Val(Mid(MyCel2, 4, 1))
Case 0 To 4:
RoudFun = MyCel_Int + Val(Mid(MyCel2, 1, 3))
Case Is = 5:
RoudFun = MyCel_Int + Val(Mid(MyCel2, 1, 3)) + "0.0" & Val(Mid(MyCel2, 4, 1))
Case 6 To 9:
RoudFun = MyCel_Int + Val(Mid(MyCel2, 1, 3)) + "0.1"
End Select
End If
End Function
وهذا هو المرفق
RoudFun.rar