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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    196

كل منشورات العضو أ / محمد صالح

  1. معنى شيت ورقة عمل والشيت الحاص بالسنة القادمة هو نسخة من الشيت الخاص بالسنة الحالية الذي يتغير فقط هو التسجيل هنا ما يخص هذا العام وهناك ما يخص العام الماضي وبالنسبة لموضوع أن أعمل لك شيت فربما التعديل على ملفك يكون أسهل
  2. بالتوفيق @aladdin61 كلامي على اساس انك تجمع بدالة sum وانها لا تجمع معك. لذلك تم اقتراح بديل sum وهي دالة subtotal ولم ترد حضرتك على رسالة الخطأ في طريقة استعمالك لدالة subtotal فهل معنى هذا ان الرسالة مازالت تظهر ام انها اختفت وقامت الدالة بعملها المطلوب ؟؟؟!!!!
  3. الرسالة تعني أنك أدخلت عدد قليل من وسائط الدالة وهي فقط وسيطتين الرقم 9 والنطاق المراد جمعه ربما يكون ضبط جهازك يستحدم الفاصلة المنقوطة بدلا من الفاصلة جرب =SUBTOTAL(9;A1:A8) رغم أني مع المقترح الخاص بارفاق ملفك أو جزء منه الذي به المشكلة
  4. يمكنك استعمال التنسيق الشرطي إذا كانت قيمة الخلية = "تم نقل الموظف" يكون لون الخلفية أخضر وغير ذلك يكون أحمر. وعند تنفيذ أمر النقل في زر النقل يوضع سطر لجعل قيمة الخلية = "تم نقل الموظف"
  5. جرب استعمال =SUBTOTAL(9,A1:A8) مع تغيير المدى للمطلوب عندك
  6. حسب فهمي للمطلوب المطلوب لا يتم بالمعادلات لأنه سيعطي حطأ مرجع دائري circular reference لأن الخلية المطلوب نقل القيمة إليها محسوبة ضمن الخلية التي يتم نقلها لذا اقترح عمل شيت خاص بكل عام ويتم جلب مجموع نهاية العام في خانة ما قبله في العام التالي بهذه الطريقة لن توجد أخطاء في المعادلات وفقنا الله جميعا
  7. إذا كان فهمي للمطلوب صحيحا فلا نحتاج لدالة if ويمكنك وضع المعادلة التالية في الخلية H3 =0.8+CEILING.MATH(G3-5,2)*0.175 وفي الخلية I3 =G3-H3 ثم استعمل نسخ المعادلة لأسفل للتطبيق على باقي الخلايا
  8. لا أدري لماذا تستخدم دالة indirect طالما أن المطلوب إرجاعه هو قيمة موجودة في خلية نستخدم indirect لتحويل نص مكتوب في خلية الى معادلة. إذا كان المطلوب جلب قيمة موجودة في خلية معينة في شيت معين من ملف معين حتى لو مغلق يمكن استعمال هذه المعادلة ='C:\path\to\file\[workbookName.xlsx]sheetName'!$A$1 لاحظ كتابة المسار الكامل للملف ولاحظ إحاطة مسار الملف حتى اسم الشيت بفاصلة مفردة ولا حظ كتابة اسم المصنف بين قوسين مربعين ولاحظ علامة التعجب قبل مرجع النطاق المطلوب أرحو أن يكون اتضح الأمر
  9. هل المطلوب تاريخ نهاية العمل؟ إذا كان هذا هو المطلوب فيمكنك استعمال المعادلة التالية في G4 =DATE(YEAR(E4)+F4,MONTH(E4),DAY(E4)-1) ثم سجبها لسفل
  10. مرحبا بك أستاذ @abouelhassan يمكنك استعمال الوسيطة الأولى sh والتي تعني كائن الشيت الحالي في الشرط ليصبح الكود كالتالي: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Sh.Name = "Sheet3" Then If Not Application.Intersect(Target, Range("a1:a1000")) Is Nothing Then Application.EnableEvents = False Application.Undo Application.EnableEvents = True End If Else If Not Application.Intersect(Target, Range("a1:w1")) Is Nothing Then Application.EnableEvents = False Application.Undo Application.EnableEvents = True End If End If End Sub لاحظ استعمال sheet3 وهو اسم الشيت المطلوب استثناؤه خالص دعواتي بالتوفيق
  11. شكرا لتعليقك وكلماتك الطيبة استاذ @هانى محمد الغرض طبعا هو هل جزاء الإحسان إلا الإحسان ورد الجميل بالأجمل. الفائدة موجودة للجميع هنا وهناك وإذا كنت قد خالفت تعليمات المنتدى فلا امانع في حذف جميع الموضوعات المخالفة. الحمد لله وهذا ما افعله نشر كل ما اعرفه واستفدت به حتي يستفيد اصدقائي أيضا. مرة أخرى شكرا لذوقك العالي وكلامك الطيب فالكلمة الطيبة صدقة.
  12. أحسن الله إليكم أستاذ @Ali Mohamed Ali جميعا بإذن الله
  13. عشاق الإكسل هل سمعت عن المتغيرات في البرمجة؟ اكيد نعم. هل سمعت عن استعمال المتغيرات في المعادلات؟؟!!! اجب بنفسك في الردود بمناسبة إعادة فتح المساجد للصلاة، هديتي حصريا لكل عشاق الحديث في برنامج ميكروسوفت اكسل ms excel 365، شرح دالة let الجديدة. طريقة الاشتراك في office insider. ما الجديد في اكسل 2020 excel 2020. استعمال المتغيرات في المعادلات. شروط تسميه المتغيرات في لغات البرمجة. امثله على excel let function من البسيط الى المعقد. وغيرها الكثير ...... اكتشفها بنفسك. وبالنسبة لرابط الملف المستعمل في الشرح، وملف الريجيستري الذي يتيح لك الاشتراك في office insider. سيتم وضع الرابط بناء على التفاعل مع الموضوع والفيديو بالتعليق والمشاركة. هل جزاء الإحسان إلا الإحسان؟؟!!!
  14. في حدث عند تغيير التحديد Worksheet_SelectionChange ضع كود تغيير اللغة إذا كان رقم العمود الحالي كذا اجعل اللغة كذا Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 Then LoadKeyboardLayout "00000401", 1 'Arabic Else LoadKeyboardLayout "00000409", 1 'English End If End Sub مع إضافة كود دالة تغيير لغة لوحة المفاتيح في موديول منفصل #If Win64 Then Declare PtrSafe Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long Declare PtrSafe Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long #Else Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long #End If خالص دعواتي بالتوفيق
  15. جميعا بإذن الله وفقنا الله جميعا لكل ما يحبه ويرضاه
  16. شكرا لكلماتك الطيبة بالنسبة لعدم ظهور النتائج فحلها بسيط جدا ضع في بداية الدالة Application.Volatile وبالنسبة لناتج الدالة فهو رقم من نوع double ولا يمكن أن تكون قيمته سلسلة نصية فارغة لذلك يمكنك تغيير خيارات العرض للشيت الحالي بعدم إظهار الصفر file --> options --> advanced --> display options for this worksheet --> show a zero in cells that have zero value بالتوفيق أخي الكريم ولا تنساني من صالح دعائك
  17. شكرا لكلماتك الطيبة ولا يخفى عليك إمكانية دمج الدالتين في دالة واحدة مع تمرير باراميتر ثالث يحدد النوع صفر أو يترك فارغا للحالة الأولى 1 أو أي رقم غير صفر للحالة الثانية Function kest(total As Double, start As Date, Optional ftype As Boolean = 0) As Double If ftype = 0 Then If Date >= DateAdd("m", 1, start) And Date <= DateAdd("m", 37, start) Then If Month(Date) - Month(start) = 1 Then kest = 550 * (total * 96.25 / 100 / 550 - Int(total * 96.25 / 100 / 550)) + total * 3.75 / 100 Else kest = (total - 550 * (total * 96.25 / 100 / 550 - Int(total * 96.25 / 100 / 550)) - total * 3.75 / 100) / 35 End If Else kest = 0 End If Else If Date >= DateAdd("m", 1, start) And Date <= DateAdd("m", 11, start) Then kest = total / 10 Else kest = 0 End If End If End Function وفقنا الله جميعا لكل خير
  18. إن شاء الله يكون هذا هو المطلوب Function kest(total As Double, start As Date) As Double If Date >= DateAdd("m", 1, start) And Date <= DateAdd("m", 37, start) Then If Month(Date) - Month(start) = 1 Then kest = 550 * (total * 96.25 / 100 / 550 - Int(total * 96.25 / 100 / 550)) + total * 3.75 / 100 Else kest = (total - 550 * (total * 96.25 / 100 / 550 - Int(total * 96.25 / 100 / 550)) - total * 3.75 / 100) / 35 End If Else kest = 0 End If End Function Function kest2(total As Double, start As Date) As Double If Date >= DateAdd("m", 1, start) And Date <= DateAdd("m", 11, start) Then kest2 = total / 10 Else kest2 = 0 End If End Function الدالة kest بديل المعادلة في C3 الدالة kest2 بديل المعادلة في K3 الباراميتر الأول هو المبلغ والثاني هو تاريخ البداية ولا تنس تحويل الملف لصيغة تقبل الأكواد xlsm , xlsb وفقنا الله جميعا لكل ما يحبه ويرضاه
×
×
  • اضف...

Important Information