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

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

الخبراء
  • Posts

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

  • Days Won

    30

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

  1. السلام عليكم أخي الكريم أرجو أن يكون تصحيح الخطأ في هذا الملف تقبل تحياتي ما الخطأ في هذا الكود.xlsm
  2. جزاكم الله خيرا أخي الكريم الحقيقة لا يمكنني تجربة ذلك حالياً لأنني لا أمتلك حاسوبا شخصيا إلا أثناء العمل نهارا للأسف. بارك الله بجهودكم.
  3. السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً وأحسن إليكم أستاذنا مجهود رائع تستحق عليه الثناء أحسنتم بارك الله بكم ، إلى المزيد من العطاء وفقكم الله لما يحب ويرضى آمين والسلام عليكم ملاحظة: أخي الكريم لاحظت أنه كلما حددت نطاقاً جديداً لوضع خانات التحقق أو أزرار الخيارات يتم حذفها من النطاق السابق، فماذا لو كنت بحاجة لوضعها في أكثر من نطاق؟!. يرجى أخذ هذه الملاحظة بعين الاعتبار والسلام عليكم ورحمة الله وبركاته
  4. السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً وأحسن إليكم أستاذنا الكريم @omar elhosseini على صياغة هذه الأكواد الرائعة والتي من خلالها يمكن إضافة أيتهما في النطاق الذي يتم تحديده وهذا ما كنت على يقين منه من خلال استخدام الـ VBA إلا أن ما أثار استغرابي هو استخدامكم لهما وبقيت لاحقة الملف xlsx كما هو موضح أدناه في الصورة المرفقة وافر تقديري واحترامي لشخصكم الكريم والسلام عليكم ورحمة الله وبركاته.
  5. السلام عليكم ورحمة الله وبركاته أحسنتم أستاذنا الكريم @omar elhosseini باستخدام الطريقتين، جزاكم الله خيراً وأحسن إليكم، كان بالإمكان استخدام هاتين الطريقتين في حال كانت البيانات قليلة في عدد صفوف محدود. ماذا لو كانت الصفوف بالمئات أو الآلاف هل ستكونا مجديتين؟ صحيح أننا سنستخدم النسخ إلى عدد نرغبه من الصفوف ، لكن المشكلة في ربط كل CheckBox أو OptionButton بالخلايا حيث سيتم ربط كل منها بخلية. بالتأكيد النتائج صحيحة 100 % إلا أن الوصول إليها صعب جداً ...أم أن هناك أسلوب آخر لربط كل منها بالخلية المقابلة أكثر سهولة ويسر. يرجى الإفادة والسلام عليكم ورحمة الله وبركاته.
  6. وعليكم السلام ورحمة الله وبركاته أخي الكريم أرى أنه باستخدام التنسيق الشرطي يمكنك الحصول على ما تريد لكن باستخدام أسلوب آخر غير التشيك بوكسز لأنه سيتم تغيير نوع الملف إلى XLSM باستخدام التشيك بوكسز أما الطريقة ليبقى نوع الملف كما هو فإنني أقترح استبدال التشيك بوكسز برقم 8 من لوحة المفاتيح باستخدام نوع الخط Wingdings 2 في كلا العمودين كما هو مبين في هذه الصورة: راجياً لكم التوفيق والسلام عليكم Pending broker inc. 10-Apr-2023.xlsx
  7. أخي الحبيب @حسونة حسين أرجو أن يصل إلى النتيجة المطلوبة أو أن يرسل ملفه للعمل عليه.
  8. يرجى إرفاق الملف الذي ترغب بوضع الكود له وشكراً
  9. السلام عليكم ولكم بمثل ما دعوتم آمين تفضل أخي الكريم تم التعديل على الجداول دون Pivot Table تقبل تحياتي Abu Rafat.xlsx
  10. الحمد لله الذي بنعمته تتم الصالحات لا شكر على واجب حياكم الله
  11. 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(الرقم;العملة;أجزاء العملة)
  12. السلام عليكم ورحمة الله وبركاته إن أذن لي أخي الكريم @محي الدين ابو البشر لإثراء الموضوع قمت بحله بطريقتين : طريقة الجداول المحورية دمج الجداول المحورية بالمعادلات في جدول كلتيهما بحاجة تحديث فقط . أرجو لكم جميعاً التوفيق والسداد والسلام عليكم Abu Rafat.xlsx
  13. وعليكم السلام ورحمة الله وبركاته ولكم بمثل ما دعوتم أخي الكريم وما توفيقي إلا بالله الحمد لله الذي بنعمته تتم الصالحات، تم بفضل الله تعالى تجاوز كل هذه العقبات أو المشاكل في الملف ، وحسبما فهمت منك أنك تريد قيمة القسط التالي، وقد عملت على هذا الأساس أرجو أن تكون به الفائدة المرجوة ... والله من وراء القصد والسلام عليكم ---------------------------------------------------------------- ملاحظة: لحساب القسط للشهر القادم نستخدم المعادلة التالية: =VLOOKUP(D14+1;'تسديد عميل'!$D$19:$G$58;4;0) أما لحساب القسط للشهر الحالي فقط نحذف + 1 كما يلي: =VLOOKUP(D14;'تسديد عميل'!$D$19:$G$58;4;0) يرجى استخدام هذا الملف لأنني أجريت عدة تعديلات في المعادلات بكل الشيتات لم أعلن عنها لضيق الوقت مع الاعتذار. الزكاة الخاصة للارسال (1).xls
  14. وعليكم السلام ورحمة الله بركاته أسأل الله تعالى أن يتقبل منا ومنكم الصيام والقيام وصالح الأعمال جواباُ لسؤالك الكريم أخي الحبيب: لا يوجد في شيت "تسديد العميل" الربح كما هو مشار إليه في شيت المقسطون، والقسط المسجل لديك هو معدل قيمة العقد بالتقسيط بعد الزيادة مقسوماً على عدد الأشهر. كما هو واضح فإن شيت " المقسطون " ستتعدد فيه الأسماء ولذلك فالأخذ من تفنيد أقساط اسم واحد في شيت "تسديد العميل" لا يمكن ضبطها على كافة الأسماء في الشيت الأول تم حل مشكلة البند الثاني بعون الله تعالى. برجاء التوضيح أكثر للمطلوب حتى يتسنى للأخوة الكرام تقديم المساعدة بإذن الله تعالى راجياً لكم التوفيق والسداد والسلام عليكم ورحمة الله وبركاته الزكاة الخاصة للارسال.xls
  15. بعد إذن من سبقني يمكنك ضرب ناتج المعادلة بالرقم 1 ثم تنسق الخلية بالتاريخ: =LEFT(A2;FIND("-";A2)-1)*1
  16. ما شاء الله بنارك لأستاذنا الكبير @ضاحي الغريب هذه الجهود القيّمة المبذولة ، سائلين الله أن يزيدكم من العلم النافع الذي نرجو أن يكون بميزان حسناتكم ...آمين
  17. أحسنت أخي الكريم @كريم نظيم إلا أنني قمت بالعمل وفق طلبه ...وماذا إن وضع حرفاً آخر غير حرف الغين؟!. كان بإمكاننا استخدام هذه الدالة التي استخدمتها . بارك الله بكم تقبل تحياتي العطرة.
  18. وعليكم السلام يمكنك استخدام هذه المعادلة =COUNTA(A2:F2)-COUNTBLANK(A2:F2) واسحب نزولاً تقبل تحياتي
  19. وعليكم السلام ورحمة الله وبركاته يمكنك الاستعانة بهذا الكود في السطر الرابع تلغي تفعيل إظهار رؤوس الصفوف والأعمدة والسلام عليكم Private Sub Workbook_Open() ThisWorkbook.Application.WindowState = xlMaximized ThisWorkbook.Application.DisplayFullScreen = True ActiveWindow.DisplayHeadings = False Application.DisplayFormulaBar = False End Sub
  20. السلام عليكم الشكر الجزيل لكل من قال كلمة طيبة أو عبر عن شعور ألم أو تعاطف مع إخواننا الذين مستهم: البأساء والضراء وزلزلوا هذا الابتلاء من الله قام بتمحيص هؤلاء الناس الذين ظهرت معادنهم الأصيلة رغم الجراح والآلام التي اعتصرتهم، فمن أراد أن يساهم في تقديم يد العون لهم فها هو ميدان الكرم والإيثار. أسأل الله تعالى لكم جميعاً التوفيق لما يحب ويرضى والسلام عليكم
  21. أخي الكريم السلام عليكم سجل دخول دون كتابة أي شيء في حقول اسم المستخدم أو كلمة السر والله أعلم
  22. حياكم الله أخي الكريم جربت التغيير على الخلايا المطلوبة فتم تحديث الكود وفق كل تغيير /لديّ أوفيس 2016 يرجى التكرم بتجربته من قبل الإخوة الكرام ومشاركة النتيجة - تم تحديث ما يكتب في الخلايا ضمن QRCODE لم يتم التحديث مع الشكر والسلام عليكم
×
×
  • اضف...

Important Information