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

عبدالله بشير عبدالله

الخبراء
  • Posts

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

  • تاريخ اخر زياره

  • Days Won

    69

كل منشورات العضو عبدالله بشير عبدالله

  1. السلام عليكم ورحمة الله وبركاته أود أن أحيطك علماً بأن جميع ما قمت به من حلول في المشاركات السابقة، كانت اجتهاداً شخصياً مني ، وذلك بسبب عدم شرح تفاصيل الطلب بدقة، وغياب الشكل المتوقع للمخرجات في بداية طلبك في اول مشاركة. وهنا أود أن أسترعي انتباهك ولجميع احبابنا اعضاء المنتدى الكريم لنقطة تنظيمية وإدارية هامة : عند طرح أي سؤال أو طلب فكرة برمجية مستقبلاً، من الأفضل دائماً تجهيز ورقة عمل (شيت) داخل الملف كنموذج تصوري للنتائج، أو شرح آلية ومكان ظهور المخرجات بدقة (مثل: شكل الجدول المطلوب، وتحديد الأعمدة، وهل تريدها في نفس الورقة أم في أوراق منفصلة؟). وهذا يضمن اختصار الوقت والجهد وتفادي كثرة التعديلات المتكررة. وتكون النتائج تماماً كما تريدها وبتنسيقها الصحيح وتفاعل اعضاء وخبراء المنتدى اكثر. على أية حال، حسب فهمي لطلبك في مشاركتك الأخيرة؛ فقد تم دمج الفعاليات النشطة واللجان الخاملة معاً في شيت واحد متكامل، كما تم تعديل عدد اسماء المشاركين الى 15 عمود في طلب سابق لكم. تقبل وافر شكري، وعميق تقديري لشخصكم . لا تتردد في طلب التعديل ان كان الحل لا يلبى طلبك مؤشر عمل اللجان1 (1).xlsb
  2. أحبك الله الذي أحببتنا فيه أخي العزيز، وبارك الله في أصلك الطيب ورزقك من خيري الدنيا والآخرة. شهادتك وثناؤك وسام أعتز به كثيراً. خالص شكري ومحبتي لشخصكم الراقي. وبعد :- تم انشاء ورقة للجان الخاملة وبدون فعاليات كما ارجو الانتباه لامر يتعلق بعمل الكود في حالة اللجنة مكونة من اكثر من فرع مثل لجنة العلوم القانونية (حقوق الإنسان . الملكية الفكرية . المواطنة) يكون الفاصل ما بين القوسين نقطة او اي علامة اخرى عدا علامة الناقص - في حالة تعاون اكثر من لجنة مثل لجنة الثقافة العلمية والتفكير الابتكاري والذكاء الاصطناعي - لجنة الترجمة "تعاون" يكون الفاصل بين اللجنتين علامة الناقص - مع وجود كلمة تغاون بالنسبة لزيادة الاعمدة يتم التعديل بالكود قي الجزء For c = 5 To 15 5 = رقم اول عمود به اسماء المشاركين 15 = رقم اخر عمود به اسماء المشاركين فيمكنك تعديل 15 الى اي رقم يناسبك اليك طلبك مؤشر عمل اللجان1.xlsb
  3. بارك الله فيك وفي أصلك الطيب أخي الفاضل أبومروان وجزاك الله خيراً على هذه الكلمات الراقية والمشجعة. الإبداع الحقيقي هو تواجدكم وتفاعلكم المثمر الذي يدفعنا دائماً لتقديم أفضل ما لدينا. نحن جميعاً في هذا الصرح المبارك نتعلم من بعضنا البعض، وما توفيقي إلا بالله. أسعدني جداً أن الفكرة نالت إعجابكم، . دمتم بكل خير وود."
  4. السلام عليكم ورحمة الله وبركاته اظافة الى حل استاذتا اأبومروان حيث يثمثل الحل بطريقتين اذا اردت معرفة عدد الندوات التي شارك بها اي مشارك واحد انقر على اي اسم مرتين تظهر رسالة بعدد المشاركات والغعاليات اما اذا اردت كل المشاركين يوجد زر يقوم بانشاء ورقتين احداها لكل المشاركين والاخرى للفعاليات توجد بعص الفعاليات بها اكثر من لجنة (تعاون) ولإعطاء كل لجنة حقها؛ ففي حال تنظيم فعالية مشتركة بين أكثر من لجنة (مثل: لجنة الكتاب والنشر - ثقافة الطفل - الشباب "تعاون"), يجب أن يتم احتساب هذه الفعالية لصالح كل لجنة من اللجان المذكورة بشكل مستقل ومستساغ، بدلاً من قراءتها كنص واحد لكما كل التقدير والاحترام مؤشر عمل اللجان.xlsb
  5. وعليكم السلام ورحمة الله وبركاته هذه الدالة تقوم بالمهمة ان شاء الله صعها في f3 ثم اسحب لاسفل تحياتي =IF(B3="فروج مسحب"; D3*E3*2.55; D3*E3*1.85)
  6. السلام عليكم ورحمه الله وبركاته جزاك الله خيرا اخي أبومروان ويبدو ان الاداة ليست اضلية بمعنى ان مايكروسوفت لم تصدر أي تحديث يضيف XLOOKUP للإصدارات القديمة وتنزيل ملفات من مواقع غير رسمية قد يحمل مخاطر (فيروسات، أكواد ضارة). حاولت تحميل الملف اكثر من 6 مرات يقوم برنامج الحماية بحذفه بسبب وجود فيروس حسب نتيجة برنامج الحماية ولهذا لم اتمكن من الاطلاع على الملف للاستفاذة منه تحياتي
  7. وعليكم السلام ورحمة الله وبركاته دالة XLOOKUP غير متوفرة في الإصدارات القديمة مثل Excel 2010 و2016 و2019، وهي موجودة فقط في Excel 2021 وما بعده، وكذلك في إصدارات Microsoft 365 احدى البدائل INDEX + MATCH
  8. وعليكم السلام ورحمة الله وبركاته حسب علمي في Microsoft Excel لا يمكن الانتقال لخلية أخرى “تلقائيًا بالكامل” أثناء الكتابة بدون أي إجراء من المستخدم، لأن الخلية تبقى في وضع التحرير حتى يتم تأكيد الإدخال. لكن يمكن بطريقة اخرى عن طريق فورم بحيث يتم فتح الفورم ثم اختيار اول خلية المراد ادخال الدرجة اليها ويكون الامر تلقائيا والتكست بوكس يتعامل مع اي عمود بشرط تحديد بداية اول للدرجات والكود يتعامل مع درجتين مثل 15 او 45 فبمجرد الانتهاء من كتابة الرقم الثاني يتنقل المؤشر تلقائيا الى الخلية التي اسفل منها اذا وجدت درجات من رقم واحد مثل 7 يجب كتابتها في التكست بوكس 07 اذا كانت لديك درجات من 3 ارقام مثل 123 يتم التعديل بالكود في الجزء If Len(v) >= 2 Then يتم تعديل 2 الى 3 ادخال الدرجات.xlsb
  9. السلام عليكم الحل في Function CountByColor(rng As Range, clr As Range) As Long كما اقترح عليك استاذتا Foksh في رده هذا الملف 112.xlsm
  10. طريقة حفظ الملف بعد وضع الكود في الملف قم باغلاق الملف ستاتى رسالة كما بالصورة اخت اختر حفظ ستاتى رسالة اخرى كما بالصورة اختر لا ستفتح واجهة كما بالصورة قم بالاختيار حسب الصف المحدد ثم حفظ casse 2026 .xlsb
  11. صيغة الملف XLSX وهذه الصيغة لا تحتفظ بالكود بل تحذفه في اي شيت تريد اظافة الكود
  12. الاسباب كثيرة منها عدم تفعيل او تمكين المحتوى او لم يتم حفظ الملف بصيغة XLSM-XLSB ارفاقك للملف يختصر الوقت ويحدد ما السبب
  13. السلام عليكم ورحمة الله وبركاته بعد اذن استاذنا الفاضل عبدللرحيم طريقة ادخال النطاقات للكود Private Sub Worksheet_Change(ByVal Target As Range) Dim protectedRange As Range Set protectedRange = Union( _ Range("E10:I10"), _ Range("E13:I13"), _ Range("E20:I20"), _ Range("E27:I27"), _ Range("E33:I33"), _ Range("E46:I46"), _ Range("E56:I56"), _ Range("E59:I59"), _ Range("E62:I62"), _ Range("E68:I68") _ ) If Not Intersect(Target, protectedRange) Is Nothing Then Application.EnableEvents = False Application.Undo MsgBox "لا يمكن تعديل هذه الخلية، يرجى فك حماية الورقة للقيام بذلك" Application.EnableEvents = True End If End Sub
  14. وعليكم السلام ورحمة الله وبركاته بالنسبة لبرنامج فيجوال بيسك الخاص بالإكسل (VBA)، فأنت لا تحتاج لتحميله من أي رابط، ،لأن "فيجوال بيسك" (VBA) ليس برنامجاً مستقلاً يحتاج لتحميل، بل هو جزء أصيل ومدمج داخل برنامج الإكسل نفسه.
  15. وغليكم السلام ورحمة الله وبركاته الصورة وحدها لا تكفي لتحديد المشكلة، لأن الخطأ مرتبط بمحتوى الملف نفسه (مثل عناصر التحكم أو كود VBA). يرجى إرسال الملف حتى يمكن فحصه بدقة.
  16. السلام عليكم جرب التعديل التالي طلب تعديل كود.xlsm
  17. وعليكم السلام ورحمة الله وبركاته حسب فهمي لطلبك اليك المطلوب طباعة مع ترقيم الصفحة.xlsm
  18. السلام عليكم بعد اذن استاذنا ابو مروان اليك تعديل زر الترحيل باستخدام المصفوفات Sub AddEmployee() Dim ws1 As Worksheet, ws2 As Worksheet Dim nextRow As Long, i As Long Dim srcRange As Variant Set ws1 = ThisWorkbook.Sheets("Sheet1") Set ws2 = ThisWorkbook.Sheets("Sheet2") If ws1.Range("I9").Value = "" Then MsgBox "يرجى إدخال اسم الموظف!", vbExclamation, "تنبيه" Exit Sub End If nextRow = ws2.Cells(ws2.Rows.Count, "C").End(xlUp).Row + 1 srcRange = Array("I5", "I7", "I9", "I11", "I13", "L11", "L13", "I15", "L15", _ "L5", "L7", "L9", "I19", "L19", "I21", "L21", "I23", "L23", _ "I25", "L25", "I28", "L28", "L30", "I33", "L33", "I35", "L35", _ "I37", "I40", "L40", "I44", "L44", "I46", "L46", "I48", "L48", _ "I50", "L50", "I52", "L52", "L55") For i = LBound(srcRange) To UBound(srcRange) ws2.Cells(nextRow, i + 1).Value = ws1.Range(srcRange(i)).Value Next i MsgBox "تمت إضافة الموظف بنجاح!", vbInformation, "نجاح" End Sub بسم الله.xlsm
  19. استبدل الكود التالي بالكود بالملف Sub DrawCircles1() Application.ScreenUpdating = False Call DelShap Call ProcessTable(10, 14, 3, 10, "N9") Call ProcessTable(18, 22, 3, 10, "N17") Application.ScreenUpdating = True End Sub Sub ProcessTable(SROW As Long, EROW As Long, SCOL As Long, ECOL As Long, RefCell As String) Dim ws As Worksheet Dim i As Long, j As Long Dim totalCells As Long, totalRequired As Long Dim dayCells As Long, n As Long Dim arrCells() As Long Dim temp() As Double Dim remainder As Long Set ws = ActiveSheet totalRequired = Val(ws.Range(RefCell).Value) totalCells = 0 ReDim arrCells(SROW To EROW) ReDim temp(SROW To EROW) For i = SROW To EROW dayCells = 0 For j = SCOL To ECOL If Trim(ws.Cells(i, j).Value) <> "" Then dayCells = dayCells + 1 End If Next j arrCells(i) = dayCells totalCells = totalCells + dayCells Next i If totalCells = 0 Then Exit Sub For i = SROW To EROW If arrCells(i) > 0 Then temp(i) = totalRequired * arrCells(i) / totalCells Else temp(i) = 0 End If Next i For i = SROW To EROW n = Int(temp(i)) If n > arrCells(i) Then n = arrCells(i) If n = 0 Then ws.Range("M" & i).Value = "" Else ws.Range("M" & i).Value = n End If Next i remainder = totalRequired - Application.WorksheetFunction.Sum(ws.Range("M" & SROW & ":M" & EROW)) Do While remainder > 0 Dim maxI As Long, maxVal As Double maxVal = -1 For i = SROW To EROW If arrCells(i) > Val(ws.Range("M" & i).Value) Then If temp(i) - Int(temp(i)) > maxVal Then maxVal = temp(i) - Int(temp(i)) maxI = i End If End If Next i If ws.Range("M" & maxI).Value = "" Then ws.Range("M" & maxI).Value = 1 Else ws.Range("M" & maxI).Value = ws.Range("M" & maxI).Value + 1 End If remainder = remainder - 1 Loop For i = SROW To EROW n = Val(ws.Range("M" & i).Value) If n > 0 Then Dim validCols() As Long Dim countCols As Long countCols = 0 For j = SCOL To ECOL If Trim(ws.Cells(i, j).Value) <> "" Then countCols = countCols + 1 ReDim Preserve validCols(1 To countCols) validCols(countCols) = j End If Next j Dim k As Long For k = countCols To 1 Step -1 If n = 0 Then Exit For j = validCols(k) With ws.Shapes.AddShape(msoShapeOval, _ ws.Cells(i, j).Left + 5, _ ws.Cells(i, j).Top + 5, _ ws.Cells(i, j).Width - 10, _ ws.Cells(i, j).Height - 10) .Line.Weight = 2 .Fill.Visible = msoFalse End With n = n - 1 Next k End If Next i End Sub
  20. لديك الحق استبدل في الكود wsSource.Range("A4:I4").ClearContents الى wsSource.Range("A7:I7").ClearContents بمعنى الرقم 4 غيره الى 7 فقط
  21. وعليكم السلام نعم اعلم ان هناك طلب ثاني وكان ردي السابق لطلبك الاول اليك الملف وبه طلبك الثاني Plateform19840019.xlsb
×
×
  • اضف...

Important Information