[كود] تحويل الرقم الى نص في الاكسل - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176) +--- الموضوع : [كود] تحويل الرقم الى نص في الاكسل (/showthread.php?tid=37409) |
تحويل الرقم الى نص في الاكسل - Aimen Darwish - 08-01-21 Function NumberToText(Number As Double, MainCurrency As String, SubCurrency As String) Dim Array1(0 To 9) As String Dim Array2(0 To 9) As String Dim Array3(0 To 9) As String Dim MyNumber As String Dim GetNumber As String Dim ReadNumber As String Dim My100 As String Dim My10 As String Dim My1 As String Dim My11 As String Dim My12 As String Dim GetText As String Dim Billion As String Dim Million As String Dim Thousand As String Dim Hundred As String Dim Fraction As String Dim MyAnd As String Dim I As Integer Dim ReMark As String If Number > 999999999999.99 Then Exit Function If Number < 0 Then Number = Number * -1 ReMark = "سالب " End If If Number = 0 Then NumberToText = "صفر" Exit Function End If MyAnd = " و" Array1(0) = "" Array1(1) = "مائة" Array1(2) = "مئتان" Array1(3) = "ثلاثمائة" Array1(4) = "اربعمائة" Array1(5) = "خمسمائة" Array1(6) = "ستمائة" Array1(7) = "سبعمائة" Array1(8) = "ثمانمائة" Array1(9) = "تسعمائة" Array2(0) = "" Array2(1) = " عشر" Array2(2) = "عشرون" Array2(3) = "ثلاثون" Array2(4) = "اربعون" Array2(5) = "خمسون" Array2(6) = "ستون" Array2(7) = "سبعون" Array2(8) = "ثمانون" Array2(9) = "تسعون" Array3(0) = "" Array3(1) = "واحد" Array3(2) = "إثنان" Array3(3) = "ثلاثه" Array3(4) = "اربعه" Array3(5) = "خمسة" Array3(6) = "ستة" Array3(7) = "سبعة" Array3(8) = "ثمانية" Array3(9) = "تسعة" GetNumber = Format(Number, "000000000000.00") I = 0 Do While I < 15 If I < 12 Then MyNumber = Mid$(GetNumber, I + 1, 3) Else MyNumber = "0" + Mid$(GetNumber, I + 2, 2) End If If (Mid$(MyNumber, 1, 3)) > 0 Then ReadNumber = Mid$(MyNumber, 1, 1) My100 = Array1(ReadNumber) ReadNumber = Mid$(MyNumber, 3, 1) My1 = Array3(ReadNumber) ReadNumber = Mid$(MyNumber, 2, 1) My10 = Array2(ReadNumber) If Mid$(MyNumber, 2, 2) = 11 Then My11 = "إحدى عشرة" If Mid$(MyNumber, 2, 2) = 12 Then My12 = "إثنى عشرة" If Mid$(MyNumber, 2, 2) = 10 Then My10 = "عشرة" If ((Mid$(MyNumber, 1, 1)) > 0) And ((Mid$(MyNumber, 2, 2)) > 0) Then My100 = My100 + MyAnd If ((Mid$(MyNumber, 3, 1)) > 0) And ((Mid$(MyNumber, 2, 1)) > 1) Then My1 = My1 + MyAnd GetText = My100 + My1 + My10 If ((Mid$(MyNumber, 3, 1)) = 1) And ((Mid$(MyNumber, 2, 1)) = 1) Then GetText = My100 + My11 If ((Mid$(MyNumber, 1, 1)) = 0) Then GetText = My11 End If If ((Mid$(MyNumber, 3, 1)) = 2) And ((Mid$(MyNumber, 2, 1)) = 1) Then GetText = My100 + My12 If ((Mid$(MyNumber, 1, 1)) = 0) Then GetText = My12 End If If (I = 0) And (GetText <> "") Then If ((Mid$(MyNumber, 1, 3)) > 10) Then Billion = GetText + " مليار" Else Billion = GetText + " مليارات" If ((Mid$(MyNumber, 1, 3)) = 2) Then Billion = " مليار" If ((Mid$(MyNumber, 1, 3)) = 2) Then Billion = " مليارن" End If End If If (I = 3) And (GetText <> "") Then If ((Mid$(MyNumber, 1, 3)) > 10) Then Million = GetText + " مليون" Else Million = GetText + " ملايين" If ((Mid$(MyNumber, 1, 3)) = 1) Then Million = " مليون" If ((Mid$(MyNumber, 1, 3)) = 2) Then Million = " مليونان" End If End If If (I = 6) And (GetText <> "") Then If ((Mid$(MyNumber, 1, 3)) > 10) Then Thousand = GetText + " الف" Else Thousand = GetText + " آلآف" If ((Mid$(MyNumber, 3, 1)) = 1) Then Thousand = " الف" If ((Mid$(MyNumber, 3, 1)) = 2) Then Thousand = " الفان" End If End If If (I = 9) And (GetText <> "") Then Hundred = GetText If (I = 12) And (GetText <> "") Then Fraction = GetText End If I = I + 3 Loop If (Billion <> "") Then If (Million <> "") Or (Thousand <> "") Or (Hundred <> "") Then Billion = Billion + MyAnd End If If (Million <> "") Then If (Thousand <> "") Or (Hundred <> "") Then Million = Million + MyAnd End If If (Thousand <> "") Then If (Hundred <> "") Then Thousand = Thousand + MyAnd End If If Fraction <> "" Then If (Billion <> "") Or (Million <> "") Or (Thousand <> "") Or (Hundred <> "") Then NumberToText = ReMark + Billion + Million + Thousand + Hundred + " " + MainCurrency + MyAnd + Fraction + " " + SubCurrency Else NumberToText = ReMark + Fraction + " " + SubCurrency End If Else NumberToText = ReMark + Billion + Million + Thousand + Hundred + " " + MainCurrency End If End Function |