اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

الخبراء
  • Posts

    2220
  • تاريخ الانضمام

  • Days Won

    30

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

  1. السلام عليكم أخي الكريم ...... ولكم بمثل ما دعوتم آمين بناء على طلبك - أخي الكريم - تم التعديل، مع ملاحظة أن الورقتين Data & Result تعتمدان في معرفة القسم والرقم الوظيفي على الورقة الأولى Data1 وكذلك يمكنك التحديث لكتابة الأسماء آلياً بتحديث Pivot table بجانب الجدول في ورقة Result أما إن أردت كتابة الاسم يدوياً ستقوم بإلغاء المعادلة التي تربط خلايا الاسم بالجدول المجاور لكن لا يضمن أن تكتب الاسم بحذافيره دون زيادة أو نقصان فتكون النتائج تابعة لدقة كتابتك للاسم تقبل تحياتي والسلام عليكم. Abu Rafat (1).xlsx
  2. السلام عليكم أخي الكريم أبو رأفت عساكم من عواده، أسأل الله تعالى أن يتقبل منا ومنكم صالح الأعمال،كل عام وأنتم إلى الله تعالى أقرب ...آمين أما بعد: لم توضح أخي الكريم شكل النتائج المتوقعة وفي أي ورقة تريد التعديل، وبما أنك لم تحدد ذلك فإنني قمت بإضافة شيت - سمه ما شئت - تضع فيه القسم ورقم الموظف واسمه لمرة واحدة وفي شيت النتائج قمت بالتعديل وليس كل ما طلبت، حيث أنك طلبت خصم الأشهر الثلاثة يمكن إضافة ذلك حسب أرباع السنة وفيما يلي أعرض لك نتيجة ما قمت به ضمن الملف المرفق: تقبل تحياتي Abu Rafat.xlsx
  3. السلام عليكم من فضلك راجع الرابط التالي: والله أعلم
  4. وعليكم السلام يمكنك استخدام التحقق من الصحة أقل من أو يساوي تاريخ معين ثم تطلب منه إيقاف أي رقم يتجاوز هذا التاريخ لما بعده أرجو أن يكون الحل مناسباً عدم قبول ادخال تاريخ قبل سنة معينة.xlsx
  5. السلام عليكم أخي الكريم جزاكم الله خيراً على هذا العمل الذي أعددت به هذه الصحيفة بتنسيق رائع لكنني أرى أن تتجدد بيانات هذه الصحيفة عند كل كود تدرجه، بحيث لا تضطر أو يضطر المستخدم بعد تحديث بياناتها لإضافة بيانات أخرى، بل يمكنك استخدام جدول آخر تضع فيه هذه البيانات وفق رقم الكود أو الاسم ... متمنياً لكم التوفيق والسداد تقبل تحياتي العطرة والسلام عليكم. ملاحظة: للبيان فقط ،قسم من البيانات يتجدد بواسطة رقم الكود بينما قسم آخر ستتم كتابته وفق كل اسم جديد .
  6. وعليكم السلام يمكنك استبدال الكود لتصبح النتائج كما تريد مرفق ربطاً الملف أما إن كانت لا تزال هناك مشكلة في ظهور اللغة فأنت بحاجة إلى تعديل الإعدادات من لوحة التحكم خيارات اللغة كما أن الكود السابق الموجود لديك يعمل بشكل صحيح وقد رأيت أنك استخدمته كمعادلة الصفيف بضغط Ctrl+shift+enter >>> جرب كتابة المعادلة ثانية بالضغط فقط على Enter وستحل المشكلة لديك بإذن الله تقبل تحياتي. المصنف1.xlsm
  7. أشكرك أخي الكريم @ابوحبيبه على كلامك الطيب المشجع ،وأقول لك أخي الكريم ولكم بمثل ما دعوتم....آمين نحن كما ذكرت نكبر ببعضنا ونتشارك العلم الذي وهبنا الله إياه ...وكما رأيت لكلِ أسلوبه ولذلك فإن هذا المنتدى هو مرتع خصب للتحصيل العلمي ولشرف الريادة والسبق في ميادين العلم الذي قال الله تعالى عنه: (وقل ّربّ زدني علماً) وقال تعالى أيضاً : ( وفوق كل ذي علمٍِ عليمٌ) جزاك الله خيراً على حسن الظن بإخوانك ، تقبل تحياتي العطرة والسلام عليكم
  8. بارك الله بكم أخي الكريم @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 وبعد ضبط الكود كما يجب تمت تجربته وتزويد الأخ السائل به أشكرك أخي الكريم على حسن استئذانك و لين جانبك ... وأزيدك من الشعر بيتاً أنني معجب بعلمك ومساعدتك للآخرين وهذا ما نتوسمه بالجميع ولذلك فإنني أغبطك وأسعد بذلك تقبل تحياتي العطرة. والسلام عليكم
  9. السلام عليكم أخي الكريم أرجو أن يكون تصحيح الخطأ في هذا الملف تقبل تحياتي ما الخطأ في هذا الكود.xlsm
  10. جزاكم الله خيرا أخي الكريم الحقيقة لا يمكنني تجربة ذلك حالياً لأنني لا أمتلك حاسوبا شخصيا إلا أثناء العمل نهارا للأسف. بارك الله بجهودكم.
  11. السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً وأحسن إليكم أستاذنا مجهود رائع تستحق عليه الثناء أحسنتم بارك الله بكم ، إلى المزيد من العطاء وفقكم الله لما يحب ويرضى آمين والسلام عليكم ملاحظة: أخي الكريم لاحظت أنه كلما حددت نطاقاً جديداً لوضع خانات التحقق أو أزرار الخيارات يتم حذفها من النطاق السابق، فماذا لو كنت بحاجة لوضعها في أكثر من نطاق؟!. يرجى أخذ هذه الملاحظة بعين الاعتبار والسلام عليكم ورحمة الله وبركاته
  12. السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً وأحسن إليكم أستاذنا الكريم @omar elhosseini على صياغة هذه الأكواد الرائعة والتي من خلالها يمكن إضافة أيتهما في النطاق الذي يتم تحديده وهذا ما كنت على يقين منه من خلال استخدام الـ VBA إلا أن ما أثار استغرابي هو استخدامكم لهما وبقيت لاحقة الملف xlsx كما هو موضح أدناه في الصورة المرفقة وافر تقديري واحترامي لشخصكم الكريم والسلام عليكم ورحمة الله وبركاته.
  13. السلام عليكم ورحمة الله وبركاته أحسنتم أستاذنا الكريم @omar elhosseini باستخدام الطريقتين، جزاكم الله خيراً وأحسن إليكم، كان بالإمكان استخدام هاتين الطريقتين في حال كانت البيانات قليلة في عدد صفوف محدود. ماذا لو كانت الصفوف بالمئات أو الآلاف هل ستكونا مجديتين؟ صحيح أننا سنستخدم النسخ إلى عدد نرغبه من الصفوف ، لكن المشكلة في ربط كل CheckBox أو OptionButton بالخلايا حيث سيتم ربط كل منها بخلية. بالتأكيد النتائج صحيحة 100 % إلا أن الوصول إليها صعب جداً ...أم أن هناك أسلوب آخر لربط كل منها بالخلية المقابلة أكثر سهولة ويسر. يرجى الإفادة والسلام عليكم ورحمة الله وبركاته.
  14. وعليكم السلام ورحمة الله وبركاته أخي الكريم أرى أنه باستخدام التنسيق الشرطي يمكنك الحصول على ما تريد لكن باستخدام أسلوب آخر غير التشيك بوكسز لأنه سيتم تغيير نوع الملف إلى XLSM باستخدام التشيك بوكسز أما الطريقة ليبقى نوع الملف كما هو فإنني أقترح استبدال التشيك بوكسز برقم 8 من لوحة المفاتيح باستخدام نوع الخط Wingdings 2 في كلا العمودين كما هو مبين في هذه الصورة: راجياً لكم التوفيق والسلام عليكم Pending broker inc. 10-Apr-2023.xlsx
  15. الحمد لله الذي بنعمته تتم الصالحات
  16. أخي الحبيب @حسونة حسين أرجو أن يصل إلى النتيجة المطلوبة أو أن يرسل ملفه للعمل عليه.
  17. يرجى إرفاق الملف الذي ترغب بوضع الكود له وشكراً
  18. السلام عليكم ولكم بمثل ما دعوتم آمين تفضل أخي الكريم تم التعديل على الجداول دون Pivot Table تقبل تحياتي Abu Rafat.xlsx
  19. الحمد لله الذي بنعمته تتم الصالحات لا شكر على واجب حياكم الله
  20. 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(الرقم;العملة;أجزاء العملة)
  21. السلام عليكم ورحمة الله وبركاته إن أذن لي أخي الكريم @محي الدين ابو البشر لإثراء الموضوع قمت بحله بطريقتين : طريقة الجداول المحورية دمج الجداول المحورية بالمعادلات في جدول كلتيهما بحاجة تحديث فقط . أرجو لكم جميعاً التوفيق والسداد والسلام عليكم Abu Rafat.xlsx
  22. وعليكم السلام ورحمة الله وبركاته ولكم بمثل ما دعوتم أخي الكريم وما توفيقي إلا بالله الحمد لله الذي بنعمته تتم الصالحات، تم بفضل الله تعالى تجاوز كل هذه العقبات أو المشاكل في الملف ، وحسبما فهمت منك أنك تريد قيمة القسط التالي، وقد عملت على هذا الأساس أرجو أن تكون به الفائدة المرجوة ... والله من وراء القصد والسلام عليكم ---------------------------------------------------------------- ملاحظة: لحساب القسط للشهر القادم نستخدم المعادلة التالية: =VLOOKUP(D14+1;'تسديد عميل'!$D$19:$G$58;4;0) أما لحساب القسط للشهر الحالي فقط نحذف + 1 كما يلي: =VLOOKUP(D14;'تسديد عميل'!$D$19:$G$58;4;0) يرجى استخدام هذا الملف لأنني أجريت عدة تعديلات في المعادلات بكل الشيتات لم أعلن عنها لضيق الوقت مع الاعتذار. الزكاة الخاصة للارسال (1).xls
  23. وعليكم السلام ورحمة الله بركاته أسأل الله تعالى أن يتقبل منا ومنكم الصيام والقيام وصالح الأعمال جواباُ لسؤالك الكريم أخي الحبيب: لا يوجد في شيت "تسديد العميل" الربح كما هو مشار إليه في شيت المقسطون، والقسط المسجل لديك هو معدل قيمة العقد بالتقسيط بعد الزيادة مقسوماً على عدد الأشهر. كما هو واضح فإن شيت " المقسطون " ستتعدد فيه الأسماء ولذلك فالأخذ من تفنيد أقساط اسم واحد في شيت "تسديد العميل" لا يمكن ضبطها على كافة الأسماء في الشيت الأول تم حل مشكلة البند الثاني بعون الله تعالى. برجاء التوضيح أكثر للمطلوب حتى يتسنى للأخوة الكرام تقديم المساعدة بإذن الله تعالى راجياً لكم التوفيق والسداد والسلام عليكم ورحمة الله وبركاته الزكاة الخاصة للارسال.xls
  24. بعد إذن من سبقني يمكنك ضرب ناتج المعادلة بالرقم 1 ثم تنسق الخلية بالتاريخ: =LEFT(A2;FIND("-";A2)-1)*1
×
×
  • اضف...

Important Information