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

Foksh

أوفيسنا
  • Posts

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

  • تاريخ اخر زياره

  • Days Won

    167

كل منشورات العضو Foksh

  1. جزاكم الله كل الخير على كلامك الجميل ... وتقبل الله طاعتكم بمناسبة عيد الأضحى المبارك ,, وكل عام وأنتم بألف خير ..
  2. وعليكم السلام ورحمة الله تعالى وبركاته 🤗 واجهتني مشكلة سابقة في ويندوز 11 مع أوفيس 2016 ، وكانت المشكلة في تحديثات الويندوز اللي كانت مع النسخة ، وللأسف بعد العودة الى ويندوز 10 ونفس نسخة الأوفيس 2016 ، لم أواجه المشكلة ذاتها.
  3. وعليكم السلام ورحمة الله تعالى وبركاته 🤗.. بالنسبة للنقطة الأولى ، فالأستاذ @Moosak جعل فكرة صعوبة المستويات تنطبق على الكيبورد أيضاً ، بحيث ولنفترض أن الرقم الحالي هو 6 ، وموقعه في اللعبة ما يتوافق مع موقع المفتاح رقم 1 على الكيبورد ، فهنا يجب عليك الضغط على مفتاح 1 والذي هو بما يقابله الرقم 6 .. انا بعيد عن الكمبيوتر حالياً ، وإلا لكنت قد زودتك بشرح مصور مشروح يوضح فكرة ارتفاع الصعوبة في المستويات 😁 . وكانت الفكرة التحدي بحفظ الأرقام المطلوبة مع تغيير مواضعها في كل رقم تقوم بكتابته بشكل صحيح 😈 ..
  4. أخي أسعد ، وعليكم السلام ورحمة الله وبركاته ،، أولاً تقبل الله طاعاتنا وطاعاتكم ، وكل عام وأنتم بخير . دائماً ما ننوه ونذكر حريصين على مساعدتكم بضرورة تحديد تفاصيل المشكلة وإرفاق ملف حتى وإن تكرر نفس الملف في مشاركات ومواضيع ومشاكل سابقة . كما أُشير إليك بذكر سبب استفسارك عن صحة الدالة ( المشكلة التي تواجهها ) . بما انك استخدمت First في استعلامك ، فأعتقد وأنه من الأفضل لك استخدام الترتيب في نتائج الاستعلام ORDER BY . قد نسيت بنية الاستعلامات السابقة في مشاريعك . لذا حاول استخدام الفرز حسب قيمة معينة ليتم جلب أول قيمة لك من نتيجة الإستعلام .
  5. تقبل الله طاعاتكم ، وبارك الله بكم ، ونفع بكم أخي الفاضل @algammal .. لهو شرف لي مشاركتك اسمي بين نخبة من معلمي و أساتذة هذا الصرح الكبير في هذا القسم الرائع ، وقد أسعدتَ قلبي بكلماتك الطيبة والتي إن نبعت ، فهي نابعةٌ من جمال وطيب قلبك وأصلك وخُلُقك . وكما أسلف اساتذتنا هنا سابقاً ، نحن هنا نساند بعضنا البعض بمودة ومحبة بما علمنا الله من علمه - ولا علم إلا علمه - ولله الفضل من قبل ومن بعد . وبإسمي وبإسم قسم الآكسس عموماً ، نسأل الله أن يتقبل طاعاتكم ، ونتمنى لكم عيد أضحى مبارك 🐑.
  6. أخي الحبيب @kkhalifa1960 ، دائماً تذكُرنا بمناسباتنا ، فكل الشكر والتقدير لك ولشخصك الكريم . وتقبل الله منا ومنكم صالح الاعمال والطاعات ، وجعله في ميزان حسناتكم 🤗 . وكل عام وأنتم بخير جميعاً.
  7. وعليكم السلام ورحمة الله وبركاته.. حياك الله اخي أسعد ، وتقبل الله منا ومنكم صالح الاعمال ، وعيدكم مبارك 🤗 على ماذا الشكر أخي الكريم ؟ صدقني لم نفعل شيئاً يذكر ، هذا واجبنا اتجاه بعضنا البعض . وفي الأساس مشروعك قائم بفضل الله أولاً ، ثم بجهود أستاذي ومعلمي أبو خليل . فهو الحجر الأساس لما وصلت له من ثمرة نجاح . جزاكم الله خيراً .
  8. حياك الله اخوي الغالي لنفترض أن لدينا حقلًا في جدول باسم LinkName كما في مثالك ، ويحتوي على الرابط التشعبي التالي : "Visit Google#https://www.google.com#Homepage" نتيجة HyperlinkPart([LinkName], 1) : "Visit Google" (النص الظاهر) . نتيجة HyperlinkPart([LinkName], 2) : "Homepage" (العنوان الفرعي) . نتيجة HyperlinkPart([LinkName], 3) : "https://www.google.com" (الرابط الأساسي) . متى نستخدم كلاً منهما ؟ استخدم 1 عندما تريد عرض النص الذي يراه المستخدم فقط (حسب مثالك طبعاً ) استخدم 2 عند الحاجة إلى استخراج إشارة مرجعية أو موقع داخل ملف ( مثل اكسل أو وورد ) استخدم 3 لاستخراج الرابط الفعلي ( URL أو مسار الملف ) فاستخدمت 1 لما يتوافق مع مثالك الذي طرحته ، ولكن جرب الحالة 3 😉 .
  9. وعليكم السلام ورحمة الله وبركاته .. من خلال الملف اعتقد ان المشكلة لديك في فقدان الخط QCF_BSML من الويندوز وعدم وجوده . لذا تستطيع تحميل النسخة 2005 من هنا ، أو النسخة الجديدة كاملة من هنا . مع العلم أن الخطوط التي تريدها هما :- Desktop.zip فقط قم بتثبيتهما على جهازك وافتح الملف بعدها .
  10. وعليكم السلام ورحمة الله وبركاته .. بعد النظر الى ملفك المرفق من الجوجل درايف ، انظر للخطأ الذي ظهر حيث ان أسماء الحقول لديك هي ارقام في بعض الجداول . فإن كانت البدايات تحتوي على مشاكل ، فسيتم دائماً وجود مشاكل لاحقاً . أيضاً في الجدول Time Cards ، الحقل ID نوعه ترقيم تلقائي ولكنك استخدمت التنسيق "TCN "0000 = اي انه يحتوي على نص ورقم في حقل نوعه ترقيم تلقائي . وعليه لم أكمل النظر في المرفق لأخطاءه الكثيرة ,, ثانياُ ، لم تذكر اسم التقرير للأسف . ثالثاً ملف الآكسل يحتوي اسماء العناوين نصوص وليست أرقام !!! وانت لم تفسر وتشرح وتوضح مطلبك بشكل واضح للقارئ .
  11. وعليكم السلام ورحمة الله وبركاته .. استعملت استعلام تحديث بعد اضافة الحقل النصي LinkTxt في الجدول ، فيقوم بتحديث قيمة الحقل لكل سجل باستخراج اسم الموقع على شكل نص وليس رابط تشعبي . UPDATE Linktbl SET Linktbl.LinkTxt = HyperlinkPart([LinkName], 1) WHERE Linktbl.LinkName IS NOT NULL; LinkName.accdb
  12. وإياكم أخي @محمد هشام. ، وأحسنتم التطوير .. لا أخفيك أنني أعشق التطوير والتحفيز لذاتي لاستنباط الإبداع من جوف الأفكار التي نملكها ويمكننا ابتكارها . وأنتم قد أحسنتم السير بهذا الطريق 👍🏻 جزاكم الله كل الخير على ترجمتكم الجميلة لفكرتي البسيطة
  13. كيف يتم زيادة حجم قاعدة البيانات !!!!!! على العموم سأحاول الليلة ضبط الأمور على ما انت عليه ، ولكني سأضطر الى تغيير أسماء المكونات لأنني ضد البناء على أساس غير سليم . هل انت موافق ؟؟ طبعاً ما لم تجد حلاً أسرع من أحد الأخوة والأساتذة والمعلمين الأفاضل .
  14. الشكر لله وحده من قبل ومن بعد على ما علمنا العفو يا مهندسنا الغالي ، ما هي إلا إبداعاتكم وتوجيهاتكم وتنسيقاتكم وأفكاركم ولا انت خايف يطلع حد خسران ويحكي ان اللعبة خسرته ويجي عندك يقولك مصعبها علينا 😂 جزاكم الله خيراً على ابداعاتكم ، وفعلاً لعبة مسلية وتساعد على التركيز ، ولكن 😤 !!!!! أحياناً يا أخي ما ألحق الوقت وأخسر 😭
  15. نسأل الله العظيم رب العرش العظيم أن يجعله في موازين حسناتكم .. وأن يجعل لكم في كل حرف حسنة .. بما أنك في بداية الطريق ، فلي توجهات أتمنى أن تفيدك لتحسين العمل بشكل يضمن بداية صحيحة وسليمة . الأصل في مشروعك وهو على أعتاب الضخامة بما يحتويه من سجلات ، أن تبتعد عن التسميات العربية للجداول وحقولها والنماذح والعناصر المكونة لها .... إلخ من مكونات المشروع . ثانياً اعتقد ان اعتمادك في الجدول على حقل ترقيم تلقائي للآيات لهو خطأ قد يتسبب لك في مشاكل لاحقاً ، وأعلم أن المشروع لن يكون فيه ادخال بيانات أو حذف سجلات في الجدولين ( بيانات ثابتة للعرض فقط ) ولكن برأيي ربط الجدولين بمفتاح غير قابل للتكرار = رقم السورة .
  16. ما شاء الله ، تبارك الله .. أفكار وحلول جميلة ، من الأساتذة ( @hegazee ، @محمد هشام. ... ) ، ولهذا وددت أيضاً تطوير الفكرة بحيث عند وجود أكثر من فارق بين ( قبل وبعد ) في نفس الصف ، ان يتم تمييز كل فارق بلون مختلف لتسهل معرفة وتتبع الفروقات عند السجلات الكبيرة . حيث تم تعديل الدالة الرئيسية فقط كالآتي :- Public Sub HighlightGradeDifferencesGeneral(ByVal sheetObject As Worksheet, _ ByVal rangeBeforeAddress As String, _ ByVal rangeAfterAddress As String, _ Optional ByVal showMessage As Boolean = True) Dim rangeBefore As Range Dim rangeAfter As Range Dim cellAfter As Range Dim cellBefore As Range Dim i As Long Dim j As Long Dim colorPalette As Variant Dim colorIndex As Long colorPalette = Array(6, 3, 4, 7, 8, 9, 10, 12) On Error GoTo ErrorHandler Set rangeBefore = sheetObject.Range(rangeBeforeAddress) Set rangeAfter = sheetObject.Range(rangeAfterAddress) If rangeBefore.Rows.Count <> rangeAfter.Rows.Count Or _ rangeBefore.Columns.Count <> rangeAfter.Columns.Count Then If showMessage Then MsgBox "نطاق 'قبل' (" & rangeBeforeAddress & ") ونطاق 'بعد' (" & rangeAfterAddress & ") " & _ "في الورقة '" & sheetObject.Name & "' ليسا بنفس الأبعاد . يرجى التحقق", vbExclamation + vbMsgBoxRight, "" End If Exit Sub End If Application.EnableEvents = False Application.ScreenUpdating = False rangeBefore.Interior.colorIndex = xlNone rangeAfter.Interior.colorIndex = xlNone For i = 1 To rangeAfter.Rows.Count colorIndex = 0 For j = 1 To rangeAfter.Columns.Count Set cellAfter = rangeAfter.Cells(i, j) Set cellBefore = rangeBefore.Cells(i, j) If Not IsEmpty(cellAfter.Value) And Not IsEmpty(cellBefore.Value) Then If cellAfter.Value <> cellBefore.Value Then cellAfter.Interior.colorIndex = colorPalette(colorIndex) cellBefore.Interior.colorIndex = colorPalette(colorIndex) colorIndex = (colorIndex + 1) Mod (UBound(colorPalette) + 1) End If ElseIf (IsEmpty(cellAfter.Value) And Not IsEmpty(cellBefore.Value)) Or _ (Not IsEmpty(cellAfter.Value) And IsEmpty(cellBefore.Value)) Then cellAfter.Interior.colorIndex = colorPalette(colorIndex) cellBefore.Interior.colorIndex = colorPalette(colorIndex) colorIndex = (colorIndex + 1) Mod (UBound(colorPalette) + 1) End If Next j Next i If showMessage Then MsgBox "اكتملت المقارنة وتم تلوين الاختلافات في الورقة '" & sheetObject.Name & "'.", vbInformation + vbMsgBoxRight, "" End If ErrorHandler: Application.ScreenUpdating = True Application.EnableEvents = True If Err.Number <> 0 And showMessage Then MsgBox "حدث خطأ في الورقة '" & sheetObject.Name & "': " & Err.Description, vbCritical + vbMsgBoxRight, "" End If End Sub الملف بعد إضافة التعديل درجات المواد.xlsm وصورة توضيحية للنتيجة
  17. وعليكم السلام ورحمة الله وبركاته .. هذا يستوجب أن تقوم بإرفاق الملف الذي سيتم العمل عليه .. فما الفائدة من الحلول التي تعتمد على خيال مقدمها لك وبالنهاية تخبره أن الكود لا يعمل . لذا نرجو منكم التكرم بإرفاق ملف لرؤية طريقة بنية قاعة البيانات وذلك بحسب سياسة وشروط المنتدى . وجعله الله في ميزان حسناتكم
  18. نعم صحيح ، ما تم تنفيذه من طرفكم أستاذي الكريم ، جميل جداً . وهو بالفعل ما ابتعدت عنه وبحثت عن مرونة تحكم بالنطاقات المختلفة وباقي التفاصيل .... إلخ .
  19. وعليكم السلام ورحمة الله وبركاته ,, يوجد طريقة بالتنسيق الشرطي قد تكون فكرة أحد الأساتذة ، ولكني اتجهت الى سلوك آخر من خلال VBA مع إضافة المرونة في الإستخدام لأكثر من ورقة ، وكل ورقة بنطاقات مختلفة .. في مديول جديد يتم اضافة الكود التالي :- Public Sub HighlightGradeDifferencesGeneral(ByVal sheetObject As Worksheet, _ ByVal rangeBeforeAddress As String, _ ByVal rangeAfterAddress As String, _ Optional ByVal showMessage As Boolean = True) Dim rangeBefore As Range Dim rangeAfter As Range Dim cellAfter As Range Dim cellBefore As Range Dim i As Long Dim j As Long Dim highlightColor As Long On Error GoTo ErrorHandler Set rangeBefore = sheetObject.Range(rangeBeforeAddress) Set rangeAfter = sheetObject.Range(rangeAfterAddress) highlightColor = 6 If rangeBefore.Rows.Count <> rangeAfter.Rows.Count Or _ rangeBefore.Columns.Count <> rangeAfter.Columns.Count Then If showMessage Then MsgBox "نطاق 'قبل' (" & rangeBeforeAddress & ") ونطاق 'بعد' (" & rangeAfterAddress & ") " & _ "في الورقة '" & sheetObject.Name & "' ليسا بنفس الأبعاد . يرجى التحقق", vbExclamation + vbMsgBoxRight, "" End If Exit Sub End If Application.EnableEvents = False rangeBefore.Interior.ColorIndex = xlNone rangeAfter.Interior.ColorIndex = xlNone For i = 1 To rangeAfter.Rows.Count For j = 1 To rangeAfter.Columns.Count Set cellAfter = rangeAfter.Cells(i, j) Set cellBefore = rangeBefore.Cells(i, j) If Not IsEmpty(cellAfter.Value) And Not IsEmpty(cellBefore.Value) Then If cellAfter.Value <> cellBefore.Value Then cellAfter.Interior.ColorIndex = highlightColor cellBefore.Interior.ColorIndex = highlightColor End If ElseIf (IsEmpty(cellAfter.Value) And Not IsEmpty(cellBefore.Value)) Or _ (NotEmpty(cellAfter.Value) And IsEmpty(cellBefore.Value)) Then cellAfter.Interior.ColorIndex = highlightColor cellBefore.Interior.ColorIndex = highlightColor End If Next j Next i If showMessage Then MsgBox "اكتملت المقارنة وتم تلوين الاختلافات في الورقة '" & sheetObject.Name & "'.", vbInformation + vbMsgBoxRight, "" End If ErrorHandler: Application.EnableEvents = True If Err.Number <> 0 And showMessage Then MsgBox "حدث خطأ في الورقة '" & sheetObject.Name & "': " & Err.Description, vbCritical + vbMsgBoxRight, "" End If End Sub Function NotEmpty(cellValue As Variant) As Boolean NotEmpty = Not IsEmpty(cellValue) End Function وفي حدث Worksheet_Change للورقة التي تريدها ، نستخدم الاستدعاء بالشكل التالي :- Private Sub Worksheet_Change(ByVal Target As Range) Dim watchRangeBefore_Sheet1 As Range Dim watchRangeAfter_Sheet1 As Range Dim ws As Worksheet Set ws = Me ' --- حدد النطاقات الخاصة بـ Sheet1 --- Dim beforeAddress_Sheet1 As String Dim afterAddress_Sheet1 As String beforeAddress_Sheet1 = "B3:I14" ' نطاق "قبل" في Sheet1 afterAddress_Sheet1 = "K3:R14" ' نطاق "بعد" في Sheet1 On Error GoTo SafeExit Set watchRangeBefore_Sheet1 = ws.Range(beforeAddress_Sheet1) Set watchRangeAfter_Sheet1 = ws.Range(afterAddress_Sheet1) If Not Intersect(Target, watchRangeBefore_Sheet1) Is Nothing Or _ Not Intersect(Target, watchRangeAfter_Sheet1) Is Nothing Then Call HighlightGradeDifferencesGeneral(sheetObject:=ws, _ rangeBeforeAddress:=beforeAddress_Sheet1, _ rangeAfterAddress:=afterAddress_Sheet1, _ showMessage:=False) End If SafeExit: If Err.Number <> 0 Then End If End Sub لاحظ أنه في كود الاستدعاء داخل الورقة التي تريد التطبيق عليها ، تستطيع تحديد النطاق من - إلى كيفما تشاء ، وطبعاً مع ضرورة تغيير اسم الورقة بدلاً من Sheet1 إلى اسم الورقة الثانية في حال اري الاستدعاء في أكثر من ورقة . هذا سيضمن لك الإستدعاء مع التحديد النطاق ( قبل و بعد ) لكل ورقة ولكن بدالة واحدة مرنة . الملف بعد التطبيق :- درجات المواد.xlsm
  20. شو يعني ، ما فهمت أخي الكريم 😅
  21. وعليكم السلام ورحمة الله وبركاته ،، أهلا بعودتكم أستاذنا الفاضل @منتصر الانسي ، وبعد عودتكم بفكرة جميلة جداً .. فسلمت على هذه الفكرة الجميلة اهتمامك حتى بفكرة الترقيم لللفاتورة جاءت بطريقة ذكية
  22. وعليكم السلام ورحمة الله وبركاته .. حاولت أن أفهم وأن أتبين الغرض والهدف من طلبك ، ولكني لم أنجح ولم أفلح في تخيل الهدف من هذه الحركة عند فتح التقرير . على العموم .. لجعل التركيز على الكومبوبوكس اللي في النموذج List ( وأعتقد أنه من الأسماء المحجوزة لآكسيس ) ، يجب أن نجعل خاصية Modal = Yes للنموذج ، وحيث أننا لا نريد تغيير الخصائص للنموذج بشكل دائم ، فهنا يمكننا استخدام الدالة WindowMode طبعاً مع تحديد نوع أو نمط فتح النموذج بحيث تكون = WindowMode:=acWindowNormal . وعليه فأن الكود النهائي في حدث عند التحميل للتقرير سيكون كالآتي :- Private Sub Report_Load() DoCmd.OpenForm "List", WindowMode:=acWindowNormal Forms("List").Modal = True Forms("List").Combo0.SetFocus End Sub جربه في تقريرك ، وأخبرنا بالنتيجة .
  23. الإجابة من طرفي ستكون نفس الإجابة في الموضوع التالي :-
  24. وعليكم السلام ورحمة الله وبركاته ,, لتعدد طلبك في أكثر من موضوع ، سأحاول شرح عدم إيجادك لأي رد في مشاركاتك بخصوص هذا الموضوع . أولا أخي الكريم وأنا أحد الأشخاص الذين قد قرأت الموضوع وللأمانة لم أفهم المطلوب . حيث أن المعطيات والمطلوب غير مفهومين بشكل واضح . ثانياً وأعتقد أنه ذو أهمية كبيرة ، وهي أن أسماء الحقول باللغة العربية ومعظمها بالأنجليزية .... إلخ . أضف الى ذلك طريقتك في بناء الأساسيات ( الجداول ) تحتاج لإعادة ترتيب وتعديل . لذا نرجو منك تصويب ما تستطيع ، وشرح الفكرة والمطلوب بشكل أكثر إيضاحاً . شكراً لك رحابة صدرك في استيعابي وأخذي بروحكم الكريمة
×
×
  • اضف...

Important Information