• 0
ashraf2011

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

سؤال

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

 

اسعد الله مسائكم جميعا

اخوتي الكرام

================================

اود منكم التكرم بتصحيح تفقيط المبلغ الدينار والقرش بالشكل الصحيح

المطلوب

اذا كان الرقم (101.5) انا تكون النتيجة كتابة (مائة ودينار وخمسة قروش)

واذا كان الرقم (99.30) يكون كتابة( تسعة وتسعون دينار وثلاثون قرشاَ)

واذا كان الرقم (100.30) يكون كتابة( مائة دينار وثلاثون قرشاَ)

واذا كان الرقم بين 3 الى 10 يكون كتابة (دنانير)

واذا كان الرقم (2) تكون دينارين

و (102) تكون مائة ودينارين وهكذا .....الخ

 

واذا لم يكن هناك رقم بعد الفاصلة لا اؤيد ذكر القروش او القرش
================================

وشكـــــــــــــــــراَ  لـــــــــــــــــــــــكم +1

 

مرفـــــــــــــــــق ملــــــــــــــــــف

aa.rar

تم تعديل بواسطه ashraf2011
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

19 إجابة على هذا السؤال .

  • 0

بارك الله فيك اخي عبدالله على مجهودك الرائع

= = = = = = = = = = = = = = = = = = =

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

 

فقط عند ادخال الرقم من 1 الى 99    يتم التفقيط  بشكل غير صحيح كالاتي:

مثال :

 

 

99 = التفقيط الحالي بهذا الشكل     تسعة وتسعون ديناراً وتسعة وتسعون قرشاً       والاصح ان يكون ( فقط تسعة وتسعون ديناراً )

 

55  = التفقيط الحالي بهذا الشكل    خمسة وخمسون ديناراً وخمسة وخمسون قرشاً   والاصح ان يكون التفقيط ( خمسة وخمسون ديناراً )

 

1   = التفقيط الحالي بهذا الشكل     دينار واحد   وقرش واحد                            والاصح ان يكون (فقط دينار واحد وقرش واحد)

 

 

جرب هذا التعديل

 

'           معالجة الكسر

Private Function kh_dText(ByVal dNum As String, ByVal NCur As String, ByVal Ndec As String, ByVal co As Byte, ByVal Ndec_pl As String, ByVal dsx As Boolean) As String

Dim Td$, dwow$, Td1$, R As Integer

On Error GoTo 1

If co = 0 Then GoTo 1

If NCur = "" Then Ndec = ""

If InStr(dNum, ".") = 0 Then Exit Function

If Len(Mid(dNum, InStr(dNum, ".") + 1, 3)) = 1 Then Td = "0.00" & Mid(dNum, InStr(dNum, ".") + 1, 3): GoTo 10

If Len(Mid(dNum, InStr(dNum, ".") + 1, 3)) = 2 Then Td = "0.0" & Mid(dNum, InStr(dNum, ".") + 1, 3): GoTo 10

Td = Format(Round(CCur(dNum - Int(dNum)), co), "0." & String(co, "0"))

10:

If Td = 0 Or Td = 1 Then Td1 = "": GoTo 1

If Int(dNum) Then dwow = wow

If Len(Ndec) Then

    Ndec = " " & Ndec

    Td1 = Td * CVar("1" & String(co, "0"))

    If Len(Ndec_pl) And co < 4 Then Td1 = dwow & kh_nText(Format(Td1, "000"), Ndec & "-" & Ndec_pl, 1 + CInt(dsx), 1, 0): GoTo 1

Else

    Ndec = " " & NCur: Td1 = Td

End If

Td1 = dwow & " " & Chr(40) & Td1 & Chr(41) & Ndec

1: kh_dText = Td1

End Function

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

aa.rar

تم تعديل بواسطه abo issa
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم 

 

بخصوص 

102.02 تقراء مائة ودينارين وقرشين  بدل من مائة واثنان دينار واثنان قرش

لاحظ التعديل حيث تم اضافة شرطين للدالة المعرفة 

 

aa.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكركم اخوتي ابو اسيا والاخ عبدالله المحرب ولكن التفقيد لم يكتمل بعد وذلك


===========================================


عندما يكون المبلغ 8.21  يفترض ان يكون التفقيط بهذا الشكل ( ثمانية دنانير وواحد وعشرون قرش) وليس ( 8.21 =  ثمانية دينار وواحد وعشرون قرش فقط )


187a73f0b4.gif


انه التفقيط بالدينار يكون بالشكر الاتي


عندما يكون المبلغ من (3 الى 10 ) يكون التفقيط دنانير وليس دينار


 


وكذلك القرش من 3 الى 10 يكون قروش وليس قرش


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


تم تعديل بواسطه ashraf2011
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

استخدمت دالة منقولة للاستاذ عبدالله باقشير (استخدمها في ملف اكسل)

ان شاء الله تنال رضاك

جرب المرفق

 

aa.rar

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

استخدمت دالة منقولة للاستاذ عبدالله باقشير (استخدمها في ملف اكسل)

ان شاء الله تنال رضاك

جرب المرفق

بارك الله اخي عبدالله على المتابعة ولكن لغاية الان لم يتم المطلوب

وهنا  تفقيط القروش لم يكن دقيق كالتالي

120.5 فقط مائة وعشرون دينار وخمسمائة قرش والاصـــــــــح ان يكون مائة وعشرون دينار وخمسة قروش

 

واجدد شكري لك على المتابعة +1

 

d1ec3fa857.gif

تم تعديل بواسطه ashraf2011
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اخي اعتقد انه لتحصل على ما تريد يجب ان تكتب اارقم هكذا

120,005

والله اعلم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اخي اعتقد انه لتحصل على ما تريد يجب ان تكتب اارقم هكذا

120,005

والله اعلم

اشكرك اخي عبدالله ولكن لابد من وجود حل لمثل هذا التفقيط

لقد قمت بالعديد من المحاولات وقمت بتعديل الوحدة النمطية الا انه لم استطيع التوصل الى المطلوب

تم تعديل بواسطه ashraf2011
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم 

هل تقصد انك لا زلت تريد ان يتم كتابة الرقم 120.5 ويقراء مائة وعشرون دينار وخمسة قروش

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم 

هل تقصد انك لا زلت تريد ان يتم كتابة الرقم 120.5 ويقراء مائة وعشرون دينار وخمسة قروش

نعم لو تكرمت وبا ليت لو يتم توضيح مايتم تعديله بالوحدة النمطية للاستفادة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم 

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

If Len(Mid(dNum, InStr(dNum, "."), 3)) = 2 Then Td = "0.00" & Mid(dNum, InStr(dNum, ".") + 1, 3): GoTo 10

 

 

جرب المرفق واتمنى التقيم للمشاركة اذا افادتكم

 

aa (1).rar

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم 

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

If Len(Mid(dNum, InStr(dNum, "."), 3)) = 2 Then Td = "0.00" & Mid(dNum, InStr(dNum, ".") + 1, 3): GoTo 10

 

 

جرب المرفق واتمنى التقيم للمشاركة اذا افادتكم

بارك الله فيك اخي عبد اللهواشكرك على طول بالك بعرف اني غلبتك معاي  ولكن

عندما وضعت الرقم 9.22 تم التفقيط بهذا الشكل (تسعة دنانير ومائتان وعشرون قرشاً) والاصح ان يكون (تسعة دنانير واثنان وعشرون قرشاً)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم 

 

استبدل وحدة معالجة الكسر بهذه 

'           معالجة الكسرPrivate Function kh_dText(ByVal dNum As String, ByVal NCur As String, ByVal Ndec As String, ByVal co As Byte, ByVal Ndec_pl As String, ByVal dsx As Boolean) As StringDim Td$, dwow$, Td1$On Error GoTo 1If co = 0 Then GoTo 1If NCur = "" Then Ndec = ""If Len(Mid(dNum, InStr(dNum, ".") + 1, 3)) = 1 Then Td = "0.00" & Mid(dNum, InStr(dNum, ".") + 1, 3): GoTo 10If Len(Mid(dNum, InStr(dNum, ".") + 1, 3)) = 2 Then Td = "0.0" & Mid(dNum, InStr(dNum, ".") + 1, 3): GoTo 10Td = Format(Round(CCur(dNum - Int(dNum)), co), "0." & String(co, "0"))10:If Td = 0 Or Td = 1 Then Td1 = "": GoTo 1If Int(dNum) Then dwow = wowIf Len(Ndec) Then    Ndec = " " & Ndec    Td1 = Td * CVar("1" & String(co, "0"))    If Len(Ndec_pl) And co < 4 Then Td1 = dwow & kh_nText(Format(Td1, "000"), Ndec & "-" & Ndec_pl, 1 + CInt(dsx), 1, 0): GoTo 1Else    Ndec = " " & NCur: Td1 = TdEnd IfTd1 = dwow & " " & Chr(40) & Td1 & Chr(41) & Ndec1: kh_dText = Td1End Function

 

وان شاء الله يكون هو المطلوب 

واعذرني لاني لم افهم طلبك من البداية 

وللتذكير فالدالة للاستاذ عبدالله باقشير

وشكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيك اخي عبدالله على مجهودك الرائع

= = = = = = = = = = = = = = = = = = =

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

 

فقط عند ادخال الرقم من 1 الى 99    يتم التفقيط  بشكل غير صحيح كالاتي:

مثال :

 

 

99 = التفقيط الحالي بهذا الشكل     تسعة وتسعون ديناراً وتسعة وتسعون قرشاً       والاصح ان يكون ( فقط تسعة وتسعون ديناراً )

 

55  = التفقيط الحالي بهذا الشكل    خمسة وخمسون ديناراً وخمسة وخمسون قرشاً   والاصح ان يكون التفقيط ( خمسة وخمسون ديناراً )

 

1   = التفقيط الحالي بهذا الشكل     دينار واحد   وقرش واحد                            والاصح ان يكون (فقط دينار واحد وقرش واحد)

تم تعديل بواسطه ashraf2011
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكركم اخوتي ابو اسيا والاخ عبدالله المحرب ولكن التفقيد لم يكتمل بعد وذلك

===========================================

عندما يكون المبلغ 8.21  يفترض ان يكون التفقيط بهذا الشكل ( ثمانية دنانير وواحد وعشرون قرش) وليس ( 8.21 =  ثمانية دينار وواحد وعشرون قرش فقط )

187a73f0b4.gif

انه التفقيط بالدينار يكون بالشكر الاتي

عندما يكون المبلغ من (3 الى 10 ) يكون التفقيط دنانير وليس دينار

 

وكذلك القرش من 3 الى 10 يكون قروش وليس قرش

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

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

اعتذر عن غيابي فمنذ ردي السابق لم ادخل الموقع هنا

تم التعديل هنا و تحويل التفقيط الى دنانير و الغاء عبارة فقط لا غير

مع ملاحظة ان 101.5 هي مئة و دينار و خمسون قرشا و 101.05 هي مئة و دينار و خمسة قروش

aa.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اعتذر عن غيابي فمنذ ردي السابق لم ادخل الموقع هنا

تم التعديل هنا و تحويل التفقيط الى دنانير و الغاء عبارة فقط لا غير

مع ملاحظة ان 101.5 هي مئة و دينار و خمسون قرشا و 101.05 هي مئة و دينار و خمسة قروش

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

انا استخدم اكسس 2003 وانت ارفقت الملف بصيغة 2007 او 2010 باليت لويتم التحويل الى 2003

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

انا استخدم اكسس 2003 وانت ارفقت الملف بصيغة 2007 او 2010 باليت لويتم التحويل الى 2003

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

هذا هو الملف بصيغة 2003

اخوك ابو عيسى

aa.rar

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لك مني اجمل تحية اخي عبدالله فعلآ تم التفقيط بالشكل المطلوب


===============================


حعله الله في ميزان حسناتك


==============


اشكرك +1


========


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


0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .