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

نجوم المشاركات

  1. محمد حسن المحمد

    • نقاط

      6

    • Posts

      2,216


  2. Moosak

    Moosak

    أوفيسنا


    • نقاط

      4

    • Posts

      1,997


  3. نزار سليمان عيد

    نزار سليمان عيد

    المشرفين السابقين


    • نقاط

      4

    • Posts

      1,547


  4. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      4

    • Posts

      12,188


Popular Content

Showing content with the highest reputation on 28 مار, 2022 in all areas

  1. تفضل هذا التعديل فقط ضع عدد الاسماء لكل ملف و اضغط تصدير تقسيم.zip
    4 points
  2. تفضل كما بالصورة كى تعمل ... أو جرب هذا الكود Sub FFvba() Cells(1, 2) = "123-45-6789" Dim rng As Range Set rng = Range("B1:B4") rng.FlashFill End Sub
    2 points
  3. عليكم السلام Sub CaloutDownArrow1_Click() 'On Error Resume Next 'Dim R As Integer Dim M As Integer Dim ws As Worksheet: Set ws = Sheets("Payment Requests") Dim sh As Worksheet: Set sh = Sheets("Cash Position") Dim cll As Range 'R = ws.Cells(5000, 1) M = 1 For Each cll In ws.Range("J3:J1000") If ws.Range("P1") = cll.Value Then sh.Cells(M, 13).Value = cll.Offset(0, -8) sh.Cells(M, 10).Value = cll.Offset(0, -6) sh.Cells(M, 2).Value = cll.Offset(0, -5) sh.Cells(M, 1).Value = cll.Offset(0, 0) sh.Cells(M, 5).Value = cll.Offset(0, 1) sh.Cells(M, 7).Value = cll.Offset(0, 2) sh.Cells(M, 3).Value = cll.Offset(0, 3) sh.Cells(M, 15).Value = cll.Offset(0, 5) ' On Error GoTo 0 M = M + 1 End If Next cll End Sub
    2 points
  4. المفترض جميع العمليات موجودة .. وهذا حتمي لا نقاش فيه ولكن ما دمت وافقتني على النقاط المقترحة .. اعطني بعض الوقت سوف اعالج المسألة المنهج في البرمجة ، او على الآقل منهجي هو اختصار الخطوات قدر الامكان من غير اخلال
    2 points
  5. السلام عليكم ورحمة الله وبركاته بعد إذن من سبقني إلى هذا الموضوع أقدم هذا الحل كرافد للعمل =CONCATENATE(IF(A2>0;A1;"");IF(AND(A2>0;B2>0);" و ";"");IF(B2>0;B1;"");IF(AND(OR(A2>0;B2>0);C2>0);" و ";"");IF(C2>0;C1;"");IF(AND(OR(A2>0;B2>0;C2>0);D2>0);" و ";"");IF(D2>0;D1;"")) أو =SUBSTITUTE(CONCATENATE(IF(A2>0;A1;"");" ";IF(B2>0;B1;"");" ";IF(C2>0;C1;"");" ";IF(D2>0;D1;""));" ";" / ") والله أعلم والسلام عليكم
    2 points
  6. على حسب طلب السائله اتوقع تحتاج هذه المعادلة =IF(AND(A2>0,OR(B2>0,C2>0,D2>0)),P2&O2&N2&""&M2,IF(AND(A2>0,OR(B2>0,C2>0,D2>0)),P2&" و "&O2&" و ",IF(AND(A2>0,OR(B2>0,C2>0,D2>0)),N2&" و "&M2))) انظري للمرفق ياسمين محمد.xlsx
    2 points
  7. اخي وحبيبي الاستاذ احمد ، تعديل صغير رائع وموفق عندي ملاحظات فنية : اولا البيانات في الجدول غير منطقية على سبيل المثال الجهاز رقم 6 تم عليه 5 عمليات في يوم واحد قصدي من هذه الملاحظة انه يجب ان يتم طباعة حركة الجهاز حسب آخر تاريخ حركة آليا سواء كانت استلام او تسليم بمعنى في زر طباعة في نموذج frmReceiveReturn لسنا بحاجة للتخيير بين طباعة تسليم او استلام ، بل تتم الطباعة آليا حسب الواقع الفعلي لحركة الجهاز ومن هنا انبثقت فكرة افضل : وهي انك استخدمت هذا النموذج فقط لادراج التوقيع فلماذا لا تتم الطباعة مباشرة من النموذج الرئيس (العمليات ) وضمنها اسم صاحب التوقيع ، اليس صاحب التوقيع هو من عمل حركة الجهاز (استلام/تسليم) في نموذج العمليات ؟ وعلى هذا يرد احتمالين : اذا كان اللي يسجل هو اللي يوقع فالمسألة محلولة بعمل فورم دخول لمستخدمي البرنامج اما اذا كان اللي يوقع شخص آخر كرئيس القسم ونحوه يمكننا اضافة المسؤول ضمن نموذج التفاصيل وملحوظة صغيرة على تقرير : استلام/تسليم الاستلام : المفهوم هي ورقة (وثيقة) تبقى عند الدعم الفني تفيد بصرف الجهاز لجهة او مكتب معين التسليم : المفهوم ان الذي ارجع الجهاز الى الدعم الفني يطالب بورقة اخلاء عهدة هل هذا صحيح ؟
    2 points
  8. اتفضل طيب ما هو التعديل ؟ كلمة واحدة وهى Between اين تم التعديل ؟ فى الاستعلام Dfa2 فى الحقل Installmentnumbercode فى اول المعيار سداد (2).accdb
    1 point
  9. ولو اردت اسم القاعدة فقط بدون المسار الكامل استخدم =Right(DLookUp("Database","MSysObjects","Type=6 "),Len(DLookUp("Database","MSysObjects","Type=6 "))-InStrRev(DLookUp("Database","MSysObjects","Type=6 "),"\"))
    1 point
  10. ايضا اضافة لما ذكر استاذي الحبيب .... = DFirst("Database", "MSysObjects", "[Type] = 6")
    1 point
  11. بسيطة للقاعدة الخلفية =DLookUp("Database","MSysObjects","Type=6 ")
    1 point
  12. وعليكم السلام انا استخدم هذا الكود البسيط ضعه في زر امر (عند النقر) ومن خصائص تظهر لك خصائص الطابعة On Error Resume Next DoCmd.SelectObject acReport, namerpts DoCmd.RunCommand acCmdPrint
    1 point
  13. 1 point
  14. جزاك الله اخيرا معلمى العزيز وشيخنا الجليل @ابوخليل 💐 بالنسبه للملاحظات فكلها ع راسى لانى اتعلم من ملاحظتكم وكل ملاحظاتك سليمه لا غبار عليها ومنطقيه ولكن لضيق الوقت معى وخاصه طوال الاسبوع ودخولى بشكل متقطع فلا اقوم بتحليل العمل كامل واحاول الاجابه ع قدر السؤال ومشاركه اخوانى واساتذتى فى الاجابات طمعا فى الاجر والثواب واياكم اخى بالتوفيق ومتابع معاكم
    1 point
  15. أرجو أن يكون شرحاً وافياً مفيداً أخي الكريم نسألكم الدعاء. والله الموفق ...تقبل تحياتي العطرة والسلام عليكم.
    1 point
  16. تحتاج لاستخدام هذه المعادلة =IFERROR(VLOOKUP(A2, حساب1!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, حساب2!$A$2:$C$6, 2, FALSE), "غير موجود")) انظر للمرفق جلب الاسم اين ما وجد.xlsx
    1 point
  17. أخي الكريم لإظهار الصيغ بدلاً من نتائجها من تبويب Formulas >> Show Formulas أو اضغط على مفتاحي ctrl ` اضغط عليهما معاً المفتاح الثاني هو مفتاح حرف الذال أو ّ أو ~ وللعودة إلى نتائج الصيغ اضغط على المفتاحين ذاتهما.من خلال هذا وبالنظر إلى مكونات المعادلة سيتضح لك اسم الورقة أو المصنف الخارجي الذ ترتبط به وإن كان في الورقة ذاتها من تبويب Formulas >> الضغط على Trace Precedents لتتبع السابقات بأسهم أو Trace Dependents لتتبع اللاحقات بأسهم أما Remove Arrows هو زر لإزالة الأسهم السابقة أو اللاحقة أو كليهما. والله أعلم والسلام عليكم ورحمة الله وبركاته.
    1 point
  18. السلام عليكم انا ضيف جديد في اسرتكم من العراق لدي هذا ملف الاكسل وارجو المساعده فيه لاني لم استطع عمل كود تكون فيه الاولويه للماده الاقرب للقرار ثم الماده التي بعدها https://docs.google.com/spreadsheets/d/1aC_oExIuZ--pxd4J4-8Cvgoj0VCG1itS/edit?usp=drivesdk&ouid=111903255758723026946&rtpof=true&sd=true بيانات%20الطلبه.xlsm
    1 point
  19. وعليكم السلام اتفضل اخى @samisalim ان شاء الله يكون ما تريد بالتوفيق ‏‏‏‏devicesdb12 -9_00013_1.accdb
    1 point
  20. In cell F2 put the formula =IFERROR(INDEX($A$1:$E$1,MATCH(E2,$A$2:$D$2,0)),"NOT SPECIFIC")
    1 point
  21. من لم يشكر الناس لم يشكر الله جزاكم الله خيرا وأحسن إليكم جميعاً.. آمين تقبلوا تحياتي العطرة.. والسلام عليكم ورحمة الله وبركاته 💐🏵️🌸
    1 point
  22. استاذ قلب الاسد انت انسان رائع بارك الله لك فى ذريتك وجعله الله فى ميزان حسناتك
    1 point
  23. 1 point
  24. Sub Test_Timer() Dim i As Long, k As Long Range("B3").Value = 0 Do Until Range("B3").Value = 4 Range("B3").Value = Range("B3").Value + 1 For i = 5 To 1 Step -1 Application.ScreenUpdating = True Range("E3").Value = i DoEvents For k = 1 To 100000000 Next k Next i Application.Wait Now + TimeValue("00:00:01") Loop End Sub
    1 point
  25. بامكانك استخدام المعادله ادناه =IF(A2>0,A1,IF(B2>0,B1,IF(C2>0,C1,IF(D2>0,D1,"")))) فضلا انظري للملف واي استفسار خبريني ياسمين.xlsx
    1 point
  26. من يدلني عللى طريقة ترحيل وفق ثلاث شرط من شيت الى شيت transfer.xls
    1 point
  27. السلام عليكم أخي الكريم يمكنك فعل ذلك بشكل آلي كلما غيرت في الشيت إلا أنه سيكون مرهقاً لك وخصوصاً حجم البيانات كبير وفق الكود ذاته تضعه في حدث ورقة البيانات ( ملف وتحريري نصف العام صف رابع) كما يلي: Private Sub Worksheet_Change(ByVal Target As Range) 'متغيرات Dim arr As Variant Dim i As Variant Dim cr As Variant Dim j As Long 'اسم شيت المصدر واسم الخليه الاولى منه arr = Sheets("ملف وتحريري نصف العام صف رابع").Range("b14").CurrentRegion.Value 'الأعمدة المطلوب الترحيل إليها cr = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 36, 45, 56, 65, 76, 85, 96, 105, 116, 125, 136, 145, 156, 165, 192, 193, 198, 199, 204, 205, 210, 211, 216, 217, 19, 20, 21, 28, 29, 30, 39, 40, 41, 48, 49, 50, 59, 60, 61, 68, 69, 70, 79, 80, 81, 88, 89, 90, 99, 100, 101, 108, 109, 110, 119, 120, 121, 128, 129, 130, 139, 140, 141, 148, 149, 150, 159, 160, 161, 168, 169, 170) 'أرقام الأعمدة المطلوب ترحيلها For Each i In Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34, 35, 37, 38, 40, 109, 41, 110, 42, 111, 43, 112, 44, 113, 45, 46, 47, 77, 78, 79, 49, 50, 51, 81, 82, 83, 53, 54, 55, 85, 86, 87, 57, 58, 59, 89, 90, 91, 61, 62, 63, 93, 94, 95, 65, 66, 67, 97, 98, 99, 69, 70, 71, 101, 102, 103, 73, 74, 75, 105, 106, 107) 'اسم شيت الهدف ورقم صف صفحة الهدف Sheets("سجل").Cells(14, cr(j)).Resize(UBound(arr, 1)).Value = Application.Index(arr, , i) j = j + 1 Next i End Sub ولذلك الأفضل التعديل على الموديول لديك كما يلي: Sub Test1() 'متغيرات Dim arr As Variant Dim i As Variant Dim cr As Variant Dim j As Long 'اسم شيت المصدر واسم الخليه الاولى منه arr = Sheets("ملف وتحريري نصف العام صف رابع").Range("b14").CurrentRegion.Value 'الأعمدة المطلوب الترحيل إليها cr = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 36, 45, 56, 65, 76, 85, 96, 105, 116, 125, 136, 145, 156, 165, 192, 193, 198, 199, 204, 205, 210, 211, 216, 217, 19, 20, 21, 28, 29, 30, 39, 40, 41, 48, 49, 50, 59, 60, 61, 68, 69, 70, 79, 80, 81, 88, 89, 90, 99, 100, 101, 108, 109, 110, 119, 120, 121, 128, 129, 130, 139, 140, 141, 148, 149, 150, 159, 160, 161, 168, 169, 170) 'أرقام الأعمدة المطلوب ترحيلها For Each i In Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34, 35, 37, 38, 40, 109, 41, 110, 42, 111, 43, 112, 44, 113, 45, 46, 47, 77, 78, 79, 49, 50, 51, 81, 82, 83, 53, 54, 55, 85, 86, 87, 57, 58, 59, 89, 90, 91, 61, 62, 63, 93, 94, 95, 65, 66, 67, 97, 98, 99, 69, 70, 71, 101, 102, 103, 73, 74, 75, 105, 106, 107) 'اسم شيت الهدف ورقم صف صفحة الهدف Sheets("سجل").Cells(14, cr(j)).Resize(UBound(arr, 1)).Value = Application.Index(arr, , i) j = j + 1 Next i End Sub والله أعلم والسلام عليكم
    1 point
  28. أهلا أخي عمر .. ضع هذا الكود على زر واحد .. فسيقوم بنسخ السجلات كلها ولصقها كسجلات جديدة : Me.AllowAdditions = False DoCmd.RunCommand acCmdSelectAllRecords DoCmd.RunCommand acCmdCopy Me.AllowAdditions = True DoCmd.GoToRecord , , acNewRec DoCmd.RunCommand acCmdPaste أما إذا كنت تريد نسخ ولصق السجل الذي تتقف عليه فضع الكود كما يلي : DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdCopy DoCmd.GoToRecord , , acNewRec DoCmd.RunCommand acCmdPaste الشغل كله على هذا الزر 🙂 مراجعة فواتير العلاج الشهرى المزمن - Copy.rar
    1 point
  29. أخي نبيل تم تطبيق نفس المعادلات بالأكسس مع معادلة حساب فترة الخدمة تلقائيا هكذا : والنتيجة 🙂 تأكد من المعادلات أو عدلها إن كانت غير صحيحة 🙂 nabilali.accdb
    1 point
  30. هناك عدة طرق للتعامل مع رسائل الخطأ ، الطريقة اللي انا استعملها ، هي اصطياد رقم الخطأ ، ثم التعامل معه ، فعليه ، يصبح الكود : Option Compare Database Option Explicit Dim rst_fy As DAO.Recordset Dim rst_n As Integer ' Private Sub xxx_Click() On Error GoTo err_xxx_Click 'take the Recordset one time, use it many times If rst_n = 0 Then Set rst_fy = Forms!fxy!fy.Form.RecordsetClone rst_n = 1 End If rst_fy.MoveFirst rst_fy.FindFirst "yyy='" & Me.xxx & "'" If rst_fy.NoMatch Then MsgBox "لا يوجد تطابق" Else MsgBox "يوجد تطابق" Me.Parent!fy.Form.Bookmark = rst_fy.Bookmark Me.Parent!fy.SetFocus End If Exit_xxx_Click: rst_fy.Close Exit Sub err_xxx_Click: If Err.Number = 3021 Then 'No data Resume Exit_xxx_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub Private Sub Form_Close() Set rst_fy = Nothing End Sub . اما التنسيق الشرطي الذي يمكن استعماله هنا ، فيكون ابسط : . فيه ملاحظة كتبتها بالانجليزي في الكود ، وعليه قمت بهذا العدد من الاسطر ، بالاضافة الى سطر تعريف المتغير Dim rst_n ، بينما كان ممكن ان اكتب سطر واحد من Set rst_fy = Forms!fxy!fy.Form.RecordsetClone والسلام : . السبب هو : رجاء ، لما تشتغل على اي برنامج ، ابدا لا تنظر للبرنامج بعدد بياناته الآن ، وانما انظر كأنك تتعامل مع 10 او 100 الف سجل ، لهذا السبب رفعت قاعدة بيانات للتجربة: . فلما عندك كود تريد تجربه ، ممكن تجربه على هذا العدد الهائل من البيانات ، فعليه ستعرف اذا الكود الذي عملته بطيء او سريع. لما تستخدم الامر Recordset او RecordsetClone ، فانت تأخذ نسخة من بيانات الجدول/الجداول (اذا كان استعلام) ، وتُبقي هذه البينات في ذاكرة الكمبيوتر المؤقته Ram ، فيصبح التعامل مع البيانات من الذاكرة مباشرة ، لذلك من المهم ان تحذف البيانات لما تنتهي من استعمالها ، وعادة نعمل هذا في آخر الكود بالامر Set rst_fy = Nothing . في حالة برنامجنا اعلاه ، في الكود الذي وضعته انا ، فأنا أخذ بيانات الجدول مرة واحدة فقط ، ويبقى في الذاكرة الى ان نغلق النموذج ، فنحذفه من الذاكرة ، ولكن الكود الذي وضعته انت ، فأنت تأخذ البيانات من الجدول كلما تدخل في الكود (لا تنسى قد تكون الجداول في الشبكة ، وقد تكون سجلات الجدول كبيرة) ، وهذا يجعل البرنامج ابطئ !! جعفر
    1 point
  31. بسم الله اتبع الآتي : نفس ما قال الاخ / موزيكي لكن ما يحتاج تروح تخصيص فقط اذهب لقائمة ( نمط الارقام ) اضغط على السهم واختر النمط ( أ ، ب ، ج ........ ) راح يظهرك التعداد ابجد هوز اما السؤال الثاني مثل اجابة الاخ / موزيكي طبق نفس الخطوات وفقك الله والاخ / موزيكي
    1 point
×
×
  • اضف...

Important Information