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

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

  1. علي بن علي

    علي بن علي

    02 الأعضاء


    • نقاط

      4

    • Posts

      84


  2. أبوأحـمـد

    أبوأحـمـد

    03 عضو مميز


    • نقاط

      2

    • Posts

      347


  3. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      2

    • Posts

      9,871


  4. Moosak

    Moosak

    أوفيسنا


    • نقاط

      2

    • Posts

      2,065


Popular Content

Showing content with the highest reputation on 07 يول, 2023 in all areas

  1. هناك عدة طرق يمكن استخدامها لتسريع عمل برنامج الإكسل، ومن بين هذه الطرق: 1. تجنب استخدام الصيغ الثقيلة: يمكن استخدام الصيغ الخفيفة والبسيطة بدلاً من الصيغ الثقيلة التي تستهلك الكثير من الموارد، مثل صيغة SUMIF و SUMIFS و COUNTIF و COUNTIFS. يمكن استخدام صيغ مثل SUM و AVERAGE و COUNT لتجميع البيانات بطريقة أسرع. 2. تقليل تعدد الصيغ المشابهة: يمكن تجنب تكرار الصيغ المشابهة في الصفوف والأعمدة المجاورة، واستخدام النماذج والنسخ الذكي عند الحاجة. 3. تقليل عدد الروابط بين الصفحات: يمكن تجنب الروابط الزائدة بين الصفحات والتأكد من استخدام الروابط المطلوبة فقط. 4. تعطيل التنسيق التلقائي: يمكن تعطيل التنسيق التلقائي لتحسين سرعة العملية. ويمكن تعطيل هذا الخيار من خلال الذهاب إلى خيارات الإكسل، ثم اختيار علامة التبويب "المراجع الخاصة"، ثم إزالة علامة الاختيار من خيار "تحديد خلايا بشكل تلقائي". 5. تحسين الأداء العام للجهاز: يمكن تحسين أداء جهاز الكمبيوتر الخاص بك عن طريق تحديث برامج التشغيل، وتنظيف الذاكرة والقرص الصلب وإلغاء تثبيت البرامج غير الضرورية، وتقليل عدد النوافذ المفتوحة وعدم تشغيل البرامج الأخرى أثناء استخدام الإكسل. 6. استخدام جداول محورية: يمكن استخدام جداول محورية لتحليل البيانات بطريقة أسرع وأكثر فعالية، ويمكن تخصيص الجداول المحورية لتلبية احتياجات البيانات المحددة. 7. استخدام البرامج الإضافية: يمكن استخدام البرامج الإضافية المتاحة لتحسين وظائف الإكسل وجعلها أكثر فعالية، مثل البرامج الإضافية التي تساعد على تحليل البيانات أو تحسين عمليات الرسوم البيانية. هذه بعض الطرق التي يمكن استخدامها لتسريع عمل برنامج الإكسل. يمكن استخدام هذه الطرق بمفردك أو مجتمعة لتحسين أداء الإكسل وجعله أكثر فعالية في إدارة البيانات. ومن اعدادات الإكسيل يمكنك تحسين أداء برنامج الإكسل من خلال بعض الإعدادات والخيارات التي تتوفر في البرنامج، ومن بين هذه الإعدادات: 1. تعطيل تحميل الصور والرسوم البيانية بشكل تلقائي: يمكن تعطيل خيار تحميل الصور والرسوم البيانية بشكل تلقائي في إعدادات الإكسل، وذلك من خلال الذهاب إلى علامة التبويب "خيارات"، ثم اختيار "تعديل الخيارات"، ومن ثم اختيار "مراجع الويب"، وإلغاء علامة الاختيار من خيار "تحميل الصور والرسوم البيانية". 2. تعطيل الإطارات الحية: يمكن تعطيل الإطارات الحية في إعدادات الإكسل، وذلك من خلال الذهاب إلى علامة التبويب "خيارات"، ثم اختيار "تعديل الخيارات"، ومن ثم اختيار "عرض"، وإلغاء علامة الاختيار من خيار "الإطارات الحية". 3. تعطيل خيارات الحماية: يمكن تعطيل بعض خيارات الحماية المتاحة في الإكسل، وذلك من خلال الذهاب إلى علامة التبويب "خيارات"، ثم اختيار "تعديل الخيارات"، ومن ثم اختيار "الأمان"، وتعيين مستوى الأمان على "متوسط" بدلاً من "عالي". 4. تقليل عدد الملفات المفتوحة: يمكن تقليل عدد الملفات المفتوحة في الإكسل في نفس الوقت، وذلك من خلال إغلاق الملفات التي لم يعد الحاجة إليها، والتأكد من عدم فتح الملفات التي تحتوي على الكثير من البيانات عندما لا تكون ضرورية. 5. تغيير حجم الصفحة: يمكن تغيير حجم الصفحة الافتراضي في الإكسل من الحجم الكامل إلى حجم أصغر، وذلك من خلال الذهاب إلى علامة التبويب "عرض"، ثم اختيار "حجم الصفحة"، وتعيين الحجم المطلوب. 6. تعطيل الترقية التلقائية: يمكن تعطيل خيار الترقية التلقائية في الإكسل، وذلك من خلال الذهاب إلى علامة التبويب "خيارات"، ثم اختيار "تعديل الخيارات"، ومن ثم اختيار "موثوقية المراجع"، وإلغاء علامة الاختيار من خيار "تحديث الرابط التلقائي". هذه بعض الإعدادات التي يمكن تعديلها في الإكسل لتحسين أدائهذه بعض الإعدادات التي يمكن تعديلها في الإكسل لتحسين أدائها. ومن المهم الإشارة إلى أنه يمكن أن تختلف هذه الإعدادات والخيارات وفقًا لإصدار الإكسل ونظام التشغيل الذي تستخدمه. لذلك، يجب أن تتحقق من المساعدة الخاصة بإصدار الإكسل الذي تستخدمه لتحديد الخيارات والإعدادات المتاحة لك.
    3 points
  2. أخي الخطيب إذا أنت مسوي الملف الأصلي فمصيبة انك ما فهمت وإذا مو أنت اللي مسويه فأرجو اللي مسويه لك يشرح لك قارن بين مخرجات اللي مسويها يدوي ومخرجات الملف اللي شويت لك حتى أنت عندك خطأ
    1 point
  3. سيدي الفاضل ، الطريقة هذه لا تعمل التصفية ولا علاقة لها بالتصفية اصلا !! وهناك الكثير من الطرق ، منها : DoCmd.OpenReport "betweendates", acViewReport, , "days =#" & Me.start & "#" . ولكن ، انسى كل ما قلته اعلاه ، فمصدر بيانات تقريرك يعمل بنفس الطريقة التي عملتها لك في مشاركتي السابقة 😁
    1 point
  4. السلام عليكم - تفضل New Microsoft Excel Worksheet (1).xlsm
    1 point
  5. نعم، البيانات موجودة في المرفق، ولكن ليس مثال عن طلبك 🙂 استغنيت عن فلتر النموذج ، ووضعت معيار التصفية في الاستعلام مصدر بيانات النموذج ، هكذا : . وعملت نفس المعيار في الاستعلام مصدر بيانات التقرير. 1575.1.exemple.accdb.zip
    1 point
  6. اضف للكود في محرر الأكواد وضع هذا السطر قبل السطر الذي يشير الى الخطاء تماماً الكود On Error Resume Next
    1 point
  7. تقومان بفحص تقويم الـ vba ونوع المدخل، فهي تساعد المستخدم كثيرا وتجنبه الأخطاء إن شاء الله. عملت تجاربي عليها، ويمكنكم اجراء المزيد من التجارب. Option Compare Database Option Explicit Function Greg2Hijri(GregDate As Variant, _ Optional dFormat As String = "yyyy/mm/dd") As Variant Dim CurCal As VbCalendar On Error Resume Next CurCal = Calendar Greg2Hijri = Null '"WrongInput" If Calendar = vbCalGreg And (VarType(GregDate) = vbDate Or _ VarType(GregDate) = vbLong) Then Calendar = vbCalHijri Greg2Hijri = Format(GregDate, dFormat) ElseIf VarType(GregDate) = vbString Then Calendar = vbCalGreg If IsDate(GregDate) Then Greg2Hijri = CDate(GregDate) End If End If Calendar = CurCal End Function '------------------------- Function Hijri2Greg(HijriDate As Variant, _ Optional dFormat As String = "yyyy/mm/dd") As Variant Dim CurCal As VbCalendar On Error Resume Next CurCal = Calendar Hijri2Greg = Null '"WrongInput" If Calendar = vbCalHijri And (VarType(HijriDate) = vbDate Or _ VarType(HijriDate) = vbLong) Then Calendar = vbCalGreg Hijri2Greg = Format(HijriDate, dFormat) ElseIf VarType(HijriDate) = vbString Then Calendar = vbCalHijri If IsDate(HijriDate) Then Hijri2Greg = CDate(HijriDate) End If End If Calendar = CurCal End Function '-------------------------------------------------------------------- Sub TestingDateConverting() Dim CurCal As VbCalendar CurCal = Calendar Debug.Print "Greg2Hijri" Calendar = vbCalGreg Debug.Print Greg2Hijri(Date, "yyyy-mmmm-dd") Debug.Print Greg2Hijri(CLng(Date), "yyyy mm dd") Debug.Print Greg2Hijri("06/07/2023") Debug.Print "-----------" Calendar = vbCalHijri Debug.Print Greg2Hijri(Date, "yyyy-mmmm-dd") Debug.Print Greg2Hijri(CLng(Date), "yyyy mm dd") Debug.Print Greg2Hijri("06/07/2023") Debug.Print "-------------------------------" Debug.Print "Hijri2Greg" Calendar = vbCalHijri Debug.Print Hijri2Greg(Date, "yyyy-mmmm-dd") Debug.Print Hijri2Greg(CLng(Date), "yyyy mm dd") Debug.Print Hijri2Greg("18/12/1444") Debug.Print "-----------" Calendar = vbCalGreg Debug.Print Hijri2Greg(Date, "yyyy-mmmm-dd") Debug.Print Hijri2Greg(CLng(Date), "yyyy mm dd") Debug.Print Hijri2Greg("18/12/1444") Debug.Print "-------------------------------" Calendar = CurCal End Sub
    1 point
  8. بما انك مبتدا اليك حل اخر ربما يناسبك ميزته انه سيعفيك من تعديل الاكواد واظافة اسماء الشيتات حيث يتم كل شيء تلقائيا دون تدخل منك يكفي فقط اظافة اي قيمة تعجبك امام الشيت المرغوب جلب بياناته (لم اقم بتحديدها لتبقى لك الحرية التامة في الاستخدام ) اليك رابط طريقة الاستخدام للتوضيح نسخ البيانات من عدة اوراق عمل بشرط تحديدها في عمود (streamable.com) الاكواد المستخدمة Sub All_School() Dim wsArr() As String Dim sh&, Y&, c As Range, Rng2 As Range, R As Range Dim a As Long, rng As Long, b As Long, J As Long, LastRow As Long Dim ST1 As Worksheet, Dest As Worksheet Application.ScreenUpdating = False Set Dest = Sheets("All_School") For Each ST1 In Sheets If ST1.Name <> Dest.Name Then Set R = Dest.Range("AA:AA").Find(ST1.Name, , xlValues, xlWhole, , , False) If Not R Is Nothing Then If Dest.Range("AB" & R.Row).Value <> "" Then LastRow = Dest.Cells(Rows.Count, "B").End(xlUp).Row + 1 J = Dest.Range("AA" & Rows.Count).End(xlUp).Row Set Rng2 = Dest.Range("AB2:AB" & J) If Application.WorksheetFunction.CountIf(Dest.Range("AB2:AB" & J), "<>") > 0 Then For Each c In Rng2 If c Then If c <> "" Then ReDim Preserve wsArr(0 To sh) wsArr(sh) = c.Offset(, -1).Value sh = sh + 1 Else Exit Sub End If End If Next Dest.Range("A5:X" & LastRow).ClearContents For K = LBound(wsArr) To UBound(wsArr) With Worksheets(wsArr(K)) .Activate a = Range("A" & Rows.Count).End(xlUp).Row ws = Range("B5:X" & a) End With b = Dest.Range("B" & Rows.Count).End(xlUp).Row With Dest.Cells(b + 1, "B") .Resize(UBound(ws, 1), UBound(ws, 2)) = ws End With Next Dest.Activate For f = 5 To Dest.Cells(Rows.Count, "B").End(xlUp).Row If Dest.Cells(f, "B").Value <> "" Then Dest.Cells(f, "A").Value = f - 4 End If Next f End If Exit Sub End If End If Else MSG = MsgBox("المرجوا التأكد من أسماء أوراق العمل المرغوب جلب البيانات منها ", vbOKOnly + vbExclamation + vbDefaultButton1 + vbApplicationModal, "انتباه") End If Next End Sub هدا الكود في حدث شيت ("All_School") Private Sub Worksheet_Activate() Call ListSheets End Sub ''''''''''''''''''''''''''''''''''''''''''''' Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range, LastRow As Long Dim Dest As Worksheet: Set Dest = Sheets("All_School") If Target.Column = 28 Then LastRow = Dest.Range("aa" & Rows.Count).End(xlUp).Row Application.EnableEvents = False For Each rng In Range("AB2:AB" & LastRow) If rng.Value <> "" And rng.Offset(, -1).Value <> "" Then Call All_School End If Next If Application.WorksheetFunction.CountIf(Sheets("All_School").Range("ab2:ab" & LastRow), "<>") = 0 Then Dest.Range("A5:x1000").ClearContents End If Application.EnableEvents = True End If End Sub وهدا في موديول Sub ListSheets() '("AA:AB") في حالة نقل الكود الى ملف اخر تأكد من وجود الجدول في نفس الاعمدة المدكورة '("Table1") وتطابق اسمه مع الاسم الموجود داخل الكود Dim x As Integer Dim WSdata As Worksheet Dim ws As Worksheet: Set ws = Sheets("All_School") Application.ScreenUpdating = False Dim tbl As ListObject Set tbl = ws.ListObjects("Table1") With tbl.DataBodyRange If .Rows.Count > 1 Then .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Rows.Delete End If End With tbl.DataBodyRange.Rows(1).ClearContents x = 2 For Each WSdata In Worksheets If WSdata.Name <> ws.Name Then ws.Cells(x, 27) = WSdata.Name 'column AA x = x + 1 End If Next End Sub Test MH.xlsm Test MH.xlsm
    1 point
  9. وكنوع من التجديد هذه محاولة الاعتماد على النسب المئوية وحفظ المعادلة والإشارة لها بالاسم =6250*MIN(IF((ورقة1!$B2/6250)*100<0;40;(ورقة1!$B2/6250)*100);40)/100 001تقسم قيمه الدين (1).xlsx
    1 point
  10. ما شاء الله افكار رائعة من الجميع وهذه محاولتي المتواضعة يمكن كتابة هذه المعادلة في الخلية D3 وسحب المعادلة يسارا ثم اسفل لتطبق على الجميع =IF($B3>SUM($D$2:D$2),D$2,$B3-SUM($C3:C3)) بالتوفيق
    1 point
  11. السلام عليكم اخى الكريم بن علية حاجى .. دمت لنا تزدنا من علمك وكرمك اخى الفاضل ابو احمد اشكرك على الاضافة الرائعة واسمحوا لى ان اثرى الموضوع ببعض ماتعلمته منكم 1تقسم قيمه الدين.xlsx
    1 point
  12. الحمد لله الذي بنعمته تتم الصالحات
    1 point
  13. Version 2.0.0

    235 تنزيل

    السلام عليكم ورحمة الله وبركاته يسرني اليوم أن أقدم لكم هذه الهدية المتميزة والمتواضعة ( زاد المثابر للحصول على أسماء العناصر) هذه الأداة صممتها بفضل الله في أكسس تقوم بإحضار وسرد أسماء العناصر لك لكي تستطيع نسخها ولصقها في أي مكان تريد بكل سهولة ويسر 🙂 شخصيا أستفدت كثيرا منها وسهلت علي الكثير من الجهد وقلصت من وقت العمل بحمد الله وفضله. وهنا اختصرت على نفسي الكتابة وقمت بشرح الأداة مرئيا 🙂 متابعة ممتعة 😊👌🏼 ولا أستغني عن آراءكم وملاحظاتكم .. 🙂
    1 point
  14. حاولت أسويها وحدي ولو بشكل (مشي حالك ) .. لكن الظاهر حتى أنا قهوتي ما ضاربة في المخيخ 😆 خلاصة ما أريد توصيله لك : تحويل الكود إلى دالة . 🙂 شي من جنس هذي مثلا : Public Function DateFromTable(myDate As Date, Taqweem As String, WhatDatePart As String) As Date Select Case WhatDatePart Case Is = "Weekday" DateFromTable = DLookup(Taqweem, "tbl_Months", "[Months_Number]=" & Weekday(myDate)) Case Is = "Month" DateFromTable = DLookup(Taqweem, "tbl_Months", "[Months_Number]=" & Month(myDate)) DateFromTable = Day(myDate) & " " & DateFromTable & " " & Year(myDate) End Select End Function
    1 point
×
×
  • اضف...

Important Information