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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    195

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

  1. يمكنك استعمال هذه المعادلة في الخلية D3 =IF(OR(A3=0,A3=""),"",C3-22) بالتوفيق
  2. يمكنك استعمال هذه المعادلة في الخلية D12 =IFERROR(IF(INDEX(D$6:D$10,MATCH($C12,$C$6:$C$10,0))="",CHAR(251),IF(COUNTIF($C12:C12,CHAR(252))>=$L12,CHAR(251),CHAR(252))),"") مع تغيير نوع الخط في هذه الخلية إلى wingdings لتظهر علامة الخطأ والصواب مع سحب المعادلة يمينا ثم أسفل بالتوفيق
  3. أعلم هذا جيدا فأنا رئيس كنترول في مدرسة ثانوي لكن الكود الخاص بكم لا يعتمد هذا الأسلوب فقط عدلت ألا يزيد عدد الأرقام السرية عن عدد العشرة بالمائة والأسلوب الصحيح: مراجعة ورقة واحدة من كل 10 ورقات يحتاج إلى الكثير من التخطيط أولا لكي يتم برمجته: ماذا لو لم يوجد درجة أعلى من الدرجة المطلوبة في أول 10 ورقات؟ أو ثاني 10 ورقات .... إلخ ؟ هل يتم إنزال الدرجة المطلوبة درجة ؟ أم رصد أعلى ال 10 ورقات ؟ ولكل من هذين الخيارين موااااااال إن شاء الله اساهم في برمجة نسبة ال 10 بالمائة بصورة أدق حسب وقت الفراغ بالتوفيق
  4. بارك الله لك وكل عام وأنتم بخير وصحة وسعادة في العشر العظيمة
  5. المطلوب غير واضح لي بصورة كافية ربما لو ارفقت الملف مع توضيح المطلوب بمنتهى التفصيل تنتهي المشكلة بإذن الله
  6. يمكنك استعمال دالة sumifs للجمع باكثر من شرط في الخلية D6 =SUMIFS(Data!D:D,Data!C:C,C6,Data!A:A,">="&$C$4,Data!A:A,"<="&$E$4) بالتوفيق
  7. يمكنك تجربة هذا التعديل تم إضافة شرط عدم زيادة عدد الأرقام السرية عن عدد العشرة بالمائة من الحضور بالتوفيق محضر العشرة بالمائة.xlsb
  8. تمت الإجابة عن شيء مثل هذا بالتوفيق
  9. عليكم السلام ورحمة الله وبركاته يمكنك استعمال هذه المعادلة في الخلية B2 وسحبها يمينا ثم أسفل =IF(AND(B$1>=main!$B3,B$1<=main!$C3),B$1,"") وتعني إذا كان التاريخ المكتوب في B1 أكبر من أو يساوي تاريخ بداية المدة وأقل من أو يساوي تاريخ نهاية المدة يتم كتابة هذا التاريخ وإلا تظهر الخلية فارغة مع تغيير تنسيق الخلايا إلى تاريخ بالتوفيق
  10. مشكلة عدم ظهور أحد في صفحة كل معلم على حدى يرجع إلى عدم دقة معادلة الفلتر جرب استعمال هذه المعادلة في الخلية D9 =IFERROR(INDEX(sheet2!B$4:B$300,SMALL(IF(sheet2!$AK$4:$AK$300=$J$1,ROW(sheet2!B$4:B$300)),ROW($D1))),"") ويمكنك سحبها يسارا ولأسفل مع مراعاة بداية ونهاية النطاقات في مثل هذه المعادلات ويمكن تحويلها إلى كود بأكثر من طريقة أسهلها أن تضع المعادلة في النطاق بالكود مثلا range("d9:d28").formulaarray = "=IFERROR(INDEX(sheet2!B$4:B$300,SMALL(IF(sheet2!$AK$4:$AK$300=$J$1,ROW(sheet2!B$4:B$300)),ROW()-8)),"""")" ثم تحول ناتج المعادلة إلى قيم بهذا الكود range("d9:d28").value = range("d9:d28").value وهكذا مع كل نطاق له معادلة مختلفة وأقترح أن تربط ذلك بتغيير الخلية J1 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$J$1" Then Range("d9:d28").FormulaArray = "=IFERROR(INDEX(sheet2!B$4:B$300,SMALL(IF(sheet2!$AK$4:$AK$300=$J$1,ROW(sheet2!B$4:B$300)),ROW()-8)),"""")" Range("d9:d28").Value = Range("d9:d28").Value MsgBox "Done by mr-mas.com" End If End Sub مع تكرار السطرين الثالث والرابع مع كل نطاق له معادلة محتلفة رغم أني لا أميل أبدا إلى موضوع تحويل المعادلات إلى أكواد فهذا يستهلك موارد الجهاز فيما لا يفيد المستخدم ولا يحمي المعادلات بالتوفيق
  11. أخي الكريم ينبغي عليك أن تسأل مصمم البرنامج لأن المحدوف ويعطي خطأ ref بيانات من شيت محذوف به البيانات الرئيسية مثل القطاع والمعهد وهكذا بالتوفيق
  12. الحمد لله الذي وفقنا جميعا لهذا
  13. يمكنك استعمال هذا الكود لحذف أقدم التكرارات Sub DeleteOldestRepeated() lr = Cells(Rows.Count, 3).End(xlUp).Row For r = 2 To lr If Evaluate("=COUNTIF($C$2:$C$" & lr & ",C" & r & ")") > 1 Then For n = (r + 1) To lr If Range("c" & n).Value = Range("c" & r).Value Then If Range("b" & n).Value >= Range("b" & r).Value Then Rows(r & ":" & r).Delete Shift:=xlUp r = r - 1 Else Rows(n & ":" & n).Delete Shift:=xlUp End If End If 'Exit For Next n End If Next r MsgBox "Done by mr-mas.com" End Sub وإذا كانت احتمالات التكرارات مرتين فقط في الاسم الواحد فيمكن حذف علامة التعليق قبل exit for لتسريع الكود أكثر بالتوفيق
  14. حسب فهمي للمطلوب يمكنك استعمال هذا السطر لتنسيق قيمة الخلية وعرضها باثميم من المنازل العشرية Me("txtQty" & AD) = Format(Sheet1.Cells(i, 3), "0.00") ولا أدري ما سبب تكرار سطور الكود يكتفي بأول أربعة فقط Private Sub CommandButton1_Click() For i = 8 To 40 If Sheet1.Cells(i, 1) = Val(Me.TxtSearch) Then AD = AD + 1 Me("txtItem" & AD) = Sheet1.Cells(i, 2) Me("txtQty" & AD) = Format(Sheet1.Cells(i, 3), "0.00") Me("txtPrice" & AD) = Format(Sheet1.Cells(i, 4), "0.00") Me("txtTotal" & AD) = Sheet1.Cells(i, 5) End If Next i End Sub بالتوفيق
  15. المطلوب غير واضح لي بصورة كافية لكني أتوقع أن المطلوب في الشيت الرابع عمل بحث عن رقم العضو وجلب بياناته أفضل من تكرار نفس التصميم بعدد الأعضاء راجع هذا الملف ربما يكون المطلوب فقط يلزمك كتابة رقم العضو في الخلية J2 ولا أدري ما المطلوب من الشيت الثالث بالتوفيق 2023.xlsx
  16. وما الذي يمنع من تنفيذها بشكل آلي حلقة تكرارية لكود جميع الموظفين وداخلها فرز على هذا الكود ثم تصدير الصفحة النشطة إلى pdf وفي النهاية رسالة تمت المهمة بنجاح
  17. إذا كنت تقصد أن عدد الاحتياطي زاد عن الواحد في كل مجموعة في المادة الواحدة فهنا يجب أن تتغير المعادلة لأن المعادلة الأولى تجلب أول اسم أمامه ( ح ) فقط على العموم تم تعديل المعادلة في الجزء العلوي بحيث يتم سحبها أفقيا ورأسيا بسهولة بدلا من استعمال معادلة مختلفة لكل صف وإضافة معادلة الاحتياطي لأكثر من واحد يمكنك استعمال هذه المعادلة في الخلية C4 وسحبها أفقيا ورأسيا حتى K27 =IF(MOD(ROW(),2),INDEX(data!$C$19:$C$32,MATCH($B3,data!D$19:D$32,0)),INDEX(data!$C$4:$C$17,MATCH($B4,data!D$4:D$17,0))) وهذه معادلة الاحتياطي في الخلية D28 ويمكن سحبها أفقيا ورأسيا حتى K31 =IFERROR(INDEX(data!$C$4:$C$32,SMALL(IF(data!D$4:D$32=$B$28,ROW($1:$29)),ROW()-27)),"") بالتوفيق
  18. شكرا للكلماتك الطيبة في properties الخاص بها غير value إلى true
  19. لا يوجد في الكود شيء يخص طريقة البحث الكود للبحث بأول الخلية فقط للوصول للمطلوب يمكنك تغيير هذا السطر If Trim(c) Like TextBox28 & "*" Then إلى If Trim(c) Like IIf(Me.OptionButton2, "*", "") & TextBox28 & "*" Then وإضافة هذين الحدثين عند الضغط على طريقة البحث Private Sub OptionButton1_Click() TextBox28_Change End Sub Private Sub OptionButton2_Click() TextBox28_Change End Sub بالتوفيق
×
×
  • اضف...

Important Information