بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 06/12/19 in all areas
-
3 points
-
شرح كيفية ادراج ToggleButton و CheckBox الجزء 11 الفيديو الصور رابط الملف حمل الملف من هنا2 points
-
السلام عليكم ورحمة الله تعالى وبركاته من منا يمل من كثرة استخدام الرسائل مثلى ويظل يفكر فى كل مرة كيف سيكتب الكود المناسب الان موديول واحد به الحل النهائى المرن فى التعامل مع الرسائل وحتى لا ننسي الفضل لاصحاب هذا العمل الحقيقين الاستاذ @أبو هادي >>----> تعريب الصندوق الاستاذ @ابوخليل >>----> تعريب الصندوق الاستاذ @أبو آدم >>----> تلوين محتوى الرسالة هذا المثال الذى اهديه لكم هو خلاصة دمج الاكواد المستخدمة من كل معلم من هؤلاء العظماء مع بعض التطوير البسيط الذى لا يذكـر اصلا والذى فقط يضفى المرونة فى سهولة استدعاء الكود داخل اى نموذج مع مرونة التغيير فى اضافات الرسالة او عنوان الرسالة حسب متطلبات المبرمج - ملاحظة للمرة الاولى احاول التوفيق بين الأكواد التى تعمل على كل من النواتين 64 بيت والـ 32 بيت ولا اعلم صراحة هل وفقت فى ذلك ام لا شرح سريع لمحتوى المثال المرفق اولا أكواد الموديول هذا الكود للاستاذ الجليل الاستاذ @أبو آدم '---- اللألوان -------------------------------------------------------------------------------- #If Win64 Then Declare PtrSafe Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long Declare PtrSafe Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long #Else Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long #End If Public DefaultColour As Long Public Const COLOR_WINDOWTEXT As Long = 8 Public Const CHANGE_INDEX As Long = 1 طريقة استخدام الكود بالاستدعاء داخل اى مكان بالبرنامج DefaultColour = GetSysColor(COLOR_WINDOWTEXT) ' تخزين لون ثيم النظام الافتراضي SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbRed ' اضبط لون ثيم النظام على اللون الأحمر MsgBox "you welcome in officena forums", , "welcome" ' كود الرسالة SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, defaultColour ' استعادة القيمة الافتراضية بعد اغلاق الرسالة الشرح تفصيلا لكل سطر بالكود DefaultColour = GetSysColor(COLOR_WINDOWTEXT) هذا السطر لحفظ تنسيق الالوان المستخدم فى ثيم الويندوز ثم SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbRed هذا يغير اعدادت ثيم الويندوز لتغير لون الكتابة الى اللون الاحمر طبعا يمكن تغيير اللون كيفما تريد بتغير vbRed الى ما تريده انت ثم نكتب الرسالة داخل الكود المخصص لها مثلا MsgBox "you welcome in officena forums", , "welcome" ثم بعد عرض الرسالة العودة مرة اخرى للون المفضل لثيم الويندوز والذى اختفظنا به فى الجزء الاول من الكود SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, DefaultColour وبهذا انتهى جزء تلوين محتوى النص للرسالة الجزء الثانى من الكود داخل الموديول والخاص بتعريب الأزرار الاستاذ @ابوخليل / الاستاذ @أبو هادي #If Win64 Then Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Declare PtrSafe Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String) As Long Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long #Else Declare Function GetCurrentThreadId Lib "kernel32" () As Long Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String) As Long Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long #End If Private m_hHook As Long Const IDOK = 1 Const IDCANCEL = 2 Const IDABORT = 3 Const IDRETRY = 4 Const IDIGNORE = 5 Const IDYES = 6 Const IDNO = 7 Const IDCLOSE = 8 Const IDHELP = 9 Const WH_CBT = 5 Const GWL_HINSTANCE = (-6) Const HCBT_ACTIVATE = 5 Public Sub MessageBoxFullArabicButtons(hwndThreadOwner As Long) Dim hInstance As Long Dim hThreadId As Long hInstance = GetWindowLong(hwndThreadOwner, GWL_HINSTANCE) hThreadId = GetCurrentThreadId() m_hHook = SetWindowsHookEx(WH_CBT, AddressOf MsgBoxHookProc, hInstance, hThreadId) End Sub Private Function MsgBoxHookProc(ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If uMsg = HCBT_ACTIVATE Then SetDlgItemText wParam, IDOK, "موافق" SetDlgItemText wParam, IDCANCEL, "إلغاء" SetDlgItemText wParam, IDABORT, "إحباط" SetDlgItemText wParam, IDRETRY, "إعادة" SetDlgItemText wParam, IDIGNORE, "تجاهل" SetDlgItemText wParam, IDYES, "نعم" SetDlgItemText wParam, IDNO, "لا" SetDlgItemText wParam, IDCLOSE, "إغلاق" SetDlgItemText wParam, IDHELP, "مساعدة" UnhookWindowsHookEx m_hHook End If MsgBoxHookProc = False End Function الجزء التالى هو بناء كود عام للرسالة حتى يسهل استخدامه باستدعائه بكل سهولة فى جميع نماذج البرنامج Public Function MyMesg(Mesgtxt As String, _ Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, _ Optional ByVal Title As String = "تطوير صندوق الرسائل العربى من منتديات اوفيسنا", _ Optional ByVal HelpFile As Variant, _ Optional ByVal Context As Variant) As VbMsgBoxResult MessageBoxFullArabicButtons Application.hWndAccessApp MyMesg = MsgBox(Mesgtxt, Buttons + vbMsgBoxRtlReading + vbMsgBoxRight + vbDefaultButton1, Title) End Function نلاحظ الاتى بوجه عام هذا الكود تم تصميمه على ان يكوم اقتراضيا بهذا الشكل الرسالة بسيطة تحتوى على زر امر واحد Buttons As VbMsgBoxStyle = vbOKOnly عنوان الرسالة الإفتراضى Title As String = "تطوير صندوق الرسائل العربى من منتديات اوفيسنا" الجزء من الكود هذا MessageBoxFullArabicButtons Application.hWndAccessApp الذى يستدعى تعريب الازرار السطر الاخير البناء الطيعى لتكوين كود الرسالة بالاضافات التى يفضلها المبرمج MyMesg = MsgBox(Mesgtxt, Buttons + vbMsgBoxRtlReading + vbMsgBoxRight + vbDefaultButton1, Title) طريقة استخدام الكود بالاستدعاء داخل اى مكان بالبرنامج MyMesg "منتديات أوفيسنا ترحب بكم" لتغيير العنوان الافتراضى MyMesg "منتديات أوفيسنا ترحب بكم",,"العنوان الجديد كما تريد" استخدام الاضافات لتغيير الازرار مثلا MyMesg "هل أعجبتك هذه الترجمة و التعديلات والأفكار؟", vbYesNo مع عنوان مخصص MyMesg "هل أعجبتك هذه الترجمة و التعديلات والأفكار؟", vbYesNo,"عنوان جديد" والان وصلنا الى نهاية الموضوع اسأل الله تعالى ان يرزق اساذتنا العظماء الذين كان لهم الفضل فى هذا الموضوع البركة فى العمر والعلم والرزق والاهل والولد اللهم اغفر لهم ولوالديهم واللهم احسن اليهم كما احسنوا هم الينا اللهم تقبل اعمالهم يارب العالمين فى موازين اعمالهم وضاعف حسناتهم و الاجر اضعافا مضاعفة يارب العالمين اللهم ارفع درجاتهم فى أعلى درجات الجنان ودرجاتهم والديهم يارب العالمين امين امين امين Full Arabic Message Box.accdb Full Arabic Message Box.mdb1 point
-
هذا موضوع بالمنتدى لو بحثت وهذا التعديل على المرفق كما طلبت التسديد.accdb1 point
-
جرب هذا الملف صفحة Salim لا أعلم لما حجم الملف كبير بهذا الشكل Maba3at.xlsx1 point
-
السلام عليكم طلب للاخ ياسر سالم في المشاركة http://www.officena.net/ib/index.php?showtopic=26883 جعلتها هنا لاستفادة الجمع __________________________________.rar1 point
-
ربنا يطمنا عليك دائما استاذ الاساتذه عبد الله باقشير1 point
-
الدالة VLOOKUP تعمل بامتياز شرط استبدال الرقم 2 بـــ 7 7,0) =VLOOKUP(C7,بيانات!$A$8:$G$14,1 point
-
السلام عليكم ورحمة الله محاولة في الملف المرفق... بن علية حاجي المثال.xls1 point
-
العفو نعم يمكن بهذه الطريقة '=== هنا مصدر السجلات على شكل جملة اس كيو ال SQLStr = " SELECT EmpTbl.ID as [رقم الهوية], EmpTbl.EmpName As [اسم الموظف], EmpTbl.Begin_Date As [التاريخ] " & _ " FROM EmpTbl;"1 point
-
فهمت مشكلتك وهي ان النموذج يتأخر بسبب كثرة البيانات يوجد حلول : 1- ان تجعل نموذج وسيط يكون هو الواجهة الرئيسية 2- ان تجعل النموذج datamasterform غير منضم عند الفتح ، ويتم الربط بعد اكتمال الفتح من خلال زر1 point
-
منطقيا لا بد من العمل على نموذج واحد فقط حتى لو تمت رؤية النموذج الآخر انظر في المثال المرفق كلا النموذجين ظاهران ولكن امكانية التحرير على واحد فقط فكرة : لماذا لا تجعل مؤشر او شريط التقدم ضمن النموذج DataMasterForm ويكون هو نموذج البداية csx.mdb1 point
-
الاخ على كما قلت تغيرت الأعضاء كثيرا منذ بداية فتح هذا المنتدى كان هناك تعاون وحب اكثر للتعلم ولكن الأن تفضل الأعضاء اخذ المعلومة على الجاهز بصرف النظر عن التعلم والإستفادة كان فيه زميل يقول علمنى الصيد ولا تعطينى سمكة انت عارف لو كنت اريد حذف الملف لحذفته حعديها النهاردة وشكرا للاخ aboesa1 point
-
السلام عليكم وبعد اذن اخي مسفر تم التعديل حسب فهمي لطلبك اتمنى ان يحقق ذلك بالنسبة للعداد من 1 الى 13 يمكنك تغييرها حسب ما ترغب من ارقام Test_Up.mdb1 point
-
وعليكم السلام-اهلا بك اخى الكريم بالمنتدى عليك برفع الملف فلا يمكن العمل بدون ملف1 point
-
السلام عليكم ورحمة الله وبركاتة اعضاء المنتدى الكرام استاذتى ومعلمى الاجلاء فى البداية احب ان اتوجة بالشكر لكل استاذتى الكرام وكل من ساعدنى ودعمنى ايمانا منا بضرورة تقديم العلم النافع والصحيح لوجة الله تعالى فاننا نجدد النية لله ان يجعل هذا العمل خالصا لوجهه الكريم قمنا بعمل موقع عالم الاوفيس ليقدم لكم كل علوم المعرفة بحزمة ميكروسوفت اوفيس . لمشاهدة الموقع من هنا حتى يعم العلم كافة انحاء الوطن العربى1 point
-
1 point
-
لعل وعسى Test.mdb Test.mdb واحد منهم جرب الاثنين ما ادري اي واحد كنت برسل1 point
-
اخ على للاسف بيتم تحميل الملف بدون اى رد فتركتة على المنتدى للرد هناك لمعرفة عدد التحميلات ولابد طبعا للتحميل الاشتراك بالمنتدى ثم الرد الموضوع كله ثواب وننتظر الدعاء فقط الجزء ال10 مثلا 75 مشاهدة ولا تعليق غيرك عارف المجهود فى الفكرة والعمل عليها وتسجيل فيديو ورفعة اللى بيتطلب على الاقل ساعتين والنت رايح جاى بيقطع الفيديو ده من امس الصبح لسه مكتمل على اليوتيوب علاوة على رفع صور شرح وتحميل ملف طولت عليك اسف1 point
-
تفضل اخى الكريم طبعا بعد اذن استاذنا الكبير مجدى الجزء 11 ToggleButton CheckBox شرح كيفية ادراج.xlsm1 point
-
تفضل تم التعديل على المثال المرفق وتم ضبط الحدث عند الخروج من الحقل ملحوظة : يوجد في الجداول آلاف الأسماء ، اعمل دائما على وضع بيانات قليلة في بما يكفي للتجربة والتطبيق فقط Lab 2019.rar1 point
-
أحسنت أستاذ مجدى وزادك الله من فضله وجعله الله في ميزان حسناتك,عمل رائع1 point
-
السلام عليكم الرتبة تتغير مع الترقية في درجة العضوية. ولا تضاف أو تعدل من قبل العضو يرجى مراجعة آلية الترقيات في المنتدى المفتوح للتعرف على الدرجات1 point
-
والله فعلا أبو جودى عنده حق لما يطلب دايما مثال على السؤال دايما يقول الرد على السؤال النظرى متعب ع الفاضى يا اخى هات جزء البداية بس من قاعدتك اللى عليه سؤالك شوف جالك كام رد وكل واحد عمال يضرب اخماس في اسداس والله انت متعب1 point
-
جرب الان Test.mdb لازم يكون في بعض البرامج أشياء مخفية تخفى عن المستخدم ومعلومة عند المبرمج وأنا مو عارف ليش تحط فوم ثاني خلف شاشة التايمر وش الهدف منها ؟1 point
-
1 point
-
1 point
-
موضوع رائع اخ عبد اللطيف...اتمنى ان لاينتهي لنكتسب خبرة من الاساتذة.. لكن كل الامور تحدث في نموذج واحد صعب جدا.. عندما يأتيك شخص معين لديه عدة قضايا في محاكم متعددة فبالتاكيد نعمل بحث لهذا الشخص فتظهر لدينا جميع قضايا هذا الشخص بنموذج منفصل ثم نختار القضية من اسمها واسم المحكمة وتاريخها1 point
-
السلام عليكم موضوع الفاضل العلامة عبدالله باقشير له عشر سنوات والسيد عبدالله لم يعد يشارك بالمنتدى منذ سنتين او اكثر تعلمنا منه الكثير نسأل الله ان تكون اعماله بالمنتدي مضاعفة في ميزان خسناته1 point
-
عزيزى طلبك منذ اكتر من ثلاث شهور انا نست طلبك اصلا حابحث عنه1 point
-
تفضل هذا مثال بطريقتين تصدير مصدر الى ملف اكسل موجود تصدير مباشر مع انشاء ملف اكسل === بالنسبة للخطأ خطأ في تعريف المتغير الكود ينقصه ذلك Dim strQry As String TestDB.mdb1 point
-
ربما كان المطلوب Option Explicit Sub all_In_One_Row() Application.ScreenUpdating = False Dim M As Worksheet: Set M = Sheets("MY_SHEET") Dim S As Worksheet: Set S = Sheets("Source") Dim s_row%: s_row = S.Cells(Rows.Count, "P").End(3).Row Dim I%, RGS As Range Dim stp%: stp = 17 Dim x, k%: k = 3 Dim col%, n%: n = 3 Dim y%: y = 3 Dim RO%: RO = 17 Dim Colr%, New_R% M.Range("b17").CurrentRegion.Clear For I = 17 To s_row Step 5 Set RGS = S.Range("b" & I & ":P" & I + 4) x = RGS.Cells.Count M.Cells(stp, 2) = S.Range("Q" & I) stp = stp + 1 For col = k To x + 15 M.Cells(RO, y) = RGS.Cells(n) n = n + 1 y = y + 1 Next y = 3: RO = RO + 1: n = 3 Next M.Columns("B:CL").EntireColumn.AutoFit New_R = M.Range("b17").CurrentRegion.Rows.Count For I = 15 To 90 Step 15 M.Cells(17, I).Resize(26 - New_R).Interior.ColorIndex = 4 Next M.Range("b17").CurrentRegion.Value = _ M.Range("b17").CurrentRegion.Value Application.ScreenUpdating = True End Sub الملف مرفق صفحة MY_SHEET Data_with_dictinary_New.xlsm1 point
-
في حدث عند لف بكرة الماوس اكتب كود الأستاذ أبو جودي If IsNull(Me![txtAnalysisCode]) Or Me![txtAnalysisCode] = Null Or Me![txtAnalysisCode] = Empty Or Me![txtAnalysisCode] = "" Then Me![txtAnalysisCode].SetFocus MsgBox "من فضلك يجب وضع كود التحليل اولا" Exit Sub Else DoCmd.GoToRecord , , acNewRec End If وبعدين بصراحة انا اول مره اعرف ان في حدث اسمه كده عند لف بكرة الماوس ممكن حضرتك توريني الكود ده لو تكرمت اه فهمت انت عامله كده Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long) DoCmd.GoToRecord , , acNewRec End Sub1 point
-
اخي اولا تم ازالة بعض الاعمدة لتوحيد النظام داخل الملف فقط ارجو التجربة في النلف المرفق تحياتي Copy of2 الجدول افقي.xlsm1 point
-
اخي الان يمكنك البحث عن اللرقم الذي تريده من بداية الرقم الاول من علي اليسار او اول رقمان علي اليسار وهكذا حتي اول تمانية ارقام علي اليسار والكود هو Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("C3").Address Then If Target <> "" Then Range("C5:D1000").ClearContents s = Len(Range("C3")) If s > 0 Then x = 2 For i = 2 To 1000 If Sheets("Data").Cells(i, x) <> "" Then m = Sheets("Data").Cells(i, x).Address o = Left(Sheets("Data").Range(m), 1) oo = Left(Sheets("Data").Range(m), 2) ooo = Left(Sheets("Data").Range(m), 3) oooo = Left(Sheets("Data").Range(m), 4) ooooo = Left(Sheets("Data").Range(m), 5) oooooo = Left(Sheets("Data").Range(m), 6) ooooooo = Left(Sheets("Data").Range(m), 7) oooooooo = Left(Sheets("Data").Range(m), 8) If Range("C3").Text = o Or Range("C3").Text = oo Or Range("C3").Text = ooo Or Range("C3").Text = oooo Or Range("C3").Text = ooooo Or Range("C3").Text = oooooo Or Range("C3").Text = oooooo Or Range("C3").Text = ooooooo Or Range("C3").Text = oooooooo Then With Columns(4).Rows(2000).End(xlUp) .Offset(1, 0) = Sheets("Data").Cells(i, x) Cells(.Offset(1, 0).Row, 3) = Sheets("Data").Cells(i, x - 1) End With End If End If Next End If End If End If End Sub اما بخصوص المدي فيحدد عاموده ال X في سطر الذي هو x = 2 اما الذ يجدد الصف هذا السطر الخاص بالحلقة الدائرية For i = 2 To 1000 فيبدأ في البحث عن الرقم المطلوب في الصف 2 ثم 3 ونهاية بــ 1000 ارجو ان كون استطعت ايصال المعلومة تحياتي ارقام 2 (2).xlsm1 point
-
1 point
-
1 point
-
اضف هذا في كود التحليل If Me.TTT = 12 Then MsgBox " فـضـلاً أدخـل العمر ", vbExclamation, "تنبيه" & " : خـطـاء " Me.AGE.SetFocus Else وعندالخروج في حقل السن ضع هذا If IsNull(AGE) And Me.TTT = 12 Then MsgBox " فـضـلاً أدخـل العمر ", vbExclamation, "تنبيه" & " : خـطـاء " Cancel = True Me.AGE.SetFocus End If Database1 (7).rar1 point
-
السلام عليكم تستطيع دائما تفكيك اي معادلة لفهمها لاحظ أن نظام الجهاز عندي يضع بالمعادلة علامة (,) بدلا من (;) المعادلة السابقة بعد تفكيكها تكون كالتالي =IFERROR(A,) حيث نستعيض بالمعامل A عن المعادلة SUMPRODUCT((INDEX(ACH.!$B$3:$AP$9999,MATCH(A3,ACH.!$A$3:$A$9999,),)>0)*COUNTIF(INDEX(IP!$C$4:$N$44,,IFERROR(MATCH(C3,IP!$E$2:$N$2,)+2,MATCH(E3,IP!$C$3:$D$3,))),ACH.!$B$1:$AP$1)) ومعني المعادلة الأولي أن في حالة حدوث خطأ من المعادلة A فلا تكتب النتيجة خطأ والآن إلي المعادلة A بنفس الطريقة نبسطها كالتالي A= SUMPRODUCT(B*C) حيث B=(INDEX(ACH.!$B$3:$AP$9999,MATCH(A3,ACH.!$A$3:$A$9999,),)>0) ، C=COUNTIF(INDEX(IP!$C$4:$N$44,,IFERROR(MATCH(C3,IP!$E$2:$N$2,)+2,MATCH(E3,IP!$C$3:$D$3,))),ACH.!$B$1:$AP$1) ومعني ذلك ببساطة أن A تساوي حاصل ضرب مصفوفتين B,C مشروطتين والمصفوفة B هي أيضا يمكن تبسيطها هكذا B=(INDEX(B1,B2,)>0) حيث B1 هي المجال ACH.!$B$3:$AP$9999 ، B2 هي المعامل الناتج عن MATCH(A3,ACH.!$A$3:$A$9999,) و لإيجاد المعامل B2 نذهب للورقة ACH في المجال A3:A9999 والذي يبدأ بالخلية A3 لتبحث عن كود العميل والموجود بالخلية A3 بالورقة QSC ، إذن ستجد أنه في الصف الثامن (إذا بدأت العد من الخلية A3 ) أي أن : الجزء الأخير من المصفوفة B والذي أسميناه B2 سيأتي بالرقم 8 إذن المصفوفة B هي عنصر ناتج من المجال B1 (أي المجال B3:AP9999 في الورقة ACH) وهو العنصر الثامن وحيث أن رقم العمود لم يذكر فيكون الناتج هو كامل الصف الثامن من المجال B3:AP9999 في الورقة ACH وبما أن وحيث المجال B3:AP9999 يحتوي علي 41 عمود من (B) إلي (AP) إذن نتوقع أن يكون العنصر الثامن هذا هو محتوي 41 خلية وبالرجوع لها تجدها (1 , 0 , 1 , 0 , 1 , 1 , 0 , 6.25 , 1 , 2 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) بالترتيب حيث يعتبر الخلايا الفارغة أصفار باقي معني أخير بالمصفوفة B وهي مقارنة العناصر الناتجة بالرقم 0 (حيث آخر مقطع منها هو >0) فالناتج النهائي لها سيكون 41 عنصرا كل منها يحتوي علي 1 إذا كان الأصلي أكبر من 0 ويحتوي علي 0 إذا كان الأصلي ليس أكبر من 0 الناتج النهائي لها سيكون هكذا (1 , , 1 , , 1 , 1 , , 1 , 1 , 1 , 1 , , , , , , , , , , , , , 1 , 1 , , 1 , , , , , 1 , , , , , , , , , ) والمعني الطبيعي لهذا هو جعل الإكسل ينتقي عدد المرات (الأصناف) التي أخذها هذا العميل والآن : المصفوفة C هي ..... هكذا بنفس الوسيلة تجد أنها أيضا تنتج 41 عنصرا من الورقة الأخيرة IP وهذه العناصر رأسية (SKU CODE) ولابد أن تتساوي في العدد مع عناصر المصفوفة الأولي أي 41 عنصرا حقيقة أنا لا أعلم ماذا يعني SKU CODE ولكن تقاطع المصفوفتين سينتج 1 عند التقاطعات المملؤة أي التي بها 1 في المصفوفتين أعتقد أن المعني لهذا هو جعل الإكسل ينتقي عدد المرات (الأصناف) التي أخذها هذا العميل وفي نفس الوقت تتطابق مع هذا ال SKU CODE1 point