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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    191

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

  1. الطريقة المذكورة في المشاركة السابقة لي أفضل واسرع بإذن الله
  2. أقترح تنفيذ ذلك يدويا وليس بالكود عن طريق عمل لصق كقيم paste as values بدلا من لصق paste ورمزها (123) في القائمة المختصرة للخلية والتي تظهر بعد عمل كلك يمين عليها وإذا كنت حريصا على استخدام الكود فيمكنك وضع هذا الاجراء في موديول جديد وربطه بزر وليكن اسمه لصق Sub pst Selection.PasteSpecial Paste:=xlPasteValues End Sub وهو للصق ما تم نسخه في الخلية المحددة ولاستخدام هذا الاجراء عند الضغط على CTRL+V يمكن وضع هذا الكود في حدث المصنف ThisWorkbook Private Sub Workbook_Activate() Application.OnKey "^v", "pst" End Sub Private Sub Workbook_Deactivate() Application.OnKey "^v" End Sub بهذه الطريقة تحافظ على تنسيق الملف الذي يتم اللصق فيه عند استخدام الزر المرتبط بالكود أو اللصق باستخدام ctrl+v بالتوفيق
  3. ربما يكون في الرأس والتذييل header & footer في تبويب تحطيط الصفحة page layout ثم مربع إعداد الصفحة page setup ثم تبويب header/footer بالتوفيق
  4. للأسف هذه الطريقة في الفلترة بالمعادلات المتبعة في ملفكم تجعل الملف ثقيلا جدا لذلك يمكنك تحديد المدى الذي كنت تسحب فيه المعادلة لأسفل كله ثم حذف المعادلة منه بضغط مفتاح delete من لوحة المفاتيح مع إبقاء تحديد الخلايا ثم لصق نفس المعادلة في شريط المعادلات مع تغيير row($a1) إلى row()-5 إذا كان هناك 5 صفوف فوق صف البداية وفي النهاية الضغط على ctrl+shift+enter بهذا نكون وضعنا معادلة واحدة في جميع الصفوف المحددة وهذه اسرع طريقة للفلترة بالمعادلات بالتوفيق
  5. الخطأ هو أن العمود رقم 9 فارغ ولا يتم ترحيل بيانات إليه لذا يمكن تغيير هذا السطر erow = sh1.Cells(Rows.Count, 9).End(xlUp).Offset(1, 0).Row إلى erow = sh1.Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Row بالتوفيق
  6. حسب فهمي للمطلوب يمكنك إضافة هذا الكود في نهاية إجراء الطباعة Sub PRINT_OUT lr = Cells(Rows.Count, 1).End(xlUp).Row For r = 8 To lr rw = Application.WorksheetFunction.Match(Range("A" & r).Value, Sheets("التحميل").Range("A:A"), 0) Sheets("التحميل").Range("Q" & rw).Value = "تم الصرف" Next r وهو للحصول على رقم الصف الذي يحتوي على رقم المستند الموجود في الخلية A8 وما بعدها عند البحث عنه في العمود A في شيت التحميل ثم تغيير قيمة الخلية Q في نفس الصف إلى تم الصرف بالتوفيق
  7. بعد إذن جميع المشاركينفي هذا الموضوع الرائع لتحديد الأيام المفقودة يلزم تحديد تاريخ البداية Start Date وتاريخ النهاية End Date ليتم حصر الأيام الموجودة بين التاريخين وكذلك الأيام المفقودة وذلك كله بدلالة رقم الموظف Emp ID تكتب مرة واحدة وتحصل على تقرير لكل موظف ربما يكون هذا هو المطلوب بإذن الله تم جلب أصغر تاريخ للموظف ليكون تاريخ البداية وأكبر تاريخ ليكون تاريخ النهاية ويمكن استعمال أصغر تاريخ في العمود كله Min وأكبر تاريخ في العمود كله Max ويمكن كتابة التاريخين يدويا للحصول على بيانات هذه الفترة واستنتاج الأيام المفقودة بين التاريخين بمعادلة مصفوفات Array formula مطبقة على الخلايا j10:j40 بالتوفيق الأيام المفقودة بين تاريخين لكل موظف.xlsx
  8. يمكنك استعمال هذا الكود على افتراض أن مربع النص اسمه textbox1 Private Sub TextBox1_Enter() TextBox1.Value = "" End Sub بالتوفيق
  9. تمت معالجة هذا الأمر كثيرا في المنتدى ربما يفيدك هذا الرابط
  10. حسب فهمي للمطلوب * لعرض أسماء الشيتات في القائمة يمكنك حذف هذا الكود من حدث إلغاء تفعيل Worksheet_Deactivate لشيت database Dim w As Worksheet UserForm1.Co1.Clear For Each w In ThisWorkbook.Worksheets UserForm1.Co1.AddItem w.Name Next w ووضعه في حدث تفعيل النموذج UserForm_Activate * ولفتح الشيت الذي يتم اختياره من القائمة نستعمل هذا الكود في حدث تغيير القائمة بالضغط دبل كلك عليها في النموذج ولصق السطر الأوسط من هذا الكود فقط Private Sub Co1_Change() Sheets(Co1.Value).Select End Sub بالتوفيق
  11. حسب فهمي للمطلوب يمكنك استعمال هذه المعادلة في الخلية j17 في sheet1 =TRANSPOSE('2nd'!H19:O19)
  12. بعد إذن جميع المشاركين إذا جربنا وضع الرقم 10 كدرجة رئيسية والرقم 90 و 300 كدرجات ثانوية سنتأكد من صحة المعادلتين في هذا الملف المرفق خالص الدعوات بالتوفيق الزاوية الأقرب.xlsx
  13. نسخة أوفيس 2016 وكذلك 2019 وكذلك 365 جميعها رقم الإصدار الرسمي لها 16.0 ربما يفيدك هذا الرابط
  14. تفضل أخي الكريم إن شاء الله يكون المطلوب mas_مدد الخدمة المسجلة بالتامينات.xls
  15. جميل جدا أخي الكريم @mohamed_omar ولكن الأستاذ صاحب السؤال رجاء توضيح القضية حيث أني أعمل بالترتبية والتعليم ولا علم لي بهذا الأمر
  16. أخي الكريم صاحب الاستفسار تم حل مثل هذه المشاكل مرارا والحل بمنتهى البساطة ضع قبل الكود ActiveSheet.unprotect "your password" وذلك لإلغاء حماية الخلايا المحمية مع تغيير your password إلى كلمة مرور الحماية التي تستخدمها حاليا لقفل الخلايا وقبل نهاية الكود ضع ActiveSheet.protect "your password" وذلك لإعادة الحماية مرة أخرى مع ملاحظة كائن الشيت الذي يتم التعامل معه حاليا هو الشيت النشط activesheet
  17. بعد مراجعة الموضوع من أوله تبين أن هذه الدالة تفي بالغرض سواء في الأعمدة أو الصفوف لأن المستخدم يقدم لها نطاقا يمكن أن يكون صفا أو عمودا أو أكثر مثال لاستخدامها لجمع الأعمدة نكتب في الخلية i15 =CountShapes(I4:I14) مثال لاستخدامها لجمع الصفوف نكتب في الخلية v5 =CountShapes(A5:U5) بالتوفيق
  18. بعد ملاحظة الكود الخاص بإضافة الدوائر تبين أنها رسمت بشرط ألا تكون الخلية فارغة وأن يكون بها / وألا يزيد عددها عن الأرقام الموجودة في العمود v أو w لذلك فعددها هو نفس الرقم الموجود في العمود v أو w
  19. للحصول على النتيجة الصحيحة يجب العد بنفس شروط الرسم مثلا رسمت الدوائر على الخلايا التي مجموعها أقل من 50 من 100 نستعمل معادلة countif وإذا كان العد بأكثر من شرط نستعمل countifs بالتوفيق
  20. أقترح استخدام معادلة العد بنفس الشرط أو الشروط التي رسمت بها الدوائر وليس عد الدوائر نفسها بالتوفيق
  21. إن شاء اللّه يفيدك هذا الموضوع بمعادلة مختصرة مع عكس الواحد والصفر لأن طلبك هو عكس المطلوب بالتوفيق
  22. معنى الرسالة يوجد برنامج يستخدم الحافظة وربما يكون هذا البرنامج وظيفة إضافية في المتصفح Browser Plugins أو وظيفة إضافية في اكسل add-in أو برنامج تم تثبيته في الويندوز لذا ينبغي حذف الأخير من كل نوع حتى تتوصل للسبب بالتوفيق
×
×
  • اضف...

Important Information