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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    192

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

  1. لا تتعب نفسك الاكسل ضعيف في الحماية اقل من الأكسس
  2. عليكم السلام ورحمة الله وبركاته إذا كان الهدف هو مجرد ترتيب بالمعادلات قيمكنك استعمال هذه المعادلة في الخلية F4 للحصول على نفس المجموعة مرتبة =INDEX($A$4:$C$11,MATCH(ROW()-3,$A$4:$A$11,0),COLUMN()-5) مع ملاحظة بداية ونهاية نطاق البحث A4:C11 وعدد الصفوف الفارغة قبل مكان أول نتيجة (F4) == 3 وخلايا الفهرس غير المرتب الذي يتم التريب عليه A4:A11 وعدد الأعمدة الفارغة قبل مكان أول نتيجة == 5 مع سجب المعادلة لأسفل ولليمين بالتوفيق
  3. جرب استعمال هذه المعادلة في الخلية G6 =IF(B6="","",IF(DATEDIF(D6,E6,"md")>=30,IF(DATEDIF(D6,E6,"ym")+1=12,0,DATEDIF(D6,E6,"ym")+1),DATEDIF(D6,E6,"ym"))) وهذه في الخلية F6 =IF(B6="","",IF(DATEDIF(D6,E6,"ym")+1=12,1,0))+DATEDIF(D6,E6,"y") بالتوفيق
  4. ربما يكون سبب بطء الكود (من وجهة نظرك) شرط عدم قراغ خلية العمود b في نفس الصف وعدم تحديد النطاق الفعلي (بدون زيادة في الصفوف أو الأعمدة) بالتوفيق
  5. يمكنك استعمال ميزة text to columns الموجودة في تبويب data بالتوفيق
  6. الكود السابق يملأ الخلايا الفارغة كلها بدون شروط لذا يلزم إضافة شرط يمكنك استعمال هذا الاجراء تم إضافة شرط أن تكون خلية العمود B في نفس الصف غير فارغة Sub masFillBlanks() Dim rng As Range For Each rng In Range("H11:AT75") If Range("b" & rng.Row) <> "" And IsEmpty(rng) Then rng.Value = "-" Next MsgBox "Done by mr-mas.com" End Sub وهذا نفس الاجراء بطريقة أخرى Sub masFillBlanks2() Dim arr, r As Long, c As Long arr = Range("H11:AT75").Value For r = LBound(arr, 1) To UBound(arr, 1) If Range("b" & r + 10) <> "" Then For c = LBound(arr, 2) To UBound(arr, 2) If IsEmpty(arr(r, c)) Then Cells(r + 10, c + 7) = "-" Next c End If Next r MsgBox "Done by mr-mas.com" End Sub وأنصح بعدم وجود صفوف أو أعمدة زيادة مثل ما بعد الصف 47 وlما بعد العمود AN بالتوفيق
  7. يفضل إرفاق ملفك وتوضيح المطلوب بمنتهى التفصيل مع ذكر النتيجة النهائية المطلوبة
  8. مادمت لم تعرف كيف تتواصل مع المبرمج يمكنك الإستفادة من هذه الموضوعات المفتوحة المصدر https://www.officena.net/ib/search/?q=date picker&quick=1&type=forums_topic&nodes=135&search_and_or=and بالتوفيق
  9. حسب فهمي للمطلوب جرب هذه المعادلة =IF(A1>10,33.5+(A1-10)*4.25,A1*3.35) وتعني إذا كان قيمة A1 اكبر من 10 فيتم إضافة 33.5 وهي ناتج ضرب العشرة ايام في 3.35 زائد باقي الأيام فوق العشرة في 4.25 بالتوفيق
  10. المنتدى به كنوز رائعة تحتاج فقط من يبحث عنها https://www.officena.net/ib/search/?q=صورة الموظف&quick=1&type=forums_topic&nodes=135&search_and_or=and بالتوفيق
  11. أخي الكريم صاحب الموضوع اول خطوة لتعديل الكود فهمه وفهم متغيراته والكود القديم يقوم بنقل قيمة العمود J إلى العمود 19 بعد العمود الأول في شيت البيانات والمطلوب إضافة نفس الكود عند تعديل العمود G ويتم نقله إلى العمود 16 بعد العمود الأول في شيت البيانات لذلك يصبح الكود بعد التعديل Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim ws As Worksheet Set ws = Sheets("البيانات") Dim c, x Application.ScreenUpdating = False If Not Intersect(Target, Range("g8:g1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 16) = Target Ebd If If Not Intersect(Target, Range("j8:j1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 19) = Target End If Application.ScreenUpdating = True End Sub لاحظ تم تكرار سطور الشرط للعمودين g و j مع تغيير رقم العمود المرحل إليه مرة 19 ومرة 16 بالتوفيق
  12. أخي الكريم يوجد في ملفك مجموعات من الأرقام غير المتسلسلة لأنه بين كل رقم والذي يليه مرة 100 ومرة 200 ومرة 500 وهكذا كل مجموعة 11 عمود في 50 صف والعمود الأخير غير كامل وبين كل مجموعة والثانية 7 اعمدة فارغة هذا وصف دقيق للموجود بالملف فيا ريت تضيف شيت جديد في ملفك به الصورة النهائية المطلوب الوصول إليها مع وصف دقيق وبمنتهى التفاصيل عن كيف وصلت لهذه الصورة المطلوبة وساعتها يمكن بإذن الله تحويل ما قمت به إلى معادلات أو أكواد للوصول للصورة النهائية المطلوبة بالتوفيق
  13. كيف يتم حسابها في الواقع؟ وساعتها يمكن تحويلها لمعادلة
  14. بعد إذن أخي محي الدين جرب تغيير الاجراء إلى هذا الكود هذا باستعمال الاسم البرمجي للشيت ودالة cells Sub test() Dim a, col As Long a = Range(Worksheet____37.Cells(10, 8), Worksheet____37.Cells(39, 8)).Value col = Application.Match(Worksheet____37.Cells(9, 8), Worksheet____60.Range("a9:m9"), 0) Worksheet____60.Cells(10, col).Resize(30) = a MsgBox "Done by mr-mas.com" End Sub وهذا نفس الاجراء باسم الشيت والنطاق Sub mrmas() Dim a, col As Long a = Sheets("طباعة حافظة التقارير").Range("h10:h39").Value col = Application.Match(Sheets("طباعة حافظة التقارير").Range("h9"), Sheets("ارشيف التقارير").Range("a9:m9"), 0) Sheets("ارشيف التقارير").Cells(10, col).Resize(30) = a MsgBox "Done by mr-mas.com" End Sub بالتوفيق
  15. وهذا رابط للبحث Showing results for 'القروش الجنيهات' in content posted in منتدى الاكسيل Excel . - أوفيسنا (officena.net) بالتوفيق
  16. لقد عرضت لك الحل كاملا نظرا لسرية البيانات وخصوصا بيانات الدخول (اسم المستخدم وكلمة المرور) على موقع رسمي كهذا
  17. يرجع ذلك لأن الأرقام التي في الخلايا منسقة ك نص ولذلك تجد ظهور مثلث أصفر يخبر بهذا الخطأ the number in this cell is formatted as text والحل تحديد جميع الخلايا ثم الضغط على المثلث الأصفر واختيار convert to number بالتوفيق
  18. الكود لا يضر الموقع ولا يظهر عندهم الكود يقوم بما يقوم به المستخدم ولكن بصورة آلية تحتاج قبل البدء معرفة ID حقل اسم المستخدم وكذلك كلمة المرور وكذلك زر الدخول وبعدها ID لكل حقل سيتم تعبئته من الشيت وكل زر سيتم الضغط عليه لمعرفة ID لعنصر نضغط بزر الفارة الأيمن على العنصر في المتصفح ونختار inspect element وبعدها نستخدم كود انشاء نسخة من كائن متصفح انترنت اكسبلورر بمثل هذا الكود Dim IE As Object, site as String Set IE = CreateObject("InternetExplorer.Application") site = "https://www.example.com/" With IE .Visible = True .navigate site Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop End With IE.Document.getElementById("username").Value = range("aa1").value IE.Document.getElementById("password").Value = range("ab1").value IE.Document.getElementById("login_go").Click Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop وهكذا في كتابة قيم الحقول من الشيت نستعمل حلقة تكرارية مثل for - next وهكذا الضغط على اي زر لحفظ البيانات مثلا بالتوفيق
  19. هل الموقع يفتح بصورة طبيعية في متصفح انترنت اكسبلورر؟ إذا كانت الإجابة بنعم فمن السهل إنجاز المهمة بالكود وإذا كان الموقع لا يمكن فتحه ويتطب متصفحا حديثا مثل جوجل كروم أو فايرفوكس فالأمر أكثر صعوبة
  20. الحمد لله الذي وفقنا جميعا لهذا
  21. كل عام وأنتم جميعا بكل خير يمكنك استعمال هذه المعادلة في الخلية C2 مع سحب المعادلة يسارا ثم أسفل =SUMIFS('Data '!$E:$E,'Data '!$A:$A,$A2,'Data '!$C:$C,">="&C$1,'Data '!$C:$C,"<="&EOMONTH(C$1,0)) مع ضرورة حذف المسافة في نهاية اسم الشيت data حتى لا تتسبب في مشكلات بعد ذلك بالتوفيق
  22. عليكم اسلام ورحمة الله وبركاته يمكنك استعمال دالة العد بشروط countifs هذه المعادلة في Y2 لعد ايام الحضور =COUNTIFS(B:B,AA3,C:C,Z3,F:F,"حضور") وهذه في X2 لعد ايام الغياب =COUNTIFS(B:B,AA3,C:C,Z3,F:F,"غياب") مع سحب المعادلة لأسفل بالتوفيق
  23. يمكنك التحكم في النطاق بدالة iif بصورة طبيعية بتكرار الشرط في جزء عدم التحقق For Each c In IIf(Me.OptionButton4, x.Range("A9:A" & ss), IIf(Me.OptionButton5, x.Range("B9:B" & ss), x.Range("C9:C" & ss))) بالتوفيق
  24. تقريبا حجم الصفحة في اعدادات الملف letter ولكن حجم الورق في الطابعة A4
×
×
  • اضف...

Important Information