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

أ / محمد صالح

أوفيسنا
  • Posts

    4,357
  • تاريخ الانضمام

  • Days Won

    185

Community Answers

  1. أ / محمد صالح's post in إظهار أيام آخرالأسبوع فقط أعني السبت والأحد was marked as the answer   
    أشكر خبيرنا الكبير @أبوعيدلتصميمه الملف الذي لم يكن هو مطلوب الأخ صاحب الاستفسار
    والأولى أن يرفق صاحب الاستفسار ملفه وبه محاولاته السابقة للوصول للمطلوب
    مع توضيح المطلوب بصورة تفصيلية وشكل الملف بعد تنفيذ المطلوب (النتائج المتوقعة)
    على كل حال
    للوصول للمطلوب يمكن كتابة تاريخ بداية الشهر في خلية A1 مثلا
    وفي الخلية A2 نستعمل هذه المعادلة 
    =WORKDAY.INTL(A1,1,"1111100") مع سحب المعادلة لأسفل حتى يبدأ الشهر الجديد
    ووأيضا تنسيق الخلية بتنسيق التاريخ المطلوب
    ملحوظة: الدالة تعمل على أوفيس 2010 وما بعده
    بالتوفيق 
  2. أ / محمد صالح's post in انقاص شهر ونصف (45) يوم من كل 6 اشهر was marked as the answer   
    يمكنك إضافة هذا السطر
    If TextBox4 >= 1 And TextBox5 >= 6 Then TextBox3 = DateAdd("d", -45, TextBox3) بعد هذا السطر
    TextBox3 = DateAdd("m", (Val(TextBox4) * -3), TextBox2) بالتوفيق 
  3. أ / محمد صالح's post in كيفية جمع خلايا الأعمدة الظاهرة فقط was marked as the answer   
    Subtotal تعمل على اكسل 2007 وما بعده
    ولجمع الصفوف المرئية فقط نستعمل هذه المعادلة
    =SUBTOTAL(109,E1:E20) أما إذا كان المطلوب جمع الأعمدة المرئية فقط فلابد من تدخل جراحي vba بهذه الدالة المعرفة
    بعد إضافتها في موديول جديد في نافذة vbe التي نصل إليها ب alt+f11
    Function SumVCols(Rng As Range) As Double Dim Cell As Range Application.Volatile For Each Cell In Rng If Cell.EntireColumn.Hidden = False And IsNumeric(Cell) Then SumVCols = SumVCols + Cell Next Cell End Function ويتم استعمالها هكذا
    =SumVCols(A1:F1) بالتوفيق 
  4. أ / محمد صالح's post in ايجاد البيانات المتشابه فى ملفين واستخراج عمود منفصل بالمتشابه فقط was marked as the answer   
    يمكنك وضع هذه المعادلة في الخلية E8 لجلب اسم المورد
    =IFERROR(INDEX(A:A,MATCH($D8,$B:$B,0)),"") مع سحب المعادلة لأسفل
    بالتوفيق 
  5. أ / محمد صالح's post in كود لحذف نطاق معين في صف بنائاً على تغير في خلية في نفس الصف was marked as the answer   
    حسب فهمي للمطلوب 
    يتم تعديل الكود الأصلي إلى
    Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Columns(1)) Is Nothing Then Range("b" & Target.Row & ":o" & Target.Row).ClearContents End If End Sub إن شاء اللّه يكون هو المطلوب 
    بالتوفيق 
  6. أ / محمد صالح's post in كيف اطلب استيراد عامود من عدة شيتات was marked as the answer   
    هذا الأمر تم تناوله في المنتدى كثيرا بعنوان ترحيل من عدة شيتات إلى شيت واحد
    يمكنك الرجوع لهذه الموضوعات للاستفادة منها في استنتاج الكود اللازم في ملفك
    بالتوفيق 
  7. أ / محمد صالح's post in كيف اطلب استيراد عامود من عدة شيتات was marked as the answer   
    هذا الأمر تم تناوله في المنتدى كثيرا بعنوان ترحيل من عدة شيتات إلى شيت واحد
    يمكنك الرجوع لهذه الموضوعات للاستفادة منها في استنتاج الكود اللازم في ملفك
    بالتوفيق 
  8. أ / محمد صالح's post in بحث باستخدام دالة vlookup was marked as the answer   
    أعتقد أنها ممكنة بدالة lookup وليس vlookup 
    يمكنك تجربة هذه المعادلة
    =LOOKUP(2,1/($A$2:$A$12="value"),$B$2:$B$12) حيث يتم التوصل لآخر نتيجة في العمود B أمام القيم في العمود A والتي تساوي value
    ويمكن استعمال مرجع الخلية التي بها القيمة المراد البحث عنها بدلا من كلمة value
    بالتوفيق 
  9. أ / محمد صالح's post in كود بحث وتجميع was marked as the answer   
    تم التطرق لهذا الأمر كثيرا
    وهذا الموضوع أحد النتائج 
    وهذا أيضا
    بالتوفيق 
  10. أ / محمد صالح's post in عايز أفكار لطريقة حل مشكلة تاريخ إستحقاق فاتورة was marked as the answer   
    إن شاء اللّه يقوم هذا الكود بالغرض في حدث عند تنشيط الصفحة
    Private Sub Worksheet_Activate() Dim lr As Long, r As Long lr = Sheet1.Cells(Rows.Count, 2).End(3).Row For r = 4 To lr If Range("c" & r) <= Date And Range("d" & r) <> "" Then Range("e" & r) = Range("d" & r) Range("d" & r).ClearContents End If Next r End Sub كلك يمين على اسم الشيت ثم view code ثم لصق هذا الكود
    وحفظ الملف بامتداد xlsb من تبويب file ثم save as
    بالتوفيق 
  11. أ / محمد صالح's post in تطبيق معادلة على جميع الخلايا was marked as the answer   
    إن شاء الله يكون المطلوب
    مع ملاحظة تغيير رقم العمود إلى معادلة حتى يتم سحب المعادلة أفقيا ورأسيا
    بالتوفيق
    جداول المدرسين.xlsm
  12. أ / محمد صالح's post in مشكلة في عملية جمع التاريخ was marked as the answer   
    المشكلة في إعدادات تنسيق التاريخ والمنطقة في لوحة التحكم
    يفضل اختيار منطقة عربية يكون تنسيق التاريخ بها اليوم/الشهر/السنة
    وهذا رابط الدعم في ميكروسوفت 
  13. أ / محمد صالح's post in مساعد في عملية جمع وطرح التاريخ was marked as the answer   
    بإذن الله يكون هذا الكود هو المطلوب
    تم استعمال dateadd لاضافة الايام والشهور والاعوام لتاريخ معين
    واستعمال دالة datedif لحساب الفرق بين تاريخين
    Private Sub CommandButton1_Click() TextBox2 = DateAdd("d", Val(TextBox6), TextBox1) TextBox2 = DateAdd("m", Val(TextBox5), TextBox2) TextBox2 = DateAdd("yyyy", Val(TextBox4), TextBox2) TextBox3 = DateAdd("m", (Val(TextBox4) * -3), TextBox2) TextBox7 = Evaluate("DATEDIF(" & CDbl(Date) & "," & CDbl(CDate(TextBox3)) & ", ""md"")") TextBox9 = Evaluate("DATEDIF(" & CDbl(Date) & "," & CDbl(CDate(TextBox3)) & ", ""ym"")") TextBox8 = Evaluate("DATEDIF(" & CDbl(Date) & "," & CDbl(CDate(TextBox3)) & ", ""y"")") MsgBox "Done by mr-mas.com" End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox1.Text = Format(TextBox1, "yyyy/mm/dd") End Sub Private Sub TextBox2_Change() TextBox2.Text = Format(TextBox2, "yyyy/mm/dd") End Sub Private Sub TextBox3_Change() TextBox3.Text = Format(TextBox3, "yyyy/mm/dd") End Sub بالتوفيق 
  14. أ / محمد صالح's post in حساب أيام الجمعة فقط في كل شهر ميلادي was marked as the answer   
    يمكنك استعمال هذه المعادلة
    =NETWORKDAYS.INTL(A2,EOMONTH(A2,0),"1111011") مع وضع تاريخ بداية الشهر المطلوب في الخلية A2
    بالتوفيق 
  15. أ / محمد صالح's post in معادلة بخصوص تاريخ معين was marked as the answer   
    إن شاء اللّه تفي هذه المعادلة بالغرض
    =EDATE(A5,3) مع تنسيق الخلية بأي تنسيق تاريخ مطلوب
    ومراعاة الفاصلة أو الفاصلة المنقوطة 
    بالتوفيق 
  16. أ / محمد صالح's post in التنسيق الشرطي was marked as the answer   
    يمكنك استعمال هذه المعادلات في التنسيق الشرطي
    مع مراعاة الفاصلة أو الفاصلة المنقوطة

    بالتوفيق
  17. أ / محمد صالح's post in التنسيق الشرطي was marked as the answer   
    يمكنك استعمال هذه المعادلات في التنسيق الشرطي
    مع مراعاة الفاصلة أو الفاصلة المنقوطة

    بالتوفيق
  18. أ / محمد صالح's post in التنسيق الشرطي was marked as the answer   
    يمكنك استعمال هذه المعادلات في التنسيق الشرطي
    مع مراعاة الفاصلة أو الفاصلة المنقوطة

    بالتوفيق
  19. أ / محمد صالح's post in المساعدة:: في كود طرح تاريخ متجدد من آخر و فرز عدد الاسابيع و الايام was marked as the answer   
    عليكم السلام ورحمة الله وبركاته
    يمكنك استعمال هذه المعادلة في الخلية F12
    =INT((F10-F7)/7) وفي الخلية F14
    =MOD(F10-F7,7) مع مراعاة الفاصلة والفاصلة المنقوطة
    بالتوفيق
  20. أ / محمد صالح's post in معادله للبحث في شيت اسمه متغير was marked as the answer   
    لا يوجد دالة لهذا الغرض
    ولكن الدوال المعرفة في vba تؤدي الغرض
    بعد تمرير رقم index للشيت إلى الدالة
    Function ShName(n As Long) As String ShName = Sheets(n).Name End Function وطريقة استدعائها لجلب اسم الشيت صاحب الترتيب 1 مثلا
    =ShName(1) بالتوفيق 
  21. أ / محمد صالح's post in معادلة لحساب ساعات العمل والتأخير والإضافي was marked as the answer   
    حساب التأخير بمعناه الفعلي يحتاج إلى تحديد وقت الدخول لكل وظف
    ولأني لا أجد ذلك في ملفك فقمت بحسابه عن طريق المتبقي من ساعات العمل حتى 7 ساعات عمل
    والإضافي هو ما زاد عن 7 ساعات
    لاحظ تم تغيير تنسيق خلايا الوقت الفعلي والتاخير والاضافي
    بالتوفيق 
    حساب التأخير والاضافي.xlsx
  22. أ / محمد صالح's post in قوائم الفصول was marked as the answer   
    السبب في البطء هو استعمال معادلة المصفوفات لأكثر من 70 مرة
    والصواب استعمالها مرتين فقط مع استثناء الصفوف الفارغة من المعادلة
    تم تعديل المعادلة في عمود البنات إلى 
    =IFERROR(INDEX(الأسماء!$B$2:$B$1000,SMALL(IF(الأسماء!$C$2:$C$1000=$I$1,IF(الأسماء!$F$2:$F$1000="أنثى",ROW($1:$999))),ROW()-3)),"") لاحظ بداية ونهاية المدى 2:1000 يجب أن تكون متطابقة ما عدا الصف الذي يتم إرجاعه فيكون أقل ب 1 واستعمال row - 3 للترتيب
    مع العلم انه يجب تحديد الخلايا B4:B42 قبل لصق المعادلة في شريط الصيغة
    مع الضغط على. Ctrl+Shift+Enter
    وهكذا مع عمود البنين وهذا ملفك بعد التعديل
    بالتوفيق 
    قوائم 2022 - قبل القسيم.xlsb
  23. أ / محمد صالح's post in طلب تعديل على كود was marked as the answer   
    هذا الكود يقوم بوضع قيمة الخلية G6 من الشيت صاحب الاسم البرمجي sheet1
    في أول خلية فارغة بعد آخر خلية مكتوب فيها في العمود B في الشيت صاحب الاسم البرمجي sheet3
    المطلوب غير واضح لي بصورة كافية.
    وإذا كنت تقصد وضع نفس القيمة في الخلية B9 فلا حاجة للمتغير M الذي يشير لأول خلية فارغة بعد المكتوب
    ويمكن تعديل الكود لهذا
    Private Sub cmdAdd_Click() Sheet3.Cells(9, "B").Value = Sheet1.Range("G6").Value End Sub لاحظ تم تغيير m إلى رقم الصف المطلوب وهو 9
    بالتوفيق 
  24. أ / محمد صالح's post in سؤال كيف اعمل VLOOKUP علي صفحتين was marked as the answer   
    لا يوجد مشكلة في هذا
    فقط كتابة مرجع جدول البحث من sheet1 بطريقة صحيحة
    يمكنك استعمال هذه المعادلة في الخلية B2 في sheet2
    =IFERROR(VLOOKUP(A2,Sheet1!A:B,2,0),"") تم استعمال iferror حتى لا يظهر خطأ عند عدم وجود الاسم
    ومرفق ملفك بعد التعديل لمن لا يعرف كيف يضيف المعادلة في الملف الأصلي
    بسبب اختلاف نظام الفاصلة بين الأجهزة
    بالتوفيق
    عمل فيولوك اب علي صفحتين.xlsx
  25. أ / محمد صالح's post in كود عدد الصفوف was marked as the answer   
    يمكنك استعمال هذا الكود
    وهو لوضع عدد عناصر القائمة
    كقيمة لمربع النص textbox1 مثلا
    Textbox1.value = ListBox1.Items.Count بالتوفيق 
×
×
  • اضف...

Important Information