الكود المرفق يقوم بتحويل أي رقم إلى حروف (التفقيط) باللغة العربية بالجنيه المصري.
قم بنسخ الكود المرفق و إضافته في Excel VB و ستعمل الوظيفة Monitize كأحد الوظائف الموجودة بإكسل و تساعدك على تحويل أي رقم إلى مبلغ مالي بالحروف بالجنيه المصري. الفيديو التالي يوضح كيفية استخدام الوظيفة الجديدة:
يمكنك نسخ الكود التالي بالكامل و إضافته في إكسل لاستخدامه بعد ذلك. ملحوظة: تم عمل هذا الكود لإجراء وظيفة محددة و يجب اختباره جيدا قبل استخدامه بشكل احترافي.
يمكنك نسخ الكود التالي بالكامل و إضافته في إكسل لاستخدامه بعد ذلك. ملحوظة: تم عمل هذا الكود لإجراء وظيفة محددة و يجب اختباره جيدا قبل استخدامه بشكل احترافي.
Public Function Monitize(num_entry)
Dim LE
Dim PT
Dim iVal
Dim fFrac
Dim cDigit
Dim cFrac
Dim result
LE = " جنيه "
PT = " قرش "
iVal = Int(num_entry)
cDigit = Digit_Translator(iVal)
fFrac = Val(Right(Format(num_entry, "000000000000.00"), 2))
cFrac = Digit_Translator(fFrac)
If cDigit <> "" And fFrac > 0 Then result = cDigit & LE & " و " & cFrac & PT
If cDigit <> "" And fFrac = 0 Then result = cDigit & LE
If cDigit = "" And fFrac <> 0 Then result = cFrac & PT
Monitize = result
End Function
Private Function Digit_Translator(X)
Dim n
Dim c
Dim c1
Dim Digit1
Dim c2
Dim Digit2
Dim c3
Dim Digit3
Dim c4
Dim Digit4
Dim c5
Dim Digit5
Dim c6
Dim Digit6
n = Int(X)
c = Format(n, "000000000000")
c1 = Val(Mid(c, 12, 1))
Select Case c1
Case Is = 1: Digit1 = "واحد"
Case Is = 2: Digit1 = "اثنان"
Case Is = 3: Digit1 = "ثلاث"
Case Is = 4: Digit1 = "اربع"
Case Is = 5: Digit1 = "خمس"
Case Is = 6: Digit1 = "ست"
Case Is = 7: Digit1 = "سبع"
Case Is = 8: Digit1 = "ثمان"
Case Is = 9: Digit1 = "تسع"
End Select
c2 = Val(Mid(c, 11, 1))
Select Case c2
Case Is = 1: Digit2 = "عشر"
Case Is = 2: Digit2 = "عشرون"
Case Is = 3: Digit2 = "ثلاثون"
Case Is = 4: Digit2 = "اربعون"
Case Is = 5: Digit2 = "خمسون"
Case Is = 6: Digit2 = "ستون"
Case Is = 7: Digit2 = "سبعون"
Case Is = 8: Digit2 = "ثمانون"
Case Is = 9: Digit2 = "تسعون"
End Select
If Digit1 <> "" And c2 > 1 Then Digit2 = Digit1 + " و" + Digit2
If Digit2 = "" Then Digit2 = Digit1
If c1 = 0 And c2 = 1 Then Digit2 = Digit2 + "ة"
If c1 = 1 And c2 = 1 Then Digit2 = "احدى عشر"
If c1 = 2 And c2 = 1 Then Digit2 = "اثنتى عشر"
If c1 > 2 And c2 = 1 Then Digit2 = Digit1 + " " + Digit2
c3 = Val(Mid(c, 10, 1))
Select Case c3
Case Is = 1: Digit3 = "مائة"
Case Is = 2: Digit3 = "مئتان"
Case Is > 2: Digit3 = Left(Digit_Translator(c3), Len(Digit_Translator(c3))) + "مائة"
End Select
If Digit3 <> "" And Digit2 <> "" Then Digit3 = Digit3 + " و" + Digit2
If Digit3 = "" Then Digit3 = Digit2
c4 = Val(Mid(c, 7, 3))
Select Case c4
Case Is = 1: Digit4 = "الف"
Case Is = 2: Digit4 = "الفان"
Case 3 To 10: Digit4 = Digit_Translator(c4) + " آلاف"
Case Is > 10: Digit4 = Digit_Translator(c4) + " الف"
End Select
If Digit4 <> "" And Digit3 <> "" Then Digit4 = Digit4 + " و" + Digit3
If Digit4 = "" Then Digit4 = Digit3
c5 = Val(Mid(c, 4, 3))
Select Case c5
Case Is = 1: Digit5 = "مليون"
Case Is = 2: Digit5 = "مليونان"
Case 3 To 10: Digit5 = Digit_Translator(c5) + " ملايين"
Case Is > 10: Digit5 = Digit_Translator(c5) + " مليونا"
End Select
If Digit5 <> "" And Digit4 <> "" Then Digit5 = Digit5 + " و" + Digit4
If Digit5 = "" Then Digit5 = Digit4
c6 = Val(Mid(c, 1, 3))
Select Case c6
Case Is = 1: Digit6 = "مليار"
Case Is = 2: Digit6 = "ملياران"
Case Is > 2: Digit6 = Digit_Translator(c6) + " مليارات"
End Select
If Digit6 <> "" And Digit5 <> "" Then Digit6 = Digit6 + " و" + Digit5
If Digit6 = "" Then Digit6 = Digit5
Digit_Translator = Digit6
End Function
هل يمكن اضافه كلمة فقط او لاغير فى اخر التفقيط
ReplyDeleteIf cDigit <> "" And fFrac > 0 Then result = cDigit & LE & " و " & cFrac & PT + " فقط لا غير "
DeleteIf cDigit <> "" And fFrac = 0 Then result = cDigit & LE + " فقط لا غير "
If cDigit = "" And fFrac <> 0 Then result = cFrac & PT + " فقط لا غير "
ممكن طبعا..
ReplyDeleteبعد الخطوة الأخيرة:
Digit_Translator = Digit6
أضف الخطوة التالية:
Digit_Translator = Digit_Translator +" ، فقط لا غير،،"
لا غير بتتحط قبل القرش كده !!!!!
Deleteهو بيتم عملها مع كل أكسيل شيت جديدة ولا بيتم انها تتسجل
Deleteالسلام عليكم
ReplyDeleteمشكور وما قصرت على المجهود الجبار
ولكن عندي مشكلة الاوفيس 2013 يعطيني خطأ الرجاء الافادة
وشكرا
لم يتم الفحص على 2013 بعد
Deleteسنوافيك بالنتيجة بعد تجربة 2013
لكن للأسف لن سكون ذلك قريبا
هل من الممكن جعله يقرأ ثلاث خانات بعد الفاصله العشريه ؟
ReplyDeleteمثلا : الف دينار و مائتين وخمسون فلس
ممكن طبعا سيتم رفع تحديث في أقرب وقت
DeleteThis comment has been removed by the author.
ReplyDeleteالكتابة ضهرت مشوهة
ReplyDeleteتأكد كن نسخ الكود بشكل صحيح إلى إكسيل لأن هذه المشكلة متعلقة بالكتابة العربي
Deleteتمت تجربته على اوفيس 2013 ويعمل بشكل جيد ولا يوجد ملاحظات
ReplyDeleteوقمت بتغيير العملة الى ريال و هللة وتمت التجربة بنجاح
اولآ تسلم ايدك بجد علي المجهود الرائع ولكن office 2010 بة مشكلة في الكتاب الغة العربية
ReplyDeleteهو تم تجريبه لعى 2013 و بيعمل عادي
Deleteو سيعمل على 2010 بس تأكد من encoding العربي قبل أن تبدأ
أو انسخ الكود على notepade ثم انسخه منه إلى اكسيل و سيعمل بلإذن الله.
عايز اكتب فقط فى الاول ولا غير فى الاخر
ReplyDeleteمفيش مثال مرفق احسن العربى عندى فيه مشكلة
ReplyDeleteبيظهر الكتابة العربى بطريقة مش مفهومة
حاولت اغير انكود فى النوت باد وغيره ومفيش فايده
وجربت اكثر من اصدار فى الوفيس بردو بيظهر العربى حروف انجليش مش مفهومة
دا مثال من الى بيظهر
ÇáÝ æãÆÊÇä ÌäíÉ æ ËáÇË æÚÔÑæä ÞÑÔ
السلام عليكم ورحمة الله بركاته
Deleteتوجد مشكله لدى هذا الكود
انه لا يقراء القيم السالبة
حصل معايا مشكلة في التثبيت و مشكولا
ReplyDeleteلتفادي هذا المشكل قم بتغيير العدد بالعربية الى قيمة موجودة في اكسيل
ReplyDeleteمثلا اكتب واحد في اكسيل في الخلية (1.1) تم عوض في فيزويل بازيك رقم واحد ب
Feuil3.Cells(1, 1) .
Case Is = 1: Digit1 = Feuil3.Cells(1, 1) '1
Case Is = 2: Digit1 = Feuil3.Cells(2, 1) '2
.....
ارجو مشكله السالب حيث ان هذا الكود لايقرا السالب
ReplyDeleteالسلام عليكم
ReplyDeleteانا دخلت الكود بس المشكله انه يقرأ بالانجليزي
شو اسوي عشان اتفادا المشكله
مثل لما ادخل الرقم ما يعطيني بالعربي هر
ÇáÝ æãÆÊÇä ÌäíÉ æ ËáÇË æÚÔÑæä ÞÑÔ
لاكن الكود دخلته بالعربي
نفس المشكله عندي
Deleteكله تمام بس لو كان معي عمودين احدهم نقدي والاخر شيك العمود الاول تمام بس العمود الثاني بيفرأ لي بالعشرات مثال ادخل رقم ( 1 ) يقراها 10 و رقم (10) يقراها (100) كيف اعملولكم جزيل الشكر
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteهو حضرتك بيتك عملها مع كل أكسيل شيت جديدة ولا بيتم حفظها عندى ولو بيتم حفظها بيتم أزاى
ReplyDeleteلو القيمة بالسالب مثلا -8500 يكتب ثمانمائة وخمسون وليس ثمانية ألاف وخمسمائة نرجوا الافادة عن سبب هذه المشكلة
ReplyDeleteتم تجربته مع اكسل 2013 واكسس 2013 والتفقيط رائع شكرا جزيلا ،،،
ReplyDeleteالنسخة عندي عربي ولا أعرف كيف يتم تنزيل الكود على الأكسل أفيدوني جزاكم الله خيرا
ReplyDeleteممكن تغير الجنية للريال
ReplyDeleteالسلام عليكم
ReplyDeleteاخي في مشكلة في حفظ الملف
ممكن التوضيح لان المعادلة بعد الحفظ لا توجد
يا جماعه لو سمحتوا بيجيبلي بعد تطبيق المعادلة وصحيحة تماما علامات استفهام مكان التفقيط
ReplyDeleteجيايبلي مشكله في الأسم ؟ ما الحل ؟
ReplyDeleteبرجاء الافادة عن النوع الذي نحفظ به الملف
ReplyDeleteالسلام عليكم الموضوع فعلا مفيد جدا
ReplyDeleteبس انا واجهتني مشكلتين ان انا عاوزه اكسس مش اكسل ولو حبيت استخدمه علي الاكسيل المايكرو لا يكتب عربي وجميع الاحرف بتطلع
???????
علامات استفهام
ارجو الافاده
يا جماعة بدل ما يفقط الارقم بيديني صفر في مكان التفقيط
ReplyDeleteممتاز ربنا يديك العافيه
ReplyDeleteجزاك الله خيراً زكاة العلم نشره بارك الله فيك
ReplyDeleteالسلام عليكم
ReplyDeleteبعد لما بنسخ الدالة الكلمات العربي بتجيب علامات استفهام مش راضي يكتب عربي
convert these numbers and it converts as "four" at the end instead of "five". what is the problem with these numbers?
ReplyDelete2,495,159,565.00
ReplyDelete2,520,159,565.00
ملياران واربعمائة وخمس وتسعون مليونا ومائة وتسع وخمسون الف وخمسمائة واربع وستون دينار عراقي
ReplyDeleteملياران وخمسمائة وعشرون مليونا ومائة وتسع وخمسون الف وخمسمائة واربع وستون دينار عراقي