You are on page 1of 14

‫اتصل بنا‬ ‫الصفحة الرئيسية‬ ‫اكسالوي‬

‫‪VBA‬‬ ‫أمثلة‬ ‫متقدم‬ ‫دوال البحث‬ ‫دوال التاريخ‬ ‫دوال الرياضيات‬ ‫دوال المعلومات‬ ‫دوال المنطق‬ ‫دوال االحصاء‬ ‫دوال النصوص‬ ‫معادالت‬ ‫أساسيات‬ ‫الرئيسية‬

‫‪Write More Effectively‬‬


‫‪Grammarly for Windows and Mac works where you do your most important‬‬
‫‪writing. Install now.‬‬

‫‪Grammarly‬‬ ‫‪Install‬‬

‫‪advanced #‬‬

‫تحويل األرقام إلى حروف ( تفقيط األرقام ) باللغة العربية في ‪Excel‬‬

‫عملية تحويل األرقام إلى حروف أو ما يسميها البعض عملية التفقيط نحتاجها فى عملنا فى الكثير من المواقف مثل ‪:‬‬

‫‪ -‬عند عمل فاتورة وكتابة اجمالى مبلغ الفاتورة باألرقام والحروف ‪.‬‬
‫جديد‬ ‫جديد‬ ‫‪-46%‬‬ ‫‪-52%‬‬

‫‪ -‬عند عمل شيك وكتابة مبلغ الشيك باألرقام والحروف ‪.‬‬


‫‪AliExpress.com‬‬

‫برنامج ‪ Excel‬يحتوى على الكثير من الدوال التى تسهل عليك العمل ‪ ,‬مثال دالة ‪ SUM‬لحساب المجموع ‪ ,‬و دالة ‪ COUNT‬لحساب عدد‬
‫الخاليا التى تحتوى على أرقام ‪ ,‬و دالة ‪ MAX‬لحساب أكبر قيمة ‪ ....‬وهكذا‬

‫لكن لألسف ال يوجد دالة جاهزة فى برنامج ‪ Excel‬تقوم بتحويل األرقام إلى حروف ‪ ,‬لذا عليك بعمل هذه الدالة بنفسك ‪ ,‬ولعمل دالة‬
‫مخصصة البد من كتابة كود ‪ VBA‬وهذا ما سنقوم بتعلمه فى هذا الدرس ‪.‬‬

‫افتح ملف ‪ Excel‬جديد ثم اذهب إلى التبويب ‪ Developer‬واضغط على ‪Visual Basic‬‬

‫سيتم فتح نافذة ‪ Microsoft Visual Basic‬قم األن بالضغط بزر الماوس األيمن على اسم المشروع ‪ ,‬ستظهر قائمة مختصرة قم‬
‫بالوقوف على االختيار ‪ Insert‬ومن القائمة الفرعية قم بالضغط على ‪ Module‬الضافة وحدة برمجية جديدة ‪.‬‬
‫سيتم اضافة وحدة برمجية جديدة باسم ‪Module1‬‬
: ‫ الموجودة فى الجانب األيمن من الشاشة قم بنسخ ولصق الكود التالى‬Module1 ‫فى نافذة كود‬

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

Excel ‫ميزانية األسرة الشهرية‬


Dim Thousand As String
Dim Hundred As String

Dim Fraction As String


Dim MyAnd As String
Excel ‫كيفية عمل معادالت‬
Dim I As Integer
Dim ReMark As String

‫شجرة الحسابات ( دليل الحسابات‬


Excel )
If Number > 999999999999.99 Then Exit Function

If Number < 0 Then


Excel ‫الغاء حماية ورقة‬
Number = Number * -1
‫" سالب" = ‪ReMark‬‬

‫‪End If‬‬

‫دوال برنامج ‪Excel‬‬ ‫‪If Number = 0 Then‬‬


‫"صفر" = ‪NumberToText‬‬

‫‪Exit Function‬‬

‫حساب الفرق بين تاريخين ‪Excel‬‬ ‫‪End If‬‬

‫"و " = ‪MyAnd‬‬


‫"" = )‪Array1(0‬‬
‫كشف حضور وانصراف الموظفين‬
‫‪Excel‬‬ ‫"مائة" = )‪Array1(1‬‬
‫"مائتان" = )‪Array1(2‬‬

‫"ثالثمائة" = )‪Array1(3‬‬
‫أسئلة على برنامج ‪Excel‬‬
‫"أربعمائة" = )‪Array1(4‬‬
‫"خمسمائة" = )‪Array1(5‬‬

‫"ستمائة" = )‪Array1(6‬‬
‫اظهار الصفر على الشمال في‬
‫"سبعمائة" = )‪Array1(7‬‬
‫‪Excel‬‬
‫"ثمانمائة" = )‪Array1(8‬‬
‫"تسعمائة" = )‪Array1(9‬‬

‫جديد‬

‫"" = )‪Array2(0‬‬
‫"عشر " = )‪Array2(1‬‬

‫"عشرون" = )‪Array2(2‬‬
‫جديد‬ ‫جديد‬

‫"ثالثون" = )‪Array2(3‬‬

‫"أربعون" = )‪Array2(4‬‬
‫"خمسون" = )‪Array2(5‬‬
‫‪AliExpress.com‬‬
‫"ستون" = )‪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 = "‫"عشرة‬

-55% ‫جديد‬

AliExpress.com

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
‫فى الكود السابق قمنا بعمل دالة مخصصة اسمها ‪ NumberToText‬تأخد المعامالت التالية ‪:‬‬

‫‪ : number‬الرقم‬

‫‪ : MainCurrency‬العملة الرئيسية‬

‫‪ : SubCurrency‬العملة الفرعية‬

‫يمكنك األن استخدام دالة ‪ NumberToText‬مثل أى دالة فى برنامج ‪ Excel‬كما سنرى فى األمثلة التالية ‪.‬‬

‫مثال ‪1‬‬

‫مثال ‪2‬‬
‫مثال ‪3‬‬

‫مثال ‪4‬‬
‫مثال ‪5‬‬

‫ملحوظة ‪ :‬قم بحفظ الملف على صيغة ‪ Excel Macro-Enabled Workbook‬ألنه يحتوى على كود ‪VBA‬‬
‫ملحوظة ‪ :‬يمكنك ايضا تحويل األرقام إلى حروف باللغة االنجليزية في ‪Excel‬‬

‫‪AliExpress.com‬‬
‫شارك علي الواتساب‬ ‫شارك علي تويتر‬ ‫شارك علي الفيسبوك‬

‫جميع الحقوق محفوظة © اكسالوي‬

You might also like