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

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

  1. Foksh

    Foksh

    أوفيسنا


    • نقاط

      9

    • Posts

      3713


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      5

    • Posts

      9981


  3. محمد هشام.

    محمد هشام.

    الخبراء


    • نقاط

      5

    • Posts

      1815


  4. AbuuAhmed

    AbuuAhmed

    الخبراء


    • نقاط

      4

    • Posts

      1074


Popular Content

Showing content with the highest reputation on 01/30/25 in all areas

  1. وعليكم السلام ورحمة الله نعالى وبركاته دالة IFS هي دالة موجودة في إصدارات Excel الحديثة ولكنها غير مدعومة في Excel 2019 يمكنك استخدام دوال أخرى مثل IF المتداخلة لتحقيق نفس الوظيفة على سبيل المثال =IF(A2="","",IF(A2<5,"ضعيف",IF(A2<10,"متوسط",IF(A2<15,"حسن","ممتاز")))) أو =IF(A2="","",CHOOSE(MATCH(A2,{0,5,10,15},1),"ضعيف","متوسط","حسن","ممتاز")) يمكنك تعديل هذه الصيغ لتشمل العديد من الشروط المتداخلة حسب حاجتك إذا كنت ترغب في محاكاة دالة IFS باستخدام VBA يمكننا كتابة دالة مخصصة تقوم بالتحقق من عدة شروط في تسلسل مشابه لدالة IFS في Module قم بلصق الكود التالي Function IFS_Formula(ParamArray tmp() As Variant) As Variant Dim i As Integer For i = LBound(tmp) To UBound(tmp) Step 2 If tmp(i) Then IFS_Formula = tmp(i + 1) Exit Function End If Next i IFS_Formula = CVErr(xlErrValue) End Function واستخدام الدالة التالية =IFS_Formula(A2="","",A2<5,"ضعيف",A2<10,"متوسط",A2<15,"حسن",A2>=15,"ممتاز") في حالة لديك حاجة مستمرة لاستخدام دالة IFS فإن الحل الأكثر فعالية سيكون الترقية إلى Excel 2021 رابط التحميل https://www.mediafire.com/file/2iky3sdt2ojv6ag/Office_2016-2021-x86_x64-EN_FR.M-HICHAM.rar/file حيث تكون هذه الدالة مدعومة بشكل كامل بالتوفيق............. TEST-IFS.xlsb
    3 points
  2. اخوي ابو احمد شكرا جزيلا لك على هذا التحليل ، ولكن عندي اضافة : فكرة تحديث جميع البيانات الى 0 كانت بسبب فكرة اخونا الشايب ، ولكن للاختيار بين السجلات ، فيجب ان يكون عندنا كود محلي ، اي بمعنى آخر ، يجب عمل كود لتحديث الكل في اول اختيار ، ومنها فيجب ان يكون هناك كود آخر للتنقل العادي. اخوي ابو عارف: CurrentDb.Execute تعمل مع الاصدارات القديمة للاكسس ، ولكن مشكلتها انها لا تعطيك رسالة الخطأ (اذا كان فيه خطأ) ، فتعتقد انها لا تعمل!! والخطأ الذي حدث لمعظم الاكواد اعلاه ، هو في تحديث سجل مقفل (السجل الذي عليه حقل y_n الحالي). و كود "Do While Rc > 0" يكون جدا بطيء في العمل على سجلات التجربة بمئات الألاف او اكثر. واعتقد بهذه النتائج ، اصبح لدى اخونا abofayez1 عدة خيارات يختار منها ما يناسبه. ويا ابو احمد ، اذا لقيت صورتي في بريدك ، فمو شرط معناه اني زعلان من ان كودي طلع الثاني في اختباراتك جعفر
    2 points
  3. سأرجع لكم الليلة إن شاء الله لتقديم بعض الملاحظات، مرفع لكم قاعدة البيانات بدون سجلات ومع بعض التعديلات في الأكواد لإدخال باقي المشاركين في المقارنة، ولكن للأسف تم استبعاد كود مشاركين اثنين حيث كانت نتائجهما خاطئة. 1624.Stress_Test_20.mdb
    2 points
  4. بسم الله الرحمن الرحيم السلام عليكم ورحمه الله وبركاته اساتذتي واخوتى هذا الملف به فهرس لجميع المنتدي ليسهل البحث للاعضاء يوجد فورم يمكنك البحث بها كما يمكنكم استخدام الفلتر العادي وبمجرد الضغط على اي نتيجه من نتائج البحث يتم فتح صفحتها في المنتدي ولا انسي فضل استاذي الكبير ياسر خليل على المساعده في عمل الملف تم تحديث الملف يوم الخميس الموافق 10 - 04 - 2025 فهرس منتدي الاكسيل.xlsb
    1 point
  5. السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) 📌 أقدم لكم اليوم فكرة قد تكون ليست بالجديدة ، ولكنها بالحديثة و بطريقة فوكشية ▫▪◽◾◻◼. الكثير من المواضيع التي تحدثت عن كيفية رفع ملفات المستخدم على جوجل درايف أو غيره من المواقع التي تقدم مساحات سحابية متعددة الخدمات لمستخدميها .. اليوم وبتوفيق من الله ، تم إنشاء هذه الأداة للتعامل مع جوجل درايف Google Driveحصراً ، لكونه يقدم مساحة 15 جيجا بايت لمستخدميه . ما كان يؤرق الكثيرين هو أن جوجل أو غيره من مقدمي الخدمة المشابهة يقوم بتعديل سياسته وقوانينه كل فترة . لكن هنا وبهذه الأداة المجانية تم حل المشكلة بعد فحصها مراراً وتكراراً (متمنياً ذلك) . الفكرة في الأداة تعتمد على حساب جوجل أو Gmail شخصي . ما يلزم المستخدم هنا تطبيق الخطوات البسيطة التالية حسب الصور أو الفيديو في هذا الرابط . 📌 عند فتح الأداة لأول مرة ، سيساعدك معالج الإنشاء بجميع الخطوات ( خطوة بخطوة ) وستظهر لك هذه الرسالة :- 📌 عند النقر على Yes ، ستظهر لك رسالة الإرشاد الأولى كالتالي :- 📌 سيتم فتح المتصفح لديك على الرابط الخاص بإنشاء الخدمة .. وللمتابعة دون الإطالة ، أترككم مع الصور و الخطوات خطوة بخطوة . 📌 عند الإنتهاء من تنفيذ الخطوات والحصول على رمزي الـ ( CLIENT ID و CLIENT SECRET ) . ✨ سيتوجه بك معالج الإنشاء للخطوة قبل الأخيرة كالآتي :- 📌 هنا يطلب منك لصق رمز CLIENT ID الذي حصلت عليه من تسلسل الخطوات السابقة . ثم بعد لصقه والضغط على OK ، ستظهر لك الرسالة التالية :- 📌 والتي يطلب منك لصق CLIENT SECRET كما في الصورة أعلاه . ✨ الآن الخطوة الهامة والتلقائية ، وبعد لصق الرمزين الخاصين بحسابك في جوجل درايف ( لا تقم بمشاركتهم مع أي أحد ) ، سنهب للحصول على رمز التفويض مرة واحدة فقط ! وهذا يعني أنك لن تحتاج إليه مستقبلاً . انظر الصورة التالية :- 📌 عند النقر على موافق ، سيتم فتح متصفحك على رابط خاص في جوجل لتمنح بريدك الإلكتروني الذي استخدمته في إنشاء الخدمة سابقاً كامل الصلاحية لإستخدام خدمات جوجل درايف . وطبعاً بالمتابعة وتأكيد الموافقة ، ستحصل على رمز التفويض الخاص بك و لمرة واحدة فقط ولن تحتاجه فيما بعد ، فتقوم بنسخه ولصقه في رسالة التأكيد التالية :- الآن وبفضل الله ، ستظهر لك رسالة " تم التفويض بنجاح" ، وبهذه الخطوة تم ربط آكسيس بحساب جوجل درايف الخاص بك ، وستظهر لك واجهة الأداة كما في الصورة أدناه . وما يلي شرحاً سريعاً لمميزاتها . مميزات الأداة :- تتيح لك الأداة رفع الملفات بأي امتداد وبأي حجم ؛ إلى أي مجلد تحدده في حسابك على جوجل درايف ، أو في الملف الرئيسي عند عدم اختيارك لمجلد محدد . والمجلدات التي في حسابك ستظهر لك عند النقر على زر "مجلداتي" ، ثم من قائمة الكومبوبوكس ستختار المجلد الهدف لرفع الملف اليه . زر "إختيار ملف" لإختيار الملف الذي ترغب برفعه على جوجل درايف . زر "معاينة" مخصص لمعاينة الملف حسب الرسالة التي ستظهر لك . زر "مسح الحقول" لتفريغ العناصر من قيمها . زر "ارفع الملف" والذي من خلاله ستقوم بتنفيذ عملية رفع الملف إلى حسابك في جوجل درايف . بعد إتمام عملية الرفع بنجاح ، يتم عرض المساحة المستخدمة من المساحة التخزينية لحسابك ( وهي 15 جيجا ) ، والنسبة المئوية للمساحة في عنوان النموذج ، كما في الصورة أدناه لعملية الرفع . زر "نسخ الرابط" لنسخ الرابط بعد أن تمت عملية الرفع بنجاح ( لإستخداماتك الشخصية وحاجتك لاحقاً ) . وفيما يلي ، صورة سريعة لعملية رفع صورة على سبيل المثال : ملف الأداة بنسختين .. نسخة 64 بت نسخة 32 بت Uploader.zip Uploader 32.zip
    1 point
  6. اللهم بارك لنا في شعبان وبلغنا رمضان فلنكن أكثر احترافية اضطررت لعمل الاختبار والمقارنة استخدام عدد سجلات ضخم لتوسيع مقدار الفرق بين الشفرات وكما ذكرت لكم أن السجلات بلغت مليون ونصف سجل. اضطررت للتعديل على الشفرات بعضها مشترك كتعطيل تنبيهات النظام عند تحديث الجدول مثل مساحة التخزين ومساحة الذاكرة وهي لا تؤثر على وقت الأداء وبدونها سيزداد الوقت مع ظهور الرسائل ومن ثم إغلاقها. وبعضها غير مشترك لإعطاء فرصة لدخول الشفرات في المقارنة والتي بدونها ستستبعد حيث سيكون البون واسعا. رفعت لكم القاعدة بتعديلات كما استخدمتها في الفحص حتى لا أكون عرضة "للاتهامات" بالتلاعب بالنتائج. قمت قبل بدء عمل أي شفرة بعد فتح النموذج بالذهاب إلى آخر سجل ثم العودة إلى أول سجل وعمل Maximize وأحيانا أكررها عندما أشعر أن النظام لا يزال يقوم بتجهيزاته، ثم أذهب إلى الصفحة التي تحوي السجل مئة للتأكد من اختفاء العلامة وتبديل قيمة السجل 99. أرجع للجدول لفحص نتائج حقل y_n وهل تمت بنجاح. ملاحظات: - شفرتي وشفرة الأستاذ جعفر هي نفسها تماما عدا عبارة واحدة في البداية لتحديث السجل قبل تشغيل عبارة الـ sql فلذلك ليس هناك فرقا يذكر وكان المفترض أن استبعد أحدهما في المقارنة. - شفرة الأستاذ أبو عارف، عند تبديل قيمة السجل 99 تحتفظ بقيمة السجل 100 وربما بسبب "الحدث" وطريق حفظ السجل، لذلك تم استبعادها، وكذلك حتى لو تم إصلاح الخلل فلن يكون أداؤها سريعا لأن عبارة التحديث لكل السجلات. - شفرة الأستاذ فوكش لا تقوم بتحديث الحقل، لذلك تم استبعادها. - شفرتا الأستاذين خليفة وأبوجود مشكلتهما في عدم قيامهما بالفلترة قبل التحديث. توصيات: - لا بد من عمل الفلترة قبل التحديث الجماعي لتسريع المعالجة. - يفضل عمل فهرس للحقول التي يتم فيها البحث والفلترة للتسريع أيضا. - مستغرب أن شفرتي أبوجود وخليفة أعطتا وقتا أطول مع الحقل المفهرس، وهذه تحتاج إلى تحليل ودراسة. سامحوني قصدت المنفعة وهذا اجتهادي وشكرا للجميع واللي زعل مني يرسل لي صورته لأقبل رأسه قبل أن أعيدها له.
    1 point
  7. وعليكم السلام ورحمة الله وبركاته ,, تفضل يا صديقي :- Private Function OpenDatabaseAndQuit(dbName As String) Dim currentPath As String Dim dbPath As String currentPath = Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\")) dbPath = currentPath & dbName & ".mdb" Shell "cmd /c start " & dbPath, vbHide Application.Quit End Function Private Sub أمر22_Click() OpenDatabaseAndQuit "A" End Sub Private Sub أمر3_Click() OpenDatabaseAndQuit "B" End Sub الملف بعد التعديل Data.zip
    1 point
  8. السلام عليكم جرب الملف تعديل كود.xlsm
    1 point
  9. أعتذر لك أخى الكريم الخطأ من عندى فى تنفيذ الخطوات الآن تم عمل اللازم شكرا جزيلا لك وبارك الله فى صحتك وزادك من فضله
    1 point
  10. حسب مافهمت وحسب معرفتي المتواضعه نهائي 3.rar
    1 point
  11. وعليكم السلام ورحمة الله وبركاته .. تفضل أخي الكريم ، هذا مثال ، ولكن في المرات القادمة حاول ارفاق ملف من واقع مشروعك ، حتى لا ندخل في متاهة اختلاف الجداول بتصميمها وفكرة انني لم اعرف تطبيق الفكرة على مشروعي ...... الخ Tost.accdb
    1 point
  12. وعليكم السلام ورحمة الله وبركاته .. اجعل هذا الاستعلام مصدر سجلات النموذج SELECT tbnum.id, tbnum.numx, IIF(tbnum.numx - INT(tbnum.numx) > 0, 'A', 'B') AS resultx FROM tbnum;
    1 point
  13. يعني اقتربنا من تحقيق الهدف ،،
    1 point
  14. استاذي الغالي @kkhalifa1960 تحياتي وتقديري لك واعتذر منك تم ارفاق نسخة معدلة باللغة الانجليزية يرجى الاطلاع تحياتي 🌹 الايجارات.rar
    1 point
  15. الحقيقة ربما انت من فهم وجهة نظري فتركزي كان على الالغاء المتعدد وبناء عليه قمت بتجريب الاكواد على سجلات متعدد بحد اقصى 180000 سجل وكانت النتائج متقاربة مع افضلية بسيط لاحد الاكواد بالنسبة لمرفقكم الاخير ساقوم بالتجربة لاحقا اخير لفت نظري في مشاركتكم استاذي السطر السادس حيث تم حجز متغيير ولم يتم استخدامه او اسناد قيمه له اخونا الشايب
    1 point
  16. السلام عليكم و رحمة الله و بركاته اساتذتنا الكرام ، حقاً كثرة مشاركات في موضوع جاب خير و بركة و سبب اتباه الى نقاط ما كنا ننتبه لهم و منهم وجهة نظر الأستاذ/ @جعفر (سرعة في الأداء دون مساس بجدول) و وجهة نظر الأستاذ/ @شايب (إلغاء محددات متعددة سواء دخل مباشر من جدول أو من قبل مستخدم آخر على الشبكة أو أي سبب آخر لان الحقل أساسا قابل حفظ المتعدد) في تعديل الأخير عملت الكود و جربته على 310000 سجل يمكن اكثر ولكن يزيد من حجم مسموح في المنتدى الكود و المرفق Dim src As String src = Me.RecordSource Dim Rc As Integer Dim rst As Recordset Set rst = Form.RecordsetClone Rc = DCount("[y_n]", src, "[y_n]=-1") With rst Do While Rc > 0 .FindFirst "[y_n]=-1" .Edit !y_n = 0 .Update Rc = Rc - 1 Loop End With Hr_data.rar
    1 point
  17. على حسب ما فهمت , وإن شاء الله يكون قريب من اللي محتاجه .. جرب الاستعلام التالي مصدر سجلات التقرير SELECT tbl_note_administrative.*, IIf([annet]=[Forms]![frm_imprimer_note_administratif]![annet1],1,2) AS RecordType FROM tbl_note_administrative WHERE (((tbl_note_administrative.annet)=[Forms]![frm_imprimer_note_administratif]![annet1] Or (tbl_note_administrative.annet) In (SELECT TOP 3 t.annet FROM tbl_note_administrative t WHERE t.annet < [Forms]![frm_imprimer_note_administratif]![annet1] AND t.situation_special="القيام بالخدمة" AND t.situation_poste_travail="موظف" ORDER BY t.annet DESC )) AND ((tbl_note_administrative.situation_special)="القيام بالخدمة") AND ((tbl_note_administrative.situation_poste_travail)="موظف")) ORDER BY tbl_note_administrative.annet DESC;
    1 point
  18. بما أن الموضوع حماسي ، وتبارك الله مشاركات وأفكار عظيمة ,, أشارك معكم فكرة على الهامش Private isProcessing As Boolean Private Sub y_n_BeforeUpdate(Cancel As Integer) If isProcessing Then Exit Sub isProcessing = True With Me.RecordsetClone .FindFirst "[y_n]=-1" .Edit !y_n = 0 .Update End With isProcessing = False End Sub
    1 point
  19. أشكرك كثيرا سأقوم بإعادة المقارنة بعد عمل فهرس لحقل y_n توني أنتبه أن حلك الثاني نفس عبارة sql لحلي وكأني عملت نسخ ولصق لحلك! لم أنتبه له من قبل!! صدق المثل القائل "إذا عرف السبب بطل العجب" 🙂
    1 point
  20. بسبب تقارب طرق الكود ، تم الاستعانه بـ 300,000 سجل ، ووضع البيانات على كمبيوتر آخر على الشبكة ، وللأسف كود ابو عارف ما اشتغل بالطريقة الصحيحة ، فلم اجربه. الثلاث مرات الاولى ، اشغل الاستعلام ليعمل حوالي 40,000 صح ، ثم اغير في النموذج ، والثلاث مرات التالية ، هي وانا في النموذج ، اختار سجل واعمله صح. والنتيجة بالثواني +----------------+----------------+----------------+ | AbuuAhmed | jjafferr_2 | ابو جودي | +================+================+================+ | 4.43701171875 | 4.421875 | 4.828125 | +----------------+----------------+----------------+ | 4.468994140625 | 4.406005859375 | 4.110107421875 | +----------------+----------------+----------------+ | 4.468017578125 | 4.406005859375 | 4.31201171875 | +----------------+----------------+----------------+ | 0.546875 | 0.468994140625 | 4.31201171875 | +----------------+----------------+----------------+ | 0.531005859375 | 0.468994140625 | 4.31298828125 | +----------------+----------------+----------------+ | 0.546875 | 0.468994140625 | 3.984130859375 | +----------------+----------------+----------------+ جعفر تم الاستعانه بالموقع التالي لعمل الجدول: https://www.tablesgenerator.com/text_tables 1624.Stress_Test.mdb.zip
    1 point
  21. ماشاء الله خلال ثانية تقريبا تم التنفيذ طبعا من الصعب ان اقيس فارق التوقيت بين سرعة تنفيذ الامر بين الاكواد الثلاثة لكون الامر ينفذ بشكل سريع بمجرد النقر بعد زيادة عدد السجلات المختارة الى 120000 سجل اصبح هناك فارق بسيط في السرعة لاحد الاكواد ولكن هذه ليست مفاضلة وانما تجربة تشغيل لغير متخصص
    1 point
  22. مافي داعي لهذه الجزئية ، فالكود يعمل بدونها ، إلا اذا فيه شيء تحب تخبرنا عنه 🙂 وطبعا Me.Refresh = DoCmd.RunCommand acCmdSaveRecord = If Me.Dirty Then Me.Dirty = False واذ تحب تخبرنا عن الخدعة 🙂
    1 point
  23. وعليكم السلام وحمة الله تعالى وبركاته يمكنك تعديله بما يناسبك Option Explicit Sub sav_PDFall() ActiveSheet.Unprotect Password:="saaa" Dim i As Integer Dim folderPath As String folderPath = ThisWorkbook.Path & "\الشهادات" If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath End If For i = 1 To Range("u1") Step 3 Range("h1") = i If i <= Range("u1") Then ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=folderPath & "\" & Range("H1").Value & ".pdf", Quality:=xlQualityMinimum, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End If Next i ActiveSheet.Protect Password:="saaa" End Sub
    1 point
  24. مساهمة طيلة منك اخي الكريم.. سؤالي البسيط ، هل يحتاج انترنت ؟؟ لنجرب مثلاً ، عندي مربع تحرير وسرد اسمه "Drive_Nat" ويضم جنسيات مختلفة 😇 .
    1 point
  25. لانه لا يوجد سجلات للتعديل عليها مرفقى يتم تحديث البيانات وشرط يكون السعر خالى وبما انه تمت الاجابه من قبل اخى خليفه وانت راض عن النتيجه فالحمد لله وبرجاء تعديل تمت الاجابه على المشاركه النهائيه لاخى خليفه التى استوفت جميع الطلبات وليس على ردك وبالنسبه للحسبات الخاصه به تمت الاشاره للاداره وسوف تقوم بابلاغك بالتوفيق
    1 point
  26. بيضيف الدرجات ليس للطلاب الموجودين بيتم اضافاتها كسجلات جديدة انظر الملف المرفق control2025.rar
    0 points
×
×
  • اضف...

Important Information