كيف احول الارقام الى كتابة
طريقة تحويل الارقام الى كتابة
لا يحتوي Excel على وظيفة لتحويل الأرقام إلى حروف إنجليزية، ولكن يمكنك إضافة هذه الإمكانية عن طريق لصق رمز وظيفة SpellNumber التالي في وحدة VBA (Visual Basic for Applications)، وتتيح لك هذه الوظيفة تحويل المبالغ بالدولار والسنت إلى كلمات باستخدام صيغة ،ويمكن أن يكون هذا مفيدًا جدًا إذا كنت تستخدم
Excel
كقالب لطباعة الشيكات.
ويمكنك تحويل الأرقام إلى حروف عن طريق استخدام كود برمجي داخل برنامج الإكسل، ويمكنك كتابة وتنفيذ هذا الكود باستخدام الخطوات التالية: الخطوات التالية:
أولًا: لعرض علامة التبويب developer
- اذهب لقائمة ملف file.
- اضغط على خيارات options
- من النافذة المنبثقة التي ستظهر أمامك اضغط على تخصيص الشريط ” customise ribbon”
- ابحث عن المطور developer ، ثم ضع علامة (√) داخل المربع المجاور لها.
- اضغط على ok.
ثانيًا: بعد إظهار علامة التبويب المطور قم بالخطوات التالية لتحويل الأرقام إلى حروف:
اضغط على علامة التبويب المطور ” developer”.
- اذهب إلى visual basic واضغط عليه.
- اضغط على insert.
- اختر model، وسوف تنبثق لك نافذة.
-
قم بنسخ الكود التالي ولصقه في النافذة.
Option Explicit
‘Main Function
Function SpellNumber(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = ” Thousand ”
Place(3) = ” Million ”
Place(4) = ” Billion ”
Place(5) = ” Trillion ”
‘ String representation of amount.
MyNumber = Trim(Str(MyNumber))
‘ Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, “.”)
‘ Convert cents and set MyNumber to dollar amount.
If DecimalPlace > 0 Then
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ “00”, 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace – 1))
End If
Count = 1
Do While MyNumber <> “”
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> “” Then Dollars = Temp & Place(Count) & Dollars
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) – 3)
Else
MyNumber = “”
End If
Count = Count + 1
Loop
Select Case Dollars
Case “”
Dollars = “No Dollars”
Case “One”
Dollars = “One Dollar”
Case Else
Dollars = Dollars & ” Dollars”
End Select
Select Case Cents
Case “”
Cents = ” and No Cents”
Case “One”
Cents = ” and One Cent”
Case Else
Cents = ” and ” & Cents & ” Cents”
End Select
SpellNumber = Dollars & Cents
End Function
‘ Converts a number from 100-999 into text
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right(“000” & MyNumber, 3)
‘ Convert the hundreds place.
If Mid(MyNumber, 1, 1) <> “0” Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & ” Hundred ”
End If
‘ Convert the tens and ones place.
If Mid(MyNumber, 2, 1) <> “0” Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
‘ Converts a number from 10 to 99 into text.
Function GetTens(TensText)
Dim Result As String
Result = “” ‘ Null out the temporary function value.
If Val(Left(TensText, 1)) = 1 Then ‘ If value between 10-19…
Select Case Val(TensText)
Case 10: Result = “Ten”
Case 11: Result = “Eleven”
Case 12: Result = “Twelve”
Case 13: Result = “Thirteen”
Case 14: Result = “Fourteen”
Case 15: Result = “Fifteen”
Case 16: Result = “Sixteen”
Case 17: Result = “Seventeen”
Case 18: Result = “Eighteen”
Case 19: Result = “Nineteen”
Case Else
End Select
Else ‘ If value between 20-99…
Select Case Val(Left(TensText, 1))
Case 2: Result = “Twenty ”
Case 3: Result = “Thirty ”
Case 4: Result = “Forty ”
Case 5: Result = “Fifty ”
Case 6: Result = “Sixty ”
Case 7: Result = “Seventy ”
Case 8: Result = “Eighty ”
Case 9: Result = “Ninety ”
Case Else
End Select
Result = Result & GetDigit _
(Right(TensText, 1)) ‘ Retrieve ones place.
End If
GetTens = Result
End Function
‘ Converts a number from 1 to 9 into text.
Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = “One”
Case 2: GetDigit = “Two”
Case 3: GetDigit = “Three”
Case 4: GetDigit = “Four”
Case 5: GetDigit = “Five”
Case 6: GetDigit = “Six”
Case 7: GetDigit = “Seven”
Case 8: GetDigit = “Eight”
Case 9: GetDigit = “Nine”
Case Else: GetDigit = “”
End Select
End Function
- اضغط حفظ، واختر تنسيق excel macro enabled template
ثالثًا: الآن بعد أن قمت بنسخ الكود قم بتفعيل الدالة داخل البرنامج.
- اذهب الجدول الذي تريد تحويل الأرقام إلى كتابة فيه.
- وفي الخانة المراد الكتابة بها قم بكتابة =()SpellNumber (اجعل = على اليسار).
- ثم بين القوسين اضغط على علامة الدالة ƒ.
- سيظهر لك مربع حوار function arguments.
- في خانة number ضع الخلية التي بها الرقمالمراد تحويله
- في خانة ال main currency ضع العملة مثلا دولار.
- وفي الsub currency ضع العملة سنت.
- اضغط وستجد أن الأرقام ستتحول إلى حروف.
- بعد ذلك قم بسحب الدالة بالسهم حتى أخر الجدول، وستجد أن كل الأرقام التي ستضيفها في خانة الأرقام تتحول إلى كتابة.
- ويمكنك أيضًا كتابة القيمة يدويًا مثل = SpellNumber (22.50)، ثم اضغط على زر enter ليتحول الرقم إلى حروف. [1]
تحويل الأرقام إلى حروف باللغة العربية Excel
اتبع نفس الخطوات السابقة لتحويل الأرقام إلى حروف عربية، لكن فقط قم بنسخ الكود التالي وطباعته داخل وحدة الماكرو بدلًا من الكود السابق:
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 StringIf Number > 999999999999.99 Then Exit Function
If Number < 0 Then
Number = Number * -1
ReMark = “سالب ”
End IfIf Number = 0 Then
NumberToText = “صفر”
Exit Function
End IfMyAnd = ” و”
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 < 15If I < 12 Then
MyNumber = Mid$(GetNumber, I + 1, 3)
Else
MyNumber = “0” + Mid$(GetNumber, I + 2, 2)
End IfIf (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 + MyAndGetText = 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 IfIf ((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 IfIf (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 IfIf (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 IfIf (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 IfIf (I = 9) And (GetText <> “”) Then Hundred = GetText
If (I = 12) And (GetText <> “”) Then Fraction = GetText
End IfI = I + 3
LoopIf (Billion <> “”) Then
If (Million <> “”) Or (Thousand <> “”) Or (Hundred <> “”) Then Billion = Billion + MyAnd
End IfIf (Million <> “”) Then
If (Thousand <> “”) Or (Hundred <> “”) Then Million = Million + MyAnd
End IfIf (Thousand <> “”) Then
If (Hundred <> “”) Then Thousand = Thousand + MyAnd
End IfIf 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
- وفي الخانة المراد الكتابة بها قم بكتابة اسم الدالة =()NumberToText
تحويل الارقام إلى حروف باللغة العربية Word
لتحويل الأرقام لحروف في الورد قم بكتابة الرقم المراد تحويله على سبيل المثال 125، ثم قم بتحديده .
اضغط على زر ctrl + f9، ليظهر أمامك قوسين {}
ثم اكتب الصيغة التالية داخل القوسين
{=125\*cardtext}
اضغط على الصيغة التي قمت بكتابتها بالزر الأيمن للفأرة ثم اختر تبديل رموز الحقول.
لتتحول الأرقام إلى كتابة.
ملاحظة : هذه الطريقة قد لا تعمل مع كل نسخ الوورد. [2]