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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    192

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

  1. 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) بالتوفيق
  2. يمكنك وضع هذه المعادلة في الخلية E8 لجلب اسم المورد =IFERROR(INDEX(A:A,MATCH($D8,$B:$B,0)),"") مع سحب المعادلة لأسفل بالتوفيق
  3. أشكر خبيرنا الكبير @أبوعيدلتصميمه الملف الذي لم يكن هو مطلوب الأخ صاحب الاستفسار والأولى أن يرفق صاحب الاستفسار ملفه وبه محاولاته السابقة للوصول للمطلوب مع توضيح المطلوب بصورة تفصيلية وشكل الملف بعد تنفيذ المطلوب (النتائج المتوقعة) على كل حال للوصول للمطلوب يمكن كتابة تاريخ بداية الشهر في خلية A1 مثلا وفي الخلية A2 نستعمل هذه المعادلة =WORKDAY.INTL(A1,1,"1111100") مع سحب المعادلة لأسفل حتى يبدأ الشهر الجديد ووأيضا تنسيق الخلية بتنسيق التاريخ المطلوب ملحوظة: الدالة تعمل على أوفيس 2010 وما بعده بالتوفيق
  4. حسب فهمي للمطلوب يتم تعديل الكود الأصلي إلى 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 إن شاء اللّه يكون هو المطلوب بالتوفيق
  5. لا يوجد مشكلة حتى تبحث عن حل تنفيذ الكود صحيح وتم جلب كل الأرقام التي أولها 2 فعلا لاحظ أن بداية الرقم على اليسار وكل الأرقام في عمود الكود أولها من جهة اليسار 2 بالتوفيق
  6. الشكر لله يفضل ذلك حتى يكون أحد الخيارين محددا حتى وإن نسي المستخدم تحديد أحدهما
  7. المثال المرفق من حضرتك هو نفس المثال الوهمي المستعمل في مشاركتي السابقة يمكنك استعمال نفس المعادلة مع تغيير كلمة value إلى الاسم المراد البحث عنه أو مرجع خلية بها الاسم بالتوفيق
  8. الشكر لله لو كان السؤال به مثال لأوضحت عليه لذلك تم استعمال مثال وهمي لتقريب الصورة بالتوفيق
  9. يمكن الوصول لذلك تعديل هذا السطر الذي يحدد بداية النص ib = InStr(1, .Cells(R, MyColmnFind), Me.TextFind, vbTextCompare) = 1 وتغييره إلى هذا الشرط If Me.OptionButton2 = 0 Then ib = InStr(1, .Cells(R, MyColmnFind), Me.TextFind, vbTextCompare) >= 1 Else ib = InStr(1, .Cells(R, MyColmnFind), Me.TextFind, vbTextCompare) = 1 End If لاحظ أن اكبر من او تساوي 1 تعني في أي مكان في النص ويفضل جعل القيمة الافتراضية value في خيار بحث بأي حرف تساوي true بالتوفيق
  10. تم التطرق لهذا الأمر كثيرا وهذا الموضوع أحد النتائج وهذا أيضا بالتوفيق
  11. يمكنك استعمال برنامج مثل aopr Advanced office password recovery بعد البحث عنه في جوجل مثلا بالتوفيق
  12. أعتقد أنها ممكنة بدالة lookup وليس vlookup يمكنك تجربة هذه المعادلة =LOOKUP(2,1/($A$2:$A$12="value"),$B$2:$B$12) حيث يتم التوصل لآخر نتيجة في العمود B أمام القيم في العمود A والتي تساوي value ويمكن استعمال مرجع الخلية التي بها القيمة المراد البحث عنها بدلا من كلمة value بالتوفيق
  13. يمكنك استعمال هذه المعادلة =LEFT(B1,4)-LEFT(A1,4)+1 حيث A1 و B1 بهما العامين من الأقدم للأحدث بالتوفيق
  14. جميعا بإذن الله يبدو أن حضرتك بعد ثلاثة أشهر من نشر الحل لم تقرأ هذه الملاحظة التي تجيب عن استفسارك الثاني بالتوفيق
  15. المشكلة في إعدادات تنسيق التاريخ والمنطقة في لوحة التحكم يفضل اختيار منطقة عربية يكون تنسيق التاريخ بها اليوم/الشهر/السنة وهذا رابط الدعم في ميكروسوفت
  16. إن شاء اللّه يقوم هذا الكود بالغرض في حدث عند تنشيط الصفحة 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 بالتوفيق
  17. الشكر لله الذي وفقنا لهذا
  18. بإذن الله يكون هذا الكود هو المطلوب تم استعمال 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 بالتوفيق
  19. يمكنك استعمال هذه المعادلة =NETWORKDAYS.INTL(A2,EOMONTH(A2,0),"1111011") مع وضع تاريخ بداية الشهر المطلوب في الخلية A2 بالتوفيق
  20. إن شاء الله يكون المطلوب مع ملاحظة تغيير رقم العمود إلى معادلة حتى يتم سحب المعادلة أفقيا ورأسيا بالتوفيق جداول المدرسين.xlsm
  21. تمت معالجة الأمر قبل ذلك كثيرا إن شاء اللّه تفيدك هذه النتائج بالتوفيق
×
×
  • اضف...

Important Information