بعد اذن استاذى الغالى ياسر خليل
قمت ببرمجة دالة تقوم بجمع الارقام مهما كان عدد خانتها سواء كان رقم صحيح او رقم عشرى
اسميتها SumPro ، ادخل الرقم الاول فى الباراميتر الاول والرقم الثانى فى الباراميتر الثانى
ناتج الدالة قيمة نصية
ارجوا ان تفى بالاغراض كاثراء للموضوع اضافة للاداة المقدمه من استاذ ياسر
كود الدالة ادناه:
CODE
Function SumPro(Num1 As String, Num2 As String) As String
'Developer:Eslam Abdullah
Dim i%, Mx%, Mn%, Output$, Result$, Comment$, Dec$
Num1 = Format(Num1, IIf(InStr(Num1, "E"), "#", "@")): Num2 = Format(Num2, IIf(InStr(Num2, "E"), "#", "@"))
Dec = Val(Mid(Num1, InStr(Format(Num1, "#."), "."))) + Val(Mid(Num2, InStr(Format(Num2, "#."), ".")))
Num1 = StrReverse(Mid(Num1, 1, InStr(Format(Num1, "#."), ".") - 1)): Num2 = StrReverse(Mid(Num2, 1, InStr(Format(Num2, "#."), ".") - 1))
If Len(Num1) > Len(Num2) Then Mx = Len(Num1): Mn = Len(Num2) Else Mx = Len(Num2): Mn = Len(Num1)
GoSub Deci:
If Dec >= 1 Then Num1 = Result: Num2 = Int(Dec): Result = "": Mx = 1: Mn = 1: Dec = Dec - 1: GoSub Deci
If Dec > 0 Then Result = Result & Mid(Dec, 2)
SumPro = Result
Exit Function
Deci:
For i = 1 To Mx
If Comment = "" And i > Mn Then Exit For
Output = Val(Mid(Num1, i, 1)) + Val(Mid(Num2, i, 1)) + Val(Comment)
Result = Right(Output, 1) & Result
Comment = Mid(StrReverse(Output), 2)
Next i
Result = StrReverse(Mid(Num1, i)) & StrReverse(Mid(Num2, i)) & Result
Return
End Function