-
Posts
4,357 -
تاريخ الانضمام
-
Days Won
185
Community Answers
-
أ / محمد صالح's post in إظهار أيام آخرالأسبوع فقط أعني السبت والأحد was marked as the answer
أشكر خبيرنا الكبير @أبوعيدلتصميمه الملف الذي لم يكن هو مطلوب الأخ صاحب الاستفسار
والأولى أن يرفق صاحب الاستفسار ملفه وبه محاولاته السابقة للوصول للمطلوب
مع توضيح المطلوب بصورة تفصيلية وشكل الملف بعد تنفيذ المطلوب (النتائج المتوقعة)
على كل حال
للوصول للمطلوب يمكن كتابة تاريخ بداية الشهر في خلية A1 مثلا
وفي الخلية A2 نستعمل هذه المعادلة
=WORKDAY.INTL(A1,1,"1111100") مع سحب المعادلة لأسفل حتى يبدأ الشهر الجديد
ووأيضا تنسيق الخلية بتنسيق التاريخ المطلوب
ملحوظة: الدالة تعمل على أوفيس 2010 وما بعده
بالتوفيق
-
أ / محمد صالح'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) بالتوفيق
-
أ / محمد صالح'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) بالتوفيق
-
أ / محمد صالح's post in ايجاد البيانات المتشابه فى ملفين واستخراج عمود منفصل بالمتشابه فقط was marked as the answer
يمكنك وضع هذه المعادلة في الخلية E8 لجلب اسم المورد
=IFERROR(INDEX(A:A,MATCH($D8,$B:$B,0)),"") مع سحب المعادلة لأسفل
بالتوفيق
-
أ / محمد صالح'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 إن شاء اللّه يكون هو المطلوب
بالتوفيق
-
أ / محمد صالح's post in كيف اطلب استيراد عامود من عدة شيتات was marked as the answer
هذا الأمر تم تناوله في المنتدى كثيرا بعنوان ترحيل من عدة شيتات إلى شيت واحد
يمكنك الرجوع لهذه الموضوعات للاستفادة منها في استنتاج الكود اللازم في ملفك
بالتوفيق
-
أ / محمد صالح's post in كيف اطلب استيراد عامود من عدة شيتات was marked as the answer
هذا الأمر تم تناوله في المنتدى كثيرا بعنوان ترحيل من عدة شيتات إلى شيت واحد
يمكنك الرجوع لهذه الموضوعات للاستفادة منها في استنتاج الكود اللازم في ملفك
بالتوفيق
-
أ / محمد صالح'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
بالتوفيق
-
أ / محمد صالح's post in كود بحث وتجميع was marked as the answer
تم التطرق لهذا الأمر كثيرا
وهذا الموضوع أحد النتائج
وهذا أيضا
بالتوفيق
-
أ / محمد صالح'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
بالتوفيق
-
أ / محمد صالح's post in تطبيق معادلة على جميع الخلايا was marked as the answer
إن شاء الله يكون المطلوب
مع ملاحظة تغيير رقم العمود إلى معادلة حتى يتم سحب المعادلة أفقيا ورأسيا
بالتوفيق
جداول المدرسين.xlsm
-
أ / محمد صالح's post in مشكلة في عملية جمع التاريخ was marked as the answer
المشكلة في إعدادات تنسيق التاريخ والمنطقة في لوحة التحكم
يفضل اختيار منطقة عربية يكون تنسيق التاريخ بها اليوم/الشهر/السنة
وهذا رابط الدعم في ميكروسوفت
-
أ / محمد صالح'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 بالتوفيق
-
أ / محمد صالح's post in حساب أيام الجمعة فقط في كل شهر ميلادي was marked as the answer
يمكنك استعمال هذه المعادلة
=NETWORKDAYS.INTL(A2,EOMONTH(A2,0),"1111011") مع وضع تاريخ بداية الشهر المطلوب في الخلية A2
بالتوفيق
-
أ / محمد صالح's post in معادلة بخصوص تاريخ معين was marked as the answer
إن شاء اللّه تفي هذه المعادلة بالغرض
=EDATE(A5,3) مع تنسيق الخلية بأي تنسيق تاريخ مطلوب
ومراعاة الفاصلة أو الفاصلة المنقوطة
بالتوفيق
-
أ / محمد صالح's post in التنسيق الشرطي was marked as the answer
يمكنك استعمال هذه المعادلات في التنسيق الشرطي
مع مراعاة الفاصلة أو الفاصلة المنقوطة
بالتوفيق
-
أ / محمد صالح's post in التنسيق الشرطي was marked as the answer
يمكنك استعمال هذه المعادلات في التنسيق الشرطي
مع مراعاة الفاصلة أو الفاصلة المنقوطة
بالتوفيق
-
أ / محمد صالح's post in التنسيق الشرطي was marked as the answer
يمكنك استعمال هذه المعادلات في التنسيق الشرطي
مع مراعاة الفاصلة أو الفاصلة المنقوطة
بالتوفيق
-
أ / محمد صالح's post in المساعدة:: في كود طرح تاريخ متجدد من آخر و فرز عدد الاسابيع و الايام was marked as the answer
عليكم السلام ورحمة الله وبركاته
يمكنك استعمال هذه المعادلة في الخلية F12
=INT((F10-F7)/7) وفي الخلية F14
=MOD(F10-F7,7) مع مراعاة الفاصلة والفاصلة المنقوطة
بالتوفيق
-
أ / محمد صالح'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) بالتوفيق
-
أ / محمد صالح's post in معادلة لحساب ساعات العمل والتأخير والإضافي was marked as the answer
حساب التأخير بمعناه الفعلي يحتاج إلى تحديد وقت الدخول لكل وظف
ولأني لا أجد ذلك في ملفك فقمت بحسابه عن طريق المتبقي من ساعات العمل حتى 7 ساعات عمل
والإضافي هو ما زاد عن 7 ساعات
لاحظ تم تغيير تنسيق خلايا الوقت الفعلي والتاخير والاضافي
بالتوفيق
حساب التأخير والاضافي.xlsx
-
أ / محمد صالح'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
-
أ / محمد صالح'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
بالتوفيق
-
أ / محمد صالح's post in سؤال كيف اعمل VLOOKUP علي صفحتين was marked as the answer
لا يوجد مشكلة في هذا
فقط كتابة مرجع جدول البحث من sheet1 بطريقة صحيحة
يمكنك استعمال هذه المعادلة في الخلية B2 في sheet2
=IFERROR(VLOOKUP(A2,Sheet1!A:B,2,0),"") تم استعمال iferror حتى لا يظهر خطأ عند عدم وجود الاسم
ومرفق ملفك بعد التعديل لمن لا يعرف كيف يضيف المعادلة في الملف الأصلي
بسبب اختلاف نظام الفاصلة بين الأجهزة
بالتوفيق
عمل فيولوك اب علي صفحتين.xlsx
-
أ / محمد صالح's post in كود عدد الصفوف was marked as the answer
يمكنك استعمال هذا الكود
وهو لوضع عدد عناصر القائمة
كقيمة لمربع النص textbox1 مثلا
Textbox1.value = ListBox1.Items.Count بالتوفيق