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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    196

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

  1. جميعا بإذن الله
  2. إذا كانت المعادلات في الصفحة الثانية معادلة بحث فالحل هو الاضافة او الحذف في الصفوف بعد الاول وقبل الاخير في جدول البحث بمعنى اذاكان البحث من الصف 3 الي الصف 100 فالحذف بعد 3 وقبل 100 لن يؤثر على معادلات البحث أما إذا كانت المعادلة مجرد نقل للقيمة مثل =sheet1!a2 ثم تم نسخ المعادلة لاسفل فالتأثير سيكون في الصف الذي تم حذفه فقط والحل إعادة نسخ المعادلة في الشيت الثاني عن طريق مقبض التعبئة ******** والحل الذي استعمله بصورة شخصية هو عدم الحذف أو الاضافة وانما استخدام النسخ واللصق فمثلا * إذا اردنا اضافة صف بعد 5 يتم نسخ الصفوف من 6 الى آخر صف ولصقها في 7 وبعدها مسح محتويات الصف 6 القديمة * وإذا اردنا حذف الصف 5 يتم نسخ الصفوف من 6 الى الاخير ولصقها في الصف 5 وبعدها مسح محتويات الصف الاخير أرجو أن يكون اتضح المطلوب بالتوفيق
  3. بارك الله فيكم جميعا الكودين المقدمين تطبيق لأحد الحلين المقدمين في مشاركتي وهو الحل الثاني
  4. إذا سمحت لي طريقة تصميم الملف تخالف العرف البرمجي (لقد عددت صفحات الشيكات ويتم الكتابة فيها وتريد القراءة من صفحات الشيكات في صفحة البيانات) والصواب أن نقوم بعمل ورقتين فقط الأولى للبيانات ونكتب فيها بيانات الشيكات والثانية للبحث والطباعة نكتب فقط رقم الشيك فيتم استدعاء بياناته من شيت البيانات رجاء مراجعة هذا الملف وكتابة رقم الشيك في الخلية O1 في شيت الطباعة وبالنسبة لكود التفقيط بالمنتدى مليء بها يمكنك اختيار ما يناسبك للعلم حتى لا تتم طباعة الخلية التي يكتب فيها رقم الشيك المراد البحث عنه تم تعيين منطقة الطباعة set print area من تبويب تخطيط الصفحة page layout ويمكن تعديلها من خلال نافذة اعداد الصفحة page setup التبويب الأخير sheet بالتوفيق chk.xlsx
  5. عليكم السلام و رحمة الله وبركاته الجزء الخاص بتنفيذ المطلوب في الكود الحالي هو هذان السطران ar.Offset(, -2) = ar.Offset(, 1).Value ar.Value = 0 إذا لاحظت ستجد أن المتغير ar يعني خلية العلاوة الدورية والدالة offset للانتقال من هذه الخلية عددا من الصفوف أولا ثم الأعمدة ثانيا وبناء عليه يكون تم وضع قيمة العمود التالي للعلاوة ar.Offset(, 1).Value (المرتب الحالي) في العمود السابق لها بعمودين ar.Offset(, -2) (المرتب السابق) وبملاحظة ترتيب الأعمدة في مطلوبك الجديد ستجد أن المرتب المجرد قبلها ب 3 أعمدة يعني -3 في المعامل الثاني لدالة offset قيمته = نفس قيمته + قيمة العلاوة الدورية وعليه يكون الكود ar.Offset(, -3) = ar.Offset(, -3).Value + ar.Value ويمكن وضعه قبل السطرين في حالة الاحتفاظ بدورهما ويمكن حذف هذا الجزء .SpecialCells(xlConstants).Areas من هذا السطر تجنبا لحدوث أية أخطاء For Each ar In sh.Cells(3, 6).Resize(lr).SpecialCells(xlConstants).Areas بالتوفيق
  6. بارك الله لك فعلا مرجع كبير جدا للباحثين ومن يقوم بدراسات عليا بالتوفيق
  7. ما السبب الذي يجعلك تحتاج إلى كود يقوم بهذه الوظيفة طالما أن الدالة مدعومة في جميع إصدارات الاكسل؟ نحتاج إلى تحويل الدالة إلى كود vba في حالة كونها دالة جديدة في اصدار جديد ونريد استعمال مميزاتها في الإصدارات القديمة مثل دالة textjoin مثلا اللهم إلا إذا كنت تقصد طريقة استعمالها داخل vba وفي هذه الحالة يمكنك استخدام هذه الطريقة مع تغيير المرجع والشرط كما تريد Application.WorksheetFunction.CountIf(Range("D2:D9"), ">5") بالتوفيق
  8. لك حلان * أسهلهما استعمال sumifs لحساب مجموع الخلايا في الشيت والتي تنطبق عليها شروط العرض في القائمة وأيضا أكبر من صفر. * والحل الثاني أثناء تعبئة القائمة بالعناصر items يمكن إنشاء متغير وليكن mysum لجمع القيم التي فوق الصفر من العمود المطلوب السؤال نظري بدون ملف ولذلك الإجابة نظرية بالتوفيق
  9. جهد مشكور جزاكم الله خيرا
  10. الشكر لله الذي وفقنا
  11. آمين ولك بالمثل وزيادة بإدن الله
  12. الحمد لله الذي بنعمته تتم الصالحات
  13. تم إجراء بعض التعديلات لتتناسب مع المطلوب وهي: كتابة تاريخ 1 في الشهر المطلوب في الخلية c5 وبناء يتم جلب بيانات باقي ايام الشهر وتلوين الجمعة والسبت وكتابة اسم الشهر تلقائيا تم وضع معادلة التصفية الأفقية لجلب تاريخ اليوم المكتوب فيه غ (معادلة مصفوفات) تم وضع معادلة لحساب عدد أيام الغياب بالتوفيق حضور و غياب مع الخلاصة الشهرية.xlsm
  14. الاحتمالات كثيرة أحدها نظام الفاصلة في جهازك هل هو الفاصلة فقط أم الفاصلة المنقوطة؟ يفضل إرفاق ملفك أو الشيت موضع المشكلة
  15. حسب فهمي للمطلوب يمكنك استعمال هذه المعادلة في الخلية B3 =INDIRECT("'"&B1&"'!$B$2") مع نسخ المعادلة بالسحب يمينا حتى M3 بالتوفيق
  16. الأمر بسيط جدا بإذن الله تبدأ المعادلة بعلامة = ثم iferror ثم تفتح قوس ثم تلصق معادلتك بدون علامة = في أولها ثم الفاصلة أو الفاصلة المنقوطة (حسب نظام جهازك) ثم علامتين تنصيص ثم تغلق القوس ثم انتر بالتوفيق
  17. الكود يقوم بهذا الغرض ولكن على العمود 3 بينما عمود الدائرة 16 لذا يجب تغيير هذا السطر txt = Join(Array(a(i, 3), a(i, 3)), Chr(3)) إلى txt = Join(Array(a(i, 16), a(i, 16)), Chr(3)) بالتوفيق
  18. للحصول على الفرق بين رقمين نستعمل عملية الطرح بصورة عادية مثلا الرقم الأول في الخلية A1 من العمود الأول والرقم الثاني في الخلية B1 من العمود الثاني نكتب في الخلية التي نريد إظهار الفرق فيها =a1-b1 أما إذا كنت تريد غير ذلك فيرجى توضيح تفاصيل المطلوب بدقة واستفاضة بالتوفيق
  19. يمكنك استعمال هذا الكود Sub savePDF() ActiveSheet.PageSetup.PrintArea = "B3:P" & Range("B" & Rows.Count).End(xlUp).Row ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & Range("g7").Value & "_" & Format(Now(), "yyyy-mm-dd_hh-nn-ss") & ".pdf" MsgBox "Done by mr-mas.com" End Sub لاحظ مسار هذا المصنف thisworkbook.path وتنسيق الوقت الحالي ضمن الاسم واستعمال الشرطة - والشرطة السفلية _ في الاسم بدلا من / بالتوفيق
  20. الملف المرفق لا يفيدنا في الوقوف على أسباب المشكلة ربما تكون قمت بتثبيت برنامج ribbonX وهو الذي يقوم بوضع هذا الكود في جميع الملفات بناء على خيارات البرنامج لذا افترح الغاء تثبيت البرنامج وملاحظة المشكلة وإذا استمرت أقترح عمل اصلاح repair. للأوفيس من لوحة التحكم ثم إلغاء تثبيت البرامج بالتوفيق
×
×
  • اضف...

Important Information