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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    191

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

  1. السبب في البطء هو استعمال معادلة المصفوفات لأكثر من 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
  2. هذا المطلوب وغيره يعتمد على مدارسة أساسيات التعامل مع الأكواد لذا يرجى البحث في المنتدى عن دورة vba لتعلم هذه الأساسيات ويمكن ذلك بتكرار السطر مع تغيير رقم 9
  3. لا يوجد مشكلة في هذا فقط كتابة مرجع جدول البحث من sheet1 بطريقة صحيحة يمكنك استعمال هذه المعادلة في الخلية B2 في sheet2 =IFERROR(VLOOKUP(A2,Sheet1!A:B,2,0),"") تم استعمال iferror حتى لا يظهر خطأ عند عدم وجود الاسم ومرفق ملفك بعد التعديل لمن لا يعرف كيف يضيف المعادلة في الملف الأصلي بسبب اختلاف نظام الفاصلة بين الأجهزة بالتوفيق عمل فيولوك اب علي صفحتين.xlsx
  4. آمين ولك مثل ما دعوت إن شاء اللّه
  5. هذا الكود يقوم بوضع قيمة الخلية G6 من الشيت صاحب الاسم البرمجي sheet1 في أول خلية فارغة بعد آخر خلية مكتوب فيها في العمود B في الشيت صاحب الاسم البرمجي sheet3 المطلوب غير واضح لي بصورة كافية. وإذا كنت تقصد وضع نفس القيمة في الخلية B9 فلا حاجة للمتغير M الذي يشير لأول خلية فارغة بعد المكتوب ويمكن تعديل الكود لهذا Private Sub cmdAdd_Click() Sheet3.Cells(9, "B").Value = Sheet1.Range("G6").Value End Sub لاحظ تم تغيير m إلى رقم الصف المطلوب وهو 9 بالتوفيق
  6. عليكم السلام هذا يعني أن نتيجة البحث هي الرقم صفر وهو يساوي التاريخ المذكور ويمكنك التخلص منها باستعمال دالة if =if(vlookup(lookup_value, table_array, col_index_num, [range_lookup])=0,"",vlookup(lookup_value, table_array, col_index_num, [range_lookup])) طبعا مع تغيير معاملات الدالة VLOOKUP للموجود في ملفك بالتوفيق
  7. يمكنك استعمال هذا الكود وهو لوضع عدد عناصر القائمة كقيمة لمربع النص textbox1 مثلا Textbox1.value = ListBox1.Items.Count بالتوفيق
  8. يمكنك استعمال دالتك وبعدها زائد واحد =DATEDIF(Start_date,End_date,"D")+1 بالتوفيق
  9. يمكنك تجربة هذا الكود Sub mas_twze3() Dim lr As Long, n As Long lr = Cells(Rows.Count, 1).End(3).Row n = 1 For r = 3 To lr Range("g" & r) = "مركز توزيع رقم " & n n = IIf((r - 2) Mod 12 = 0, n + 1, n) Next r MsgBox "Done by mr-mas.com" End Sub بالتوفيق
  10. حساب التأخير بمعناه الفعلي يحتاج إلى تحديد وقت الدخول لكل وظف ولأني لا أجد ذلك في ملفك فقمت بحسابه عن طريق المتبقي من ساعات العمل حتى 7 ساعات عمل والإضافي هو ما زاد عن 7 ساعات لاحظ تم تغيير تنسيق خلايا الوقت الفعلي والتاخير والاضافي بالتوفيق حساب التأخير والاضافي.xlsx
  11. بارك الله فيك ولتفادي السالب في العمود G يمكن استعمال هذه المعادلة =IF(E3-C3<0,60+E3-C3,E3-C3) وهذه في عمود H =IF(E3-C3<0,F3-D3-1,F3-D3) بالتوفيق
  12. إذا كانت المعادلات في الصفحة الثانية معادلة بحث فالحل هو الاضافة او الحذف في الصفوف بعد الاول وقبل الاخير في جدول البحث بمعنى اذاكان البحث من الصف 3 الي الصف 100 فالحذف بعد 3 وقبل 100 لن يؤثر على معادلات البحث أما إذا كانت المعادلة مجرد نقل للقيمة مثل =sheet1!a2 ثم تم نسخ المعادلة لاسفل فالتأثير سيكون في الصف الذي تم حذفه فقط والحل إعادة نسخ المعادلة في الشيت الثاني عن طريق مقبض التعبئة ******** والحل الذي استعمله بصورة شخصية هو عدم الحذف أو الاضافة وانما استخدام النسخ واللصق فمثلا * إذا اردنا اضافة صف بعد 5 يتم نسخ الصفوف من 6 الى آخر صف ولصقها في 7 وبعدها مسح محتويات الصف 6 القديمة * وإذا اردنا حذف الصف 5 يتم نسخ الصفوف من 6 الى الاخير ولصقها في الصف 5 وبعدها مسح محتويات الصف الاخير أرجو أن يكون اتضح المطلوب بالتوفيق
  13. بارك الله فيكم جميعا الكودين المقدمين تطبيق لأحد الحلين المقدمين في مشاركتي وهو الحل الثاني
  14. إذا سمحت لي طريقة تصميم الملف تخالف العرف البرمجي (لقد عددت صفحات الشيكات ويتم الكتابة فيها وتريد القراءة من صفحات الشيكات في صفحة البيانات) والصواب أن نقوم بعمل ورقتين فقط الأولى للبيانات ونكتب فيها بيانات الشيكات والثانية للبحث والطباعة نكتب فقط رقم الشيك فيتم استدعاء بياناته من شيت البيانات رجاء مراجعة هذا الملف وكتابة رقم الشيك في الخلية O1 في شيت الطباعة وبالنسبة لكود التفقيط بالمنتدى مليء بها يمكنك اختيار ما يناسبك للعلم حتى لا تتم طباعة الخلية التي يكتب فيها رقم الشيك المراد البحث عنه تم تعيين منطقة الطباعة set print area من تبويب تخطيط الصفحة page layout ويمكن تعديلها من خلال نافذة اعداد الصفحة page setup التبويب الأخير sheet بالتوفيق chk.xlsx
  15. عليكم السلام و رحمة الله وبركاته الجزء الخاص بتنفيذ المطلوب في الكود الحالي هو هذان السطران 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 بالتوفيق
  16. بارك الله لك فعلا مرجع كبير جدا للباحثين ومن يقوم بدراسات عليا بالتوفيق
×
×
  • اضف...

Important Information