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

تحويل الاعداد من ارقام الى حروف

بدأه outnet في 3 نوفمبر 2009 · 7 رد · 2,175 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

Public Function ConvertNbLettres(TEXTE76, Devise As String) As String

Dim varnum, varnumD, varnumU, resultat, varlet

Static Chiffre(1 To 19)

Chiffre(1) = "un"

Chiffre(2) = "deux"

Chiffre(3) = "trois"

Chiffre(4) = "quatre"

Chiffre(5) = "cinq"

Chiffre(6) = "six"

Chiffre(7) = "sept"

Chiffre(8) = "huit"

Chiffre(9) = "neuf"

Chiffre(10) = "dix"

Chiffre(11) = "onze"

Chiffre(12) = "douze"

Chiffre(13) = "treize"

Chiffre(14) = "quatorze"

Chiffre(15) = "quinze"

Chiffre(16) = "seize"

Chiffre(17) = "dix-sept"

Chiffre(18) = "dix-huit"

Chiffre(19) = "dix-neuf"

Static dizaine(1 To 8)

dizaine(1) = "dix"

dizaine(2) = "vingt"

dizaine(3) = "trente"

dizaine(4) = "quarante"

dizaine(5) = "cinquante"

dizaine(6) = "soixante"

dizaine(8) = "quatre-vingt"

'traitement du cas 0

If Nb >= 1 Then

resultat = ""

Else

resultat = "zéro"

GoTo fintraitementfrancs

End If

'traitement des millions

varnum = Int(Nb / 1000000)

If varnum > 0 Then

GoSub centaine_dizaine

resultat = varlet + " million"

If varlet <> "un" Then: resultat = resultat + "s"

End If

'traitement des milliers

varnum = Int(Nb) Mod 1000000

varnum = Int(varnum / 1000)

If varnum > 0 Then

GoSub centaine_dizaine

If varlet <> "un" Then: resultat = resultat + " " + varlet

resultat = resultat + " mille"

End If

'traitement des centaines et dizaines

varnum = Int(Nb) Mod 1000

If varnum > 0 Then

GoSub centaine_dizaine

resultat = resultat + " " + varlet

End If

resultat = LTrim(resultat)

varlet = Right$(resultat, 4)

'traitement du "s" final pour vingt et cent et du "de" pour million

Select Case varlet

Case "cent", "ingt"

resultat = resultat + "s"

Case "lion", "ions"

resultat = resultat + " de"

End Select

fintraitementfrancs:

resultat = resultat + " " + Devise

If Nb > 2 Then: resultat = resultat + "s"

'traitement des centimes

varnum = Int((Nb - Int(Nb)) * 100 + 0.5)

If varnum > 0 Then

GoSub centaine_dizaine

resultat = resultat + " et " + varlet + " centime"

If varnum > 1 Then: resultat = resultat + "s"

End If

'conversion 1ère lettre en majuscule

resultat = UCase(Left(resultat, 1)) + Right(resultat, Len(resultat) - 1)

'renvoi du resultat de la fonction et fin de la fonction

ConvertNbLettres = resultat

Exit Function

'sous programme

centaine_dizaine:

varlet = ""

'traitement des centaines

If varnum >= 100 Then

varlet = Chiffre(Int(varnum / 100))

varnum = varnum Mod 100

If varlet = "un" Then

varlet = "cent "

Else

varlet = varlet + " cent "

End If

End If

'traitement des dizaines

If varnum <= 19 Then

If varnum > 0 Then: varlet = varlet + Chiffre(varnum)

Else

varnumD = Int(varnum / 10)

varnumU = varnum Mod 10

Select Case varnumD

Case Is <= 5

varlet = varlet + dizaine(varnumD)

Case 6, 7

varlet = varlet + dizaine(6)

Case 8, 9

varlet = varlet + dizaine(8)

End Select

If varnumU = 1 And varnumD < 8 Then

varlet = varlet + " et "

Else

If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then: varlet = varlet + " "

End If

If varnumD = 7 Or varnumD = 9 Then: varnumU = varnumU + 10

If varnumU <> 0 Then: varlet = varlet + Chiffre(varnumU)

End If

varlet = RTrim(varlet)

Return

End Function

#2

أخى هذه دالة

و لكن المشكلة أنها بالفرنسية

فى المرفق مثال بالانجليزية

numtotxt.rar

تم تعديل هذه المشاركة بواسطة mrnooo2000 في 3 نوفمبر 2009 في 18:32

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#3

هل من طرقة للعمل بالفرنسية

كيف استعمل الدالة التي بالاعلى

#4

أخي الكريم:

في الكود إسم لمربع نص وهو

TEXTE76

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

=ConvertNbLettres(TEXTE76,"EGP")

وبذلك ستحصل على  الرقم بالحروف.

الحل الثاني أن تفعل ما سبق مع تغيير كلمة

TEXTE76

الموجودة بالكود إلى إسم مربع النص الموجود بالتقرير

أخي لا أعلم كيف ستظهر الجملة الاننجليزية في هذا الرد وهل ستكون بترتيب سليم أم لا فأنا أعاني كثيراً عند التحول من العربية إلى الانجليزية في الكتابة عند الرد على أي مشاركة. 

تم تعديل هذه المشاركة بواسطة team2000 في 4 نوفمبر 2009 في 23:00

#5

أخي outnet

هل تمت الاجابة أذا كانت كذلك فأضف تمت الاجابة

بالتوفيق .. اسف لا أعلم ترجمتها بالفرنسية .... على العموم وفقك الله .. بكل اللغات

#6

السلام عليكم

هل ممكن ان اجده بالعربية

اي يحول الارقام الى حروف بالعربية

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

قُل لَّوْ كَانَ الْبَحْرُ مِدَاداً لِّكَلِمَاتِ رَبِّي لَنَفِدَ الْبَحْرُ قَبْلَ أَن تَنفَدَ كَلِمَاتُ رَبِّي وَلَوْ جِئْنَا بِمِثْلِهِ مَدَداً

#7

أخي الكريم A&A

في المرفق مثال جميل من الاخت الاستاذة "زهرة" المنتدى جزاها الله عنا خير جزاء

Namber2Letar.rar

#8

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

قُل لَّوْ كَانَ الْبَحْرُ مِدَاداً لِّكَلِمَاتِ رَبِّي لَنَفِدَ الْبَحْرُ قَبْلَ أَن تَنفَدَ كَلِمَاتُ رَبِّي وَلَوْ جِئْنَا بِمِثْلِهِ مَدَداً

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