اذهب الي المحتوي
أوفيسنا

محمد حسن المحمد

الخبراء
  • Posts

    2,216
  • تاريخ الانضمام

  • Days Won

    30

كل منشورات العضو محمد حسن المحمد

  1. السلام عليكم أخي الكريم جزاكم الله خيراً على هذا العمل الذي أعددت به هذه الصحيفة بتنسيق رائع لكنني أرى أن تتجدد بيانات هذه الصحيفة عند كل كود تدرجه، بحيث لا تضطر أو يضطر المستخدم بعد تحديث بياناتها لإضافة بيانات أخرى، بل يمكنك استخدام جدول آخر تضع فيه هذه البيانات وفق رقم الكود أو الاسم ... متمنياً لكم التوفيق والسداد تقبل تحياتي العطرة والسلام عليكم. ملاحظة: للبيان فقط ،قسم من البيانات يتجدد بواسطة رقم الكود بينما قسم آخر ستتم كتابته وفق كل اسم جديد .
  2. وعليكم السلام يمكنك استبدال الكود لتصبح النتائج كما تريد مرفق ربطاً الملف أما إن كانت لا تزال هناك مشكلة في ظهور اللغة فأنت بحاجة إلى تعديل الإعدادات من لوحة التحكم خيارات اللغة كما أن الكود السابق الموجود لديك يعمل بشكل صحيح وقد رأيت أنك استخدمته كمعادلة الصفيف بضغط Ctrl+shift+enter >>> جرب كتابة المعادلة ثانية بالضغط فقط على Enter وستحل المشكلة لديك بإذن الله تقبل تحياتي. المصنف1.xlsm
  3. أشكرك أخي الكريم @ابوحبيبه على كلامك الطيب المشجع ،وأقول لك أخي الكريم ولكم بمثل ما دعوتم....آمين نحن كما ذكرت نكبر ببعضنا ونتشارك العلم الذي وهبنا الله إياه ...وكما رأيت لكلِ أسلوبه ولذلك فإن هذا المنتدى هو مرتع خصب للتحصيل العلمي ولشرف الريادة والسبق في ميادين العلم الذي قال الله تعالى عنه: (وقل ّربّ زدني علماً) وقال تعالى أيضاً : ( وفوق كل ذي علمٍِ عليمٌ) جزاك الله خيراً على حسن الظن بإخوانك ، تقبل تحياتي العطرة والسلام عليكم
  4. بارك الله بكم أخي الكريم @Mohamed Hicham وبعلمكم آمين كان جوابي على قدر سؤال الأخ السائل إذ تم فصل الأسطر فيما بينها بأسطر فارغة في الكود المدرج من قبله Private Sub Workbook_Open() MyPassword = "123" For Each MySheet In ActiveWorkbook.Sheets MySheet.Protect _ Password:=MyPassword, _ DrawingObjects:=True, _ Contents:=True, _ Scenarios:=True, _ UserInterfaceOnly:=True Next MySheet End Sub وبعد ضبط الكود كما يجب تمت تجربته وتزويد الأخ السائل به أشكرك أخي الكريم على حسن استئذانك و لين جانبك ... وأزيدك من الشعر بيتاً أنني معجب بعلمك ومساعدتك للآخرين وهذا ما نتوسمه بالجميع ولذلك فإنني أغبطك وأسعد بذلك تقبل تحياتي العطرة. والسلام عليكم
  5. السلام عليكم أخي الكريم أرجو أن يكون تصحيح الخطأ في هذا الملف تقبل تحياتي ما الخطأ في هذا الكود.xlsm
  6. جزاكم الله خيرا أخي الكريم الحقيقة لا يمكنني تجربة ذلك حالياً لأنني لا أمتلك حاسوبا شخصيا إلا أثناء العمل نهارا للأسف. بارك الله بجهودكم.
  7. السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً وأحسن إليكم أستاذنا مجهود رائع تستحق عليه الثناء أحسنتم بارك الله بكم ، إلى المزيد من العطاء وفقكم الله لما يحب ويرضى آمين والسلام عليكم ملاحظة: أخي الكريم لاحظت أنه كلما حددت نطاقاً جديداً لوضع خانات التحقق أو أزرار الخيارات يتم حذفها من النطاق السابق، فماذا لو كنت بحاجة لوضعها في أكثر من نطاق؟!. يرجى أخذ هذه الملاحظة بعين الاعتبار والسلام عليكم ورحمة الله وبركاته
  8. السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً وأحسن إليكم أستاذنا الكريم @omar elhosseini على صياغة هذه الأكواد الرائعة والتي من خلالها يمكن إضافة أيتهما في النطاق الذي يتم تحديده وهذا ما كنت على يقين منه من خلال استخدام الـ VBA إلا أن ما أثار استغرابي هو استخدامكم لهما وبقيت لاحقة الملف xlsx كما هو موضح أدناه في الصورة المرفقة وافر تقديري واحترامي لشخصكم الكريم والسلام عليكم ورحمة الله وبركاته.
  9. السلام عليكم ورحمة الله وبركاته أحسنتم أستاذنا الكريم @omar elhosseini باستخدام الطريقتين، جزاكم الله خيراً وأحسن إليكم، كان بالإمكان استخدام هاتين الطريقتين في حال كانت البيانات قليلة في عدد صفوف محدود. ماذا لو كانت الصفوف بالمئات أو الآلاف هل ستكونا مجديتين؟ صحيح أننا سنستخدم النسخ إلى عدد نرغبه من الصفوف ، لكن المشكلة في ربط كل CheckBox أو OptionButton بالخلايا حيث سيتم ربط كل منها بخلية. بالتأكيد النتائج صحيحة 100 % إلا أن الوصول إليها صعب جداً ...أم أن هناك أسلوب آخر لربط كل منها بالخلية المقابلة أكثر سهولة ويسر. يرجى الإفادة والسلام عليكم ورحمة الله وبركاته.
  10. وعليكم السلام ورحمة الله وبركاته أخي الكريم أرى أنه باستخدام التنسيق الشرطي يمكنك الحصول على ما تريد لكن باستخدام أسلوب آخر غير التشيك بوكسز لأنه سيتم تغيير نوع الملف إلى XLSM باستخدام التشيك بوكسز أما الطريقة ليبقى نوع الملف كما هو فإنني أقترح استبدال التشيك بوكسز برقم 8 من لوحة المفاتيح باستخدام نوع الخط Wingdings 2 في كلا العمودين كما هو مبين في هذه الصورة: راجياً لكم التوفيق والسلام عليكم Pending broker inc. 10-Apr-2023.xlsx
  11. الحمد لله الذي بنعمته تتم الصالحات
  12. أخي الحبيب @حسونة حسين أرجو أن يصل إلى النتيجة المطلوبة أو أن يرسل ملفه للعمل عليه.
  13. يرجى إرفاق الملف الذي ترغب بوضع الكود له وشكراً
  14. السلام عليكم ولكم بمثل ما دعوتم آمين تفضل أخي الكريم تم التعديل على الجداول دون Pivot Table تقبل تحياتي Abu Rafat.xlsx
  15. الحمد لله الذي بنعمته تتم الصالحات لا شكر على واجب حياكم الله
  16. Function NoToTxt(TheNo As Double, MyCur As String, MySubCur As String) As String Dim MyArry1(0 To 9) As String Dim MyArry2(0 To 9) As String Dim MyArry3(0 To 9) As String Dim Myno As String Dim GetNo As String Dim RdNo As String Dim My100 As String Dim My10 As String Dim My1 As String Dim My11 As String Dim My12 As String Dim GetTxt As String Dim Mybillion As String Dim MyMillion As String Dim MyThou As String Dim MyHun As String Dim MyFraction As String Dim MyAnd As String Dim i As Integer Dim ReMark As String If TheNo > 999999999999.99 Then Exit Function If TheNo < 0 Then TheNo = TheNo * -1 ReMark = "يتبقى لكم " Else ReMark = "فقط " End If If TheNo = 0 Then NoToTxt = "صفر" Exit Function End If MyAnd = " و" MyArry1(0) = "" MyArry1(1) = "مائة" MyArry1(2) = "مائتان" MyArry1(3) = "ثلاثمائة" MyArry1(4) = "أربعمائة" MyArry1(5) = "خمسمائة" MyArry1(6) = "ستمائة" MyArry1(7) = "سبعمائة" MyArry1(8) = "ثمانمائة" MyArry1(9) = "تسعمائة" MyArry2(0) = "" MyArry2(1) = " عشر" MyArry2(2) = "عشرون" MyArry2(3) = "ثلاثون" MyArry2(4) = "أربعون" MyArry2(5) = "خمسون" MyArry2(6) = "ستون" MyArry2(7) = "سبعون" MyArry2(8) = "ثمانون" MyArry2(9) = "تسعون" MyArry3(0) = "" MyArry3(1) = "واحد" MyArry3(2) = "اثنان" MyArry3(3) = "ثلاثة" MyArry3(4) = "أربعة" MyArry3(5) = "خمسة" MyArry3(6) = "ستة" MyArry3(7) = "سبعة" MyArry3(8) = "ثمانية" MyArry3(9) = "تسعة" '====================== GetNo = Format(TheNo, "000000000000.00") i = 0 Do While i < 15 If i < 12 Then Myno = Mid$(GetNo, i + 1, 3) Else Myno = "0" + Mid$(GetNo, i + 2, 2) End If If (Mid$(Myno, 1, 3)) > 0 Then RdNo = Mid$(Myno, 1, 1) My100 = MyArry1(RdNo) RdNo = Mid$(Myno, 3, 1) My1 = MyArry3(RdNo) RdNo = Mid$(Myno, 2, 1) My10 = MyArry2(RdNo) If Mid$(Myno, 2, 2) = 11 Then My11 = "إحدى عشر" If Mid$(Myno, 2, 2) = 12 Then My12 = "إثنى عشر" If Mid$(Myno, 2, 2) = 10 Then My10 = "عشرة" If ((Mid$(Myno, 1, 1)) > 0) And ((Mid$(Myno, 2, 2)) > 0) Then My100 = My100 + MyAnd If ((Mid$(Myno, 3, 1)) > 0) And ((Mid$(Myno, 2, 1)) > 1) Then My1 = My1 + MyAnd GetTxt = My100 + My1 + My10 If ((Mid$(Myno, 3, 1)) = 1) And ((Mid$(Myno, 2, 1)) = 1) Then GetTxt = My100 + My11 If ((Mid$(Myno, 1, 1)) = 0) Then GetTxt = My11 End If If ((Mid$(Myno, 3, 1)) = 2) And ((Mid$(Myno, 2, 1)) = 1) Then GetTxt = My100 + My12 If ((Mid$(Myno, 1, 1)) = 0) Then GetTxt = My12 End If If (i = 0) And (GetTxt <> "") Then If ((Mid$(Myno, 1, 3)) > 10) Then Mybillion = GetTxt + " مليار" Else Mybillion = GetTxt + " مليارات" If ((Mid$(Myno, 1, 3)) = 2) Then Mybillion = " مليار" If ((Mid$(Myno, 1, 3)) = 2) Then Mybillion = " ملياران" End If End If If (i = 3) And (GetTxt <> "") Then If ((Mid$(Myno, 1, 3)) > 10) Then MyMillion = GetTxt + " مليون" Else MyMillion = GetTxt + " ملايين" If ((Mid$(Myno, 1, 3)) = 1) Then MyMillion = " مليون" If ((Mid$(Myno, 1, 3)) = 2) Then MyMillion = " مليونان" End If End If If (i = 6) And (GetTxt <> "") Then If ((Mid$(Myno, 1, 3)) > 10) Then MyThou = GetTxt + " ألف" Else MyThou = GetTxt + " آلاف" If ((Mid$(Myno, 3, 1)) = 1) Then MyThou = " ألف" If ((Mid$(Myno, 3, 1)) = 2) Then MyThou = " ألفان" End If End If If (i = 9) And (GetTxt <> "") Then MyHun = GetTxt If (i = 12) And (GetTxt <> "") Then MyFraction = GetTxt End If i = i + 3 Loop If (Mybillion <> "") Then If (MyMillion <> "") Or (MyThou <> "") Or (MyHun <> "") Then Mybillion = Mybillion + MyAnd End If If (MyMillion <> "") Then If (MyThou <> "") Or (MyHun <> "") Then MyMillion = MyMillion + MyAnd End If If (MyThou <> "") Then If (MyHun <> "") Then MyThou = MyThou + MyAnd End If If MyFraction <> "" Then If (Mybillion <> "") Or (MyMillion <> "") Or (MyThou <> "") Or (MyHun <> "") Then NoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur + MyAnd + MyFraction + " " + MySubCur + " " + "لا غير" Else NoToTxt = ReMark + MyFraction + " " + MySubCur + " " + "لا غير" End If Else NoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur + " " + "لا غير" End If End Function وعليكم السلام، هذا الكود تضعه في موديل ثم تكتب هذه المعادلة =NoToTxt(الرقم;العملة;أجزاء العملة)
  17. السلام عليكم ورحمة الله وبركاته إن أذن لي أخي الكريم @محي الدين ابو البشر لإثراء الموضوع قمت بحله بطريقتين : طريقة الجداول المحورية دمج الجداول المحورية بالمعادلات في جدول كلتيهما بحاجة تحديث فقط . أرجو لكم جميعاً التوفيق والسداد والسلام عليكم Abu Rafat.xlsx
  18. وعليكم السلام ورحمة الله وبركاته ولكم بمثل ما دعوتم أخي الكريم وما توفيقي إلا بالله الحمد لله الذي بنعمته تتم الصالحات، تم بفضل الله تعالى تجاوز كل هذه العقبات أو المشاكل في الملف ، وحسبما فهمت منك أنك تريد قيمة القسط التالي، وقد عملت على هذا الأساس أرجو أن تكون به الفائدة المرجوة ... والله من وراء القصد والسلام عليكم ---------------------------------------------------------------- ملاحظة: لحساب القسط للشهر القادم نستخدم المعادلة التالية: =VLOOKUP(D14+1;'تسديد عميل'!$D$19:$G$58;4;0) أما لحساب القسط للشهر الحالي فقط نحذف + 1 كما يلي: =VLOOKUP(D14;'تسديد عميل'!$D$19:$G$58;4;0) يرجى استخدام هذا الملف لأنني أجريت عدة تعديلات في المعادلات بكل الشيتات لم أعلن عنها لضيق الوقت مع الاعتذار. الزكاة الخاصة للارسال (1).xls
  19. وعليكم السلام ورحمة الله بركاته أسأل الله تعالى أن يتقبل منا ومنكم الصيام والقيام وصالح الأعمال جواباُ لسؤالك الكريم أخي الحبيب: لا يوجد في شيت "تسديد العميل" الربح كما هو مشار إليه في شيت المقسطون، والقسط المسجل لديك هو معدل قيمة العقد بالتقسيط بعد الزيادة مقسوماً على عدد الأشهر. كما هو واضح فإن شيت " المقسطون " ستتعدد فيه الأسماء ولذلك فالأخذ من تفنيد أقساط اسم واحد في شيت "تسديد العميل" لا يمكن ضبطها على كافة الأسماء في الشيت الأول تم حل مشكلة البند الثاني بعون الله تعالى. برجاء التوضيح أكثر للمطلوب حتى يتسنى للأخوة الكرام تقديم المساعدة بإذن الله تعالى راجياً لكم التوفيق والسداد والسلام عليكم ورحمة الله وبركاته الزكاة الخاصة للارسال.xls
  20. بعد إذن من سبقني يمكنك ضرب ناتج المعادلة بالرقم 1 ثم تنسق الخلية بالتاريخ: =LEFT(A2;FIND("-";A2)-1)*1
  21. ما شاء الله بنارك لأستاذنا الكبير @ضاحي الغريب هذه الجهود القيّمة المبذولة ، سائلين الله أن يزيدكم من العلم النافع الذي نرجو أن يكون بميزان حسناتكم ...آمين
  22. أحسنت أخي الكريم @كريم نظيم إلا أنني قمت بالعمل وفق طلبه ...وماذا إن وضع حرفاً آخر غير حرف الغين؟!. كان بإمكاننا استخدام هذه الدالة التي استخدمتها . بارك الله بكم تقبل تحياتي العطرة.
  23. وعليكم السلام يمكنك استخدام هذه المعادلة =COUNTA(A2:F2)-COUNTBLANK(A2:F2) واسحب نزولاً تقبل تحياتي
×
×
  • اضف...

Important Information