الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل الارقام الى حروف في الاكسل

رائج
بدأه asma_net1980 في 18 ديسمبر 2003 · 75 رد · 101,123 مشاهدة · في طلب و دراسة وشرح البرامج
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هل يوجد دالة تقوم بتحويل الارقام الى حروف حيث انني اريد ان ادخل معدل طالب مثلا 98 فيقوم الاكسل تلقائيا بقرائتها ثمانية وتسعون وهكذا

ارجوا ان اكون قد استطعت ان اوضح طلبي

وجزاكم الله خيرا.

2
#2

للرفع

#3

سلام الله عليك

سوف تجدين في هذا الملحق ضالتك

إن شاء الله

هذا ملف إكسل وبه دالة تحويل الأرقام إلى حروف

Only_New.xls

#4

الف شكر لك على هذا المثال

ولكنني لا اريد ان تظهر كلمة فقط وهي اساسية في هذه الدالة فكيف استطيع حذفها

ام ان هناك دالة اخرى

حيث انني اريد ان يظهر كالتالي 99 تسعة وتسعون وهكذا

وانا اسفة على ازعاجك

وبارك الله فيك

#6

الأرقام للرقم 29 بواسطة الدالة choos

#7

هذاه الدالة استعملها في برامجي

وهي ما توصلت إليه.

جربوها واعطوني رايكم وملاحظاتكم

test.zip

#8

جزاك الله خيراً

فالدالة جيدة جداً ، ولكن هل تسمح بشرح كود الدالة ليتسنى لنا تعديلها حسب الحاجات

أكرر لك منا جزيل الشكر و الإحترام

#9

الله يبارك فيك

الدالة كتبتها من أربع سنوات والحقيقة أنني لم أعد إليها للتعديل.

أحاول أن أشرحها لاحقا.

تحياتي

#10

لا أدري وأنا أقرأ كلماتك أحس بالقرب لذلك بوسعي أن أقول لك السلام عليكم ورحمة الله وبركاته

أخي المحترم

شعرت من خلال الدالة أن لديك قدرة حسنة على كتابة الدوال

فإذا تكرمت تشرح لنا إنشاء الدوال بشكل عام وتشرح الدالة السابقة كمثال

وجزاك الله عنا كل خير

أخوكم أبو مصعب

#11

وعليكم السلام ورحمة الله تعالى وبركاته

نعم تعودت على كتابة الدوال في إكسل وأعتمد عليه في إنجاز بعض التطبيقات البسيطة.

وكما سبق وأن ذكرت سأرجع إلى أربع سنوات للوراء وأعيد كتابة الدالة بشيء من الشرح.

لكم تحياتي.

#13

الأخ محمد العبادي

جزاك الله خيرا

إذا سمحت أتابع الكود خطوة بخطوة ثم لا ألبث أن أتوه فحبذا لو تكرمت بشرح الكود ليتسنى لنا فهمه و تدريسه خصوصاً أنني أعمل في حقل التعليم

و الله لا يضيع أجر من أحسن عملا أخوكم ابن البلد

#14

لو سمحتوا انا عايز تفيقط الأرقام إلى حروف في الأكسس مع الشرح

#15

لو سمحتوا انا عايز تفقيط الأرقام إلى حروف على الأكسس وإذا امكن الشرح على عنواني (ebraheem_509@hotmail.com) وشكرا

#16

أنا عندي التفقيط باللغة الانجليزية كمان لو حد عايزة

#17

لوسمحتم

بالنسبة لتحويل الأرقام الى حروف....

انا نزلت الملفات المرفقة ولكن لا تعمل... حيث يظهر الخطأ

#NAME?

يبدو لأنه الدوال غير مضافة... فكيف يمكن اضافتها أو حتى رؤية كودها لأنى لاحظت

ان الشباب قاموا بتتبع الكود فيها

..

شكرا

بارك الله فيكم على هذا المنتدى الرائع والمتميز

حسن ..... مبرمج ..... فلسطين

hassan.alaraishy@gmail.com

#18
wessamh كتب:
أنا عندي التفقيط باللغة الانجليزية كمان لو حد عايزة

برجاء موافاتى به اذا سمحت

و جزاك الله خيراً

#19

أرجو ارساله على ايميلي

Hassanoracle@hotmail.com

شكرا

بارك الله فيكم على هذا المنتدى الرائع والمتميز

حسن ..... مبرمج ..... فلسطين

hassan.alaraishy@gmail.com

#20

الإخوة العزاء

ممكن عمل تحول الأرقام الى حروف بطريقتين:

1- دالة choose والتي تكرم احد الاخوة بالحديث عنها

2- دالة lookup ولها شكلان الأول Dlookup وهي شبيهة بالأكسس مع بعض الاختلاف في نطاق اخذ المتغيرات، والثاني vlooup ويستخدم عند الحاجة لنطاقات كبيرة. المهم:

ممكن عمل قائمة في احد اجزاء ورقة العمل العمود الول منها هو الرقم والثاني هو الترجمة الحرقية مباشرة له وجربتها وبصراحة تعطي نتائج مذهلة اذا استخدمت دالة lookup. فيكون نطاق البحث هو القائمة ونطاق الارجاع هو عمود الحروف

دالة choose لا تاخذ ارقاما اكبر من 9 اي فقط تتعامل مع رقم من خانة واحدة حسب ما جرى معي، وبالتالي يتطلب استخدامها تقسيم الرقم الى احاد وعشرات وترجمة كل منها الى ما يقابله في الحروف. وايضا تعطي نتائج صحيحية

بقي استخدام كلمة "و" بينها وهو من خلال عمل شرط على ان الخلية الفارغة لا تحتسب واذا كانت الخليتان اي الاحاد والعشرات غير فارغتين يترجم كل منها الىة ما يقابله

مثال ذلك ما يستخدم في الجداول المدرسية وهو ما قمت ببناءه من الصفر تقريبا في المدرسة التي اعمل بها

مثال اخر على استخدام lookup هو القاموس المذهل الذي قمت ببرمجته ليعطى اسم الطالب بالغة الانجليزية بمجرد ادخال اسمه بالعربية في الخلية المقابلة، وسأشرحه لاحقا مع مرفق به مثال بسيط

ارجو ان اكون قد افدت وشكرا

لا استطيع الدخول بمعرفي كمشرف..هذا معرف سابق استرجعت كلمة المرور له

اشك ان عضويتي كمشرف حذفت

#21

شكرا و جزاكم الله خير

#22

شكرا

#23

جزاك الله ألف ألف ألف خير يا أخي

#24

شكرا على جهودكم العظيمة ونرجوا من الله ان يوفقكم لخير عباده

#25

السلام عليكم ورحمة الله وبركاته

تعقيب على الأخ القائل

اقتباس
انا نزلت الملفات المرفقة ولكن لا تعمل... حيث يظهر الخطأ

#NAME?

تأكد من وضع الـ Security أن لا يكون فى أعلى حالاته كخطوه أولى

وإقبل تمكين الماكرو كخطوه ثانية

أما بخصوص الكود فيمكننا وضعه هنا على المكشوف ليمكن للإخوه من التعامل معه سواء فى إكسل أو أكسس أو فيجوال بيزيك أو أى تطبيق يقبل VBA

1- التفقيط العربى

سأرفق مديول لعدم تمكنى من لصق الكود هنا فالكلمات العربية لا تظهر بشكل طبيعى

2- التفقيط بالإنجليزى

Option Explicit
Dim Number2s(2 To 9), Number1s(1 To 19), Steps(1 To 4) As String

Public Function NumToWord(Numstring As Double) As String
If Steps(1) = "" Then initstrings
Dim Tempstring As String
Dim Newstring As String
Dim What As Double
Dim Counter As Long
If Numstring = 0 Then
  NumToWord = "zero"
  Exit Function
End If
If Numstring > (10 ^ 24) Then
  NumToWord = "Number is too big"
  Exit Function
End If
	Counter = 0
Do
  Counter = Counter + 1
  If Counter > 1 Then
	What = 10 ^ (12 \ ((Counter - 1) * 2))
  Else
	What = 10 ^ 12
  End If
  If Numstring >= What Then
  Newstring = NumToWord(Fix(Numstring / What))
  Numstring = ((Numstring / What) - Fix(Numstring / What)) * What
  If Numstring = 0 Then
	Tempstring = Tempstring & Newstring & Steps(Counter) & " "
  Else
	If Counter = 4 Then Tempstring = Tempstring & Newstring & Steps(Counter) _
	   & " and ": GoTo Skipit
	   Tempstring = Tempstring & Newstring & Steps(Counter) & ", "
Skipit:
	End If
  End If
Loop Until Counter = 4
	If CInt(Numstring) >= 20 Then _
	  Tempstring = Tempstring & Number2s(Fix(Numstring / 10)) & " "
	If CInt(Numstring) >= 10 And CInt(Numstring) < 20 Then _
	  Tempstring = Tempstring & Number1s(CInt(Numstring)) & " ": GoTo Skip2
	Numstring = ((Numstring / 10) - Fix(Numstring / 10)) * 10
	If CInt(Numstring) > 0 Then Tempstring = Tempstring & Number1s(CInt(Numstring)) & " "
Skip2:
	NumToWord = Tempstring
End Function

Public Sub initstrings()
	Steps(1) = "billion":		   Steps(2) = "million"
	Steps(3) = "thousand":		  Steps(4) = "hundred"
	Number1s(1) = "one":			Number1s(2) = "two"
	Number1s(3) = "three":		  Number1s(4) = "four"
	Number1s(5) = "five":		   Number1s(6) = "six"
	Number1s(7) = "seven":		  Number1s(8) = "eight"
	Number1s(9) = "nine":		   Number1s(10) = "ten"
	Number1s(11) = "eleven":		Number1s(12) = "twelve"
	Number1s(13) = "thirteen":	  Number1s(14) = "fourteen"
	Number1s(15) = "fifteen":	   Number1s(16) = "sixteen"
	Number1s(17) = "seventeen":	 Number1s(18) = "eighteen"
	Number1s(19) = "nineteen":	  Number2s(2) = "twenty"
	Number2s(3) = "thirty":		 Number2s(4) = "forty"
	Number2s(5) = "fifty":		  Number2s(6) = "sixty"
	Number2s(7) = "seventy":		Number2s(8) = "eighty"
	Number2s(9) = "ninety"
End Sub

ArNum2Word.zip

1

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

مواضيع مشابهة