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

البحث في الموقع

Showing results for 'فورم'.

  • Search By Tags

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • Search By Author

نوع المحتوي


الاقسام

  • الترحيب
    • نرحب بزوار الموقع
  • قسم تطبيقات و لغات مايكروسوفت
    • منتدى الاكسيل Excel
    • قسم الأكسيس Access
    • منتدي الوورد Word
    • منتدى الباوربوينت
    • منتدى الاوتلوك Outlook
    • المنتدى التقني العام و تطبيقات الأوفيس الأخرى
    • إعلانات شخصية للأعضاء
    • قنوات تعليمية وإعلانات دورات تدريبية
  • إدارة المشاريع والبحث العلمي وعلوم البيانات
    • إدارة المشاريع ومحافظ المشاريع
    • البحث العلمي والإحصاء
    • الذكاء الإصطناعي و التنقيب فى البيانات
  • القسم العام
    • قسم الاقتراحات و الملاحظات
    • مشاركات المدونات
    • أوفيسنا على الفيسبوك

الاقسام

  • VBA Code Library
  • قسم الإكسيل
  • قسم الأكسيس
  • قسم الوورد
  • Project Management
  • Self development التطويرالذاتي
  • معلومات مفيدة
  • أدوات عامة

مدونات

  • M-Taher's Blog
  • مدونة محمد طاهر
  • Officena
  • اا الفاروق اا
  • ‎مدونة أخبار التكنولوجيا
  • M-Taher's Blog
  • يحيى حسين's Blog
  • خبور خير's Blog
  • Dr. AbdelMalek Abu Sheikh's Blog
  • m.hindawi's Blog
  • احمدزمان's Blog
  • الحسامي
  • مدونة أ / محمد صالح
  • yahiaoui's Blog
  • عبدالله المجرب's Blog
  • صيد الخواطر
  • حمادة عمر مدونة
  • مدونة جعفر
  • مدونة عادل حنقي
  • مجدى يونس: لمسة وفاء لمنتدى اوفيسنا
  • Excel Expert Financial&Accounting
  • مدونة اعمال ايقونات الماس لمنتدى اوفيسنا
  • رقائق فى دقائق
  • Shivan Rekany
  • Foksh

ابحث عن النتائج فى ......

ابحث عن النتائج التي تحوي ....


تاريخ الانشاء

  • بدايه

    End


اخر تحديث

  • بدايه

    End


Filter by number of...

انضم

  • بدايه

    End


مجموعه


Job Title


البلد


الإهتمامات


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype

  1. السلام عليكم ورحمة الله السادة الكرام الملف المرفق كان في السابق شغال تمام والان ظهرت لي مشكلة لا اعرف سببها وهي عند القيام بالضغط على ايقونة طباعة الارصدة وكتابة التاريخ والضغط على البحث تظهر الصورة المرفقة كانت في السابق لاتظهر ممكن المساعدة وطلب اخر اريد عند تسجيل الاذونات لايتم تسجيل الاذن الا بعد كتابة رقم الاذن وظهور رسالة لابد من كتابة رقم الاذن وشكرا لحضراتكم مشكلة.xlsm
  2. السلام عليكم ورحمة الله السادة الكرام عندي مشكلة حصلت في فورم الطباعة في الملف المرفق لسيادتكم كان كود الطباعة شغال عند اختيار صنف معين او طباعة الارصدة كلها بعد العمل على الملف لفترة اصبح الكود لايعمل وعند الضغط عليه يظهر في خانة تحديد الصنف ( الصنف-وكروشيه)فقط وباقي الاصناف لا تظهر وعند الضغط على طباعة الارصدة كلها لايظهر شئ لاادي ما العمل اتمنى حل مشكلتي وشكرا جدا لحضراتكم طباعة.xlsm
  3. السلام عليكم اساتذتي الكرام تكملة للموضوع الفارط من هنا المطلوب مساعدة في فتح تقرير 10 عند اختيار "تصريح ابوي لقاصر" عن طريق الكود وبدون مصدر سجلات ويخص الابن القاصر فقط اي "العمر اقل من 18 سنة" Database22.rar
  4. هلا باستاذنا الفاضل انا مش بستخدم النماذج القديمه اللى كانت 4 متسابقين بمراحلهم انما تسلسل شغلى كالاتى فورم frm_Options عدد اسئلة المرحله اخترت 10اسئله المفروض ان كل شخص يدخل المسابقه زمن الاجابه سابقا كان لكل سؤال المطلوب انه يكون زمن كلى للاجابه على ال10 اسئله مثلا ليه اللجنه ابدت ملاحظه افرض ان واحد جاوب اول سؤال فى ربع دقيقه وجاله سؤال تانى كان محتاج منه تفكير لمده اكتر من دقيقه فعشان كده طلب الزمن يكون شامل كمية الاسئله على بعضيعنى التعديل لزمن الاجابه بحيث يشمل عدد الاسئله ككل هذا اولا عند بدء مسابقه جديده بيفتح فورم frm_StartExam المفروض ان الشخص المتقدم بيكتب رقمه من البيانات اللى مسجل بها الاعضاء سابقا فى جدول tb_data بيعرض بياناته مثل اسمه ونوع المسابقه او الامتحان المتقدم ليه مسجلهم مجموعه (1) و 2 لو تاكد من بياناته بيدخل المسابقه او الامتحان الخاص به بيفتح فورم frm_QueChoose سابقا كان بيختار سؤال عشوائى سؤال واحد المطلوب دلوقتى يختار عدد الاسئله كلهم لو موجود 10 يختار ال 10 مره واحده بناء على التصنيف ثم فتح نموذج frm_OutQ لعرض الاسئله كان سابقا بغد الضغط على موافق بنختر التالى بيرجع يجيب سؤال جديد عشوائى ويبدا يعد الزمن للسؤال المطلوب بعد الضغط على زر التالى يعرض السؤال والزمن مستمر فى التناقص وهكذا
  5. السلام عليكم ورحمة الله السادة الافاضل محتاج مساعدة في اضافة يوزر فورم جديدة مثل فورم رقم 8 ولكن تختلف في طريقة الطباعة محتاج اطبع ارقام الاذونات سواء اضافة او صرف او مرتجع من خلال 1- من تاريخ الي تاريخ 2- من خلال رقم الاذن نفسه ولسيادتكم وافر التحية مخزن 3.xlsm
  6. العرض الذي يظهر في البحث يظهر كل شيء .. مع التكرار .. بسبب ارتباطه باكثر من جهة ورقم الكتاب الرئيسي فريد .. ويندرج تحته كل شيء يخصه سواء بحثت بالرئيسي او الثانوي او الجهة .. العرض سيكون بمعلومية الرئيسي فقط في مثالك المرفق .. في شاشة البحث بحثت عن 22 فظهر سجلان فقط ثم نقرت مزدوجا على الرقم الرئيسي الذي هو رقم 1 ففتحت لي شاشة العرض على الرئيسي وتحته في الفرعي ظهر 22 ، 23 ،24 .. وفي الفرعي الثاني ظهرت جميع الجهات المحال اليها . بمعنى ان جميع التفاصيل ( جميع السجلات المرتبطة بالكتاب) يتم عرضها في شاشة العرض وليس فورم البحث وهذا الاجراء منطقي . الحلول السابقة كانت تؤدي الغرض ولكنك اردت البحث في القسم وتريدين عرض جميع الكتب لقسم محدد .. لا اعلم ما الغرض من ذلك لأن البحث غالبا يكون على رقم كتاب محدد وللعلم . الحل الاخير هذا يمكنك البحث بجزء من الرقم او الكلمة او جزء من التاريخ الحلول التي قدمتها لك : الحل الأول : البحث بأرقام الكتب الرئيسي والفرعي او جهة محددة الحل الثاني : البحث بأرقام الكتب الرئيسي والفرعي أو تصفية الاقسام لعرض جميع الكتب الخاصة بهذا القسم الحل الثالث : وهو الاخير البحث في اي شيء والانتقال لعرضه في نموذج الادخال الى هنا نفد ما لدي .. وقد يكون للاخوة الاعضاء هنا رأي وحلول أخرى
  7. نعم هي بصغة docx ولكن يبدو المشكلة في الفورم لان به المربعات التي بها المبالغ محمية لاني صراحة عندما جربت فورم اخر وقمت بنزع الحماية وقمت بادخال المعلومات يدويا فتم نقل القيم الى الورد ساحاول معرفة السبب واذا لم اوفق سارفق الملف للتعديل من طرفكم وشكرا لكم
  8. السلام عليكم في المرفق شهادة شكر .. تظهر عندي في برنامجي الاساسي بشكل رائع مع البيانات اللازمة هذه الشهادة هي عبارة عن صورة مكتوب عليها عبارة الشكر المعتادة .. ويتخللها حقول مصدرها الجدول مثل اسم الطالب والسنة والفصل الدراسي واسم المعلمة والمديرة وايضا صور لشعارات خاصة . الى هنا وكل شيء تمام 100% افكر فيما لو تم نشر البرنامج .. فالناس مختلفون في الذوق ووجهات النظر .. فيمكن بعضهم يريد تغيير الخلفية والآخر يريد تغيير النص الثابت في الصورة . لذا طرحت موضوعي هذا اريد ان اجعل الشهادة مرنة .. امكن المستخدم من تغيير عبارة الشكر .. وتغيير الخلفية الخلفية مقدور عليها فقد وضعت بجانب قاعدة البيانات الصورة نفسها مفرغة . ويمكنه تغييرها بما يشاء عنوان الشهادة .. والعبارات اللاحقة : اريد المستخدم ان يكتبها من خلال فورم خاص بشرط امكانية التحكم بنوع الخط ومقاسه ولونه . هل يمكن ذلك على فرضية تحويل الملف الى accde dbs1.rar
  9. تم تعديل المشروع بطريقة مختلفة تماما عن ما كنت افكر به سابقا يمكننا القول الآن ان العمل احترافي الوصف للتعديل الجديد : 1- يدعم فترتين مختلفتين مفتوحتين 2- لا يوجد حد فاصل بين الصباح والمساء .. كل فترة تعمل بشكل مستقل من خلال شاشة واحدة 3- الفترة تبدأ قبل وقت الدخول بساعة وتنتهي بعد وقت الانصراف بساعة ايضا .. 4- لا يمكن التوقيع خارج الوقت المعتبر للفترة .. 5- اذا لم يوقع الموظف خروج .. عند الحضور من الغد يسجل حضور ويبقى حقل خروج الأمس فارغا 6- تم التطبيق على شاشة توقيت الانترنت وعلى شاشة التوقيت المحلي الضوابط : مهم جدا : 1- ادخال البيانات الصحيحة كاملة في فورم التحكم : وقت الحضور الصباحي/وقت الحضور المسائي/ عدد ساعات العمل الصباحي والمسائي والوقت الاضافي ان وجد اكسس هو من يحدد وقت الخروج بناء على وقت الحضور + ساعات العمل 2- تعيين الفترات للموظفين في فورم الأسماء عند انتقال الموظف من الصباح الى المساء فقط يتم تغيير وقته في فورم الاسماء . اذا اردنا ان يعمل الموظف في الفترتين كليهما عليك تسجيله بمعرف جديد ................................. جرب كثيرا ووافني بالنتيجة اذا كل شيء تمام خبرني كي اهديكم المخرج النهائي ChkInOut_NetUp3.rar
  10. السلام عليكم في الملف المرفق فورم وظيفتة استعلام عن بعض البيانات الخاصة بغياب الطلاب ضبطت كل اسماء الازرار واللست بكس ومطابقة باسمائها في الكود ولكن غلبني خطأ لم استطع حله ... مرفق صورة من الخطأ فارجو منكم تجربة الفورم وازالة الخطأ المتكرر Book5.xlsm
  11. السلام عليكم اخواني الأعزاء لدي برنامج الصادر والوارد بعد الانتهاء من تصميمة على جهاز شخصي (لا بتوب) قمت بفتحه في حاسوب مكتبي ظهرت عناصر (الازرار)البرنامج كبيرة جدا وغير منظمة بعد البحث في موقع اوفيسنا و تجربة عدة حلول ، أصبحت مناسبة في الشاشة لكن بعد فتحه في جهاز مكتبي اخر بعض عناصر(الازرار) الفورم المتواجدة في حواف الفورم لا تظهر بسبب الفورم اكبر من الشاشة. اريد يكون الفورم ملائم لشاشات والازرار لا تكون كبيرة وانما صغيرة نفس الحجم الأصلي . اريد الزر يكون ثابت في كل جهاز ولا يتغير والفورم يكون متلائم. اخواني والله لي اكثر من أسبوعين أحاول لحد الان ولا استطعت ارجوكم ساعدوني ولكم مني جزيل الشكر
  12. انا كده بحاول اعمل قاعدة لاضافة البيانات للفواتير الضريبية مثل بورتال الضرائب عملت التصميم والمعادلات وقف معايا نقطتين اولا انا بحاول الصب فورم لاضافة الضريبة يفتح فاضي زي البورتال وعند الضغط علي الزر لاضافة ضريبة يظهر السطر الاول وكل ما اضغط يظهر سطر جديد ثانيا معادلات حساب الضريبة ضريبة الجدول وضرائب اخري تدخل في حساب ضريبة القيمة المضافة مثل المثال المرسل في الصورة لو القيمة عندي 1000 جنية وتم اضافة قيمة مضافة هيبقي قيمة الضريبة 140 جنية طب لو ضفت بعدها ضريبة جدول مثلا 8% هيكون قيمة ضريبة الجدول 80 جنية وتتحول القيمة الاصلية لحساب الضريبة من 1000 الي 1080 لحساب ضريبة القيمة المضافة فقط ثالثا انا حاطط اتنين كمبو بوكس في الصب فورم كمبو فية مجموعة الضرائب العامة وعند الاختيار يحمل البوكس الاخر ب انواع الضرائب اللي تخص الاختيار الاول بس لما بنزل لسطر جديد تختفي القيمة اللي في السطر الاول في الكمبو الثاني مرفق صورة من البورتال للقيم ونفس الصورة من القاعده والقاعده 017 - Copy.accdb
  13. السادة الأفاضل ..أرجو الافادة هل يمكن عمل فورم يقوم بنقل عدد معين من تخصص معين من عامود التخصص لمدرسة معينة الى لجنة معينة ... مرفق جدول للتوضيح ولكم الشكر test ai.accdb
  14. في حالة ادخال عدد كثير من سجلات الى فورم فرعي مستمر ( فورم فرعي مستمر يهتز ) و هذا شيء غير جميل . اريد وقف اهتزاز فورم فرعي مستمر M13.rar
  15. السلام عليكم .. ممكن تعديل على فورم البحث والاضافة بحيث يعتمد على نطاق معين وليس كجدول كما هو موجود في الملف المرفق .. أي يكون النطاق المستخدم في الكود من A1الى اخر صف موجود فيه بيانات مثلا U180 بدل النطاق Tableau1 الموجود في الكود .. ويكون اضافة التسلسل اوتوماتيكي وليس يدويا... وعند حذف حقل من الفورم يقوم بارسال القيد المحذوف الى صفحة المحذوفات في الفورم.. واعادة ضبط التسلسل بعد الحذف وكذلك اضافة عمود صورة الموظف تكون في فولدر نفس مسار المصنف ويحتوي على فولدرات باسم كل موظف تحتوي على ملفات مرفقة صور او pdf وتظهر الصورة لكل موظف في الفورم عند اختياره .. وكذلك وجود زر لاستعراض الفولدر الخاص بكل موظف من الفورم .. تحياتي للجميع منظومة-الشؤون-الادارية.xlsm
  16. لا استاذ يمكن تعديل الاخ الي قبل هو سبب عدم اقتطاع الشهري للقروض بعدما كان يقتطع عادي والان بحكم خبرتكم لم تعرفو اين تكمن المشكلة بالرغم من وجود فورم FrmTransfer1 بقتطع عادي الم يتم التنسيق بينه وبين FrmTransfer الذي به المشكلة ديسمبر فعلا تم الاقتطاع يدويا لو غير تاريخ الجهاز الى شهر جانفي 2026 لأكتشفت المشكلة عند المنخرط رقم 4 او قمت بمسح المبلغ المقتطع لتاريخ 2025/12/01 وقمت بالدحول للفورم FrmTransfer ستجده يبقى فارغا اي الكود لم يقتطع المبلغ استاذ هذه السجلات تنشي من جديد خلال أشهر الاقتطاع فقط ولك دالة النموذج الثاني FrmTransfer1 كمثال اقتطاع
  17. اخي الكريم ذكرت انظر في الكود في فورم FrmTransfer1 بينما البرنامج يفتح على FrmTransfer والكود cmd_Pay_installments موجود في النموذجين لا اخفيك تهت .. اذا العمل على FrmTransfer1 لماذا FrmTransfer موجود ؟ اذا يوجد ازرار غير مهمة احذفها .. هذا مجرد مثال
  18. السلام عليكم هذا برنامج لإجراء اختبارات القبول والمنافسة وقياس الثقافة والمعرفة للمتقدمين لوظائف معينة احببت ان افرد له موضوعا يتم بناؤه وفقا لمقترحات الاعضاء ولمسات وتوجيهات الخبراء الموضوع ملك الجميع لمن اراد ان يدلي بدلوه في المرفق حاليا تم عمل أساسات البرنامج : اولا - الجداول : 1- جدول اسماء الموظفين الذين يتقدمون لاداء الاختبار 2- جدول فرعي للمجموعات 3- جدول لمفاتيح الأسئلة 4- جدول الاسئلة ويشتمل على خيارات الاجابة ورقم الاجابة الصحيحة 5-جدول الاجابات ثانيا - الاستعلامات .. اثنان : واحد لتصفية المفاتيح حسب المجموعة .. والآخر لتصفية الاسئلة حسب المفاتيح ثالثا - النماذج : 1- نموذج دخول المتقدم .. يدخل الرقم القومي ورقم الهاتف لينقله الى : 2- نموذج الاسئلة واختيار الاجابة الصحيحة سجلت اثنين ، محمد .. الرقم القومي =1111 والهاتف = 1234 سعيد .. الرقم القومي = 2222 والهاتف = 1234 محمد في مجموعة المدراء وسعيد في مجموعة المعلمين وطبعا كل مجموعة لها اسئلتها التي تخصها ويمكنهم التغيير عشوائيا واختيار ما يرونه مناسبا من خلال تغيير المفتاح والبحث العشوائي عند النقر على السؤال تظهر خيارات الاجابة في الاسفل الى هنا كل شيء تمام التمام الخطوة او الخطوات القادمة المطلوبة كالتالي : 1- تفعيل الوقت ( العداد ) دقائق وثواني مثلا 10 دقائق في اعلى النموذج اذا انتهت تظهر رسالة بانتهاء الوقت ويتم غلق النموذج 2-لا يمكن الحفظ حتى تكتمل اجابات جميع الاسئلة 3- حفظ الحلول في جدول الاجابات tbl_Answers مع مراعاة اكتمال تعبئة جميع الحقول في الجدول 4- من قدم اختبار لا يمكن له ان يعيد الاختبار مرة اخرى .. ويتم حجبه من فورم الدخول new_test2.rar
  19. لم تجبني على كل حال ندع هذه الاستفسارات للخطوة القادمة تفضل : تم اعداد البرنامج لادخال الدرجات خطوات العمل على البرنامج لأول مرة على الترتيب 1- اعداد المواد وخصائصها في فورم المواد 2-ادخال بيانات الطلاب من فورم تسجيل الطلاب 3- اعداد السنة الدراسية من فورم اعداد السنة الدراسية 4- فتح فورم ادخال الدرجات والبدء بالعمل .................................................... وبما ان الفقرة 1 والفقرة 2 تم عملها فعلا لذا اقرأ جيدا خطواتك التي يجب ان تسير عليها اقول هذا الكلام حتى ابين لك ما يحدث برمجيا عند فتح المثال سيظهر لك فورم البداية اتركه مفتوحا واذهب الى الجداول وافتح جدول الدرجات Tbl_degree_Detail سوف تجده خاليا أغلقه ثم ارجع الى فورم البداية المفتوح وانقر على زر : اعداد الفصل الدراسي سوف يفتح لك فورم الاعداد : انقر على اعداد ثم اغلق الفورم ارجع الى جدول Tbl_degree_Detail وانظر الى النتيجة لقد تم رصد الطلاب وموادهم ولم يتبقى الا ادخال الدرجات اغلق الجدول ....................................... من فورم البداية انقر على زر ادخال الدرجات وابدأ العمل بعد تسجيلك للدرجات كاملة من الفصل الأول وحتى الاختبارات النهائية ارفع مثالك لننتقل للخطوة التالية وهي التعويض والرأفة ملحوظة : يوجد 4 طلاب ... ادخل درجاتهم بحيث يتوفر جميع الحالات irSchool2.rar
  20. السلام عليكم اساتذة طلب مساعدة بخصوص كود عند ظهور فورم C1 اثناء الصغط على زر Antr في مكان الميلاد لكل من الزوح والزوجة والابن علما انهم مستقطبين من فورم واحد وهو C1 والصورة توضح المطلوب WIL.rar
  21. Private Sub cmdSaveTransactions_Click() Call cmdSaveTransactions_Click_Optimized End Sub Private Sub cmdSaveTransactions_Click_Optimized() Dim wsTransactions As Worksheet Set wsTransactions = ThisWorkbook.Sheets("إيرادات ومصروفات") Dim wsCashBox As Worksheet Set wsCashBox = ThisWorkbook.Sheets("صندوق الخزينة") Dim lastRowTransactions As Long Dim i As Long Dim transactionDate As Date Dim transactionAmount As Double Dim dictCashBox As Object ' Dictionary لتخزين بيانات صندوق الخزينة مؤقتًا (التاريخ كمفتاح) Set dictCashBox = CreateObject("Scripting.Dictionary") Dim transactionData As Variant Dim outputArray() As Variant Dim outputRow As Long Dim lastRowCashBox As Long ' تعطيل تحديث الشاشة والأحداث والحساب Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual ' الحصول على آخر صف في شيت الإيرادات والمصروفات lastRowTransactions = wsTransactions.Cells(Rows.Count, "A").End(xlUp).Row + 1 ' حفظ البيانات من الليست بوكس إلى شيت الإيرادات والمصروفات (كما كان) For i = 0 To ListBox1.ListCount - 1 wsTransactions.Cells(lastRowTransactions + i, 1).Value = ListBox1.List(i, 0) wsTransactions.Cells(lastRowTransactions + i, 2).Value = ListBox1.List(i, 1) wsTransactions.Cells(lastRowTransactions + i, 3).Value = ListBox1.List(i, 2) wsTransactions.Cells(lastRowTransactions + i, 4).Value = ListBox1.List(i, 3) wsTransactions.Cells(lastRowTransactions + i, 5).Value = ListBox1.List(i, 4) wsTransactions.Cells(lastRowTransactions + i, 6).Value = ListBox1.List(i, 5) wsTransactions.Cells(lastRowTransactions + i, 7).Value = ListBox1.List(i, 6) Next i ' *** معالجة شيت صندوق الخزينة باستخدام Dictionary لتجميع القيم حسب التاريخ *** ' قراءة البيانات الموجودة في صندوق الخزينة إلى Dictionary lastRowCashBox = wsCashBox.Cells(Rows.Count, "A").End(xlUp).Row If lastRowCashBox > 1 Then transactionData = wsCashBox.Range("A2:D" & lastRowCashBox).Value For i = LBound(transactionData) To UBound(transactionData) Dim dtKey As String: dtKey = Format(transactionData(i, 1), "yyyy-mm-dd") Dim revenueFromSheet As Double: revenueFromSheet = transactionData(i, 3) Dim expenseFromSheet As Double: expenseFromSheet = transactionData(i, 4) Dim previousBalanceFromSheet As Double: previousBalanceFromSheet = transactionData(i, 2) If Not dictCashBox.Exists(dtKey) Then dictCashBox(dtKey) = Array(previousBalanceFromSheet, revenueFromSheet, expenseFromSheet) ' رصيد سابق، إيرادات، مصروفات Else Dim existingData As Variant existingData = dictCashBox(dtKey) existingData(0) = Application.Max(existingData(0), previousBalanceFromSheet) ' نأخذ الرصيد السابق الموجود (قد يكون تراكمي) existingData(1) = existingData(1) + revenueFromSheet existingData(2) = existingData(2) + expenseFromSheet dictCashBox(dtKey) = existingData End If Next i End If ' تحديث Dictionary ببيانات المعاملات الجديدة من الليست بوكس For i = 0 To ListBox1.ListCount - 1 transactionDate = Format(CDate(ListBox1.List(i, 1)), "yyyy-mm-dd") transactionAmount = CDbl(ListBox1.List(i, 5)) Dim revenue As Double: revenue = 0 Dim expense As Double: expense = 0 If ListBox1.List(i, 2) = "إيرادات" Then revenue = transactionAmount ElseIf ListBox1.List(i, 2) = "مصروفات" Then expense = transactionAmount End If If dictCashBox.Exists(transactionDate) Then ' Dim existingData As Variant existingData = dictCashBox(transactionDate) existingData(1) = existingData(1) + revenue existingData(2) = existingData(2) + expense dictCashBox(transactionDate) = existingData Else ' إذا كان التاريخ غير موجود، نحاول الحصول على آخر رصيد سابق من آخر تاريخ في Dictionary (إذا كان موجودًا) Dim lastBalance As Double: lastBalance = 0 If dictCashBox.Count > 0 Then Dim sortedKeys As Variant: sortedKeys = SortDictionaryKeys(dictCashBox) ' دالة لفرز مفاتيح Dictionary lastBalance = dictCashBox(sortedKeys(UBound(sortedKeys)))(0) + dictCashBox(sortedKeys(UBound(sortedKeys)))(1) - dictCashBox(sortedKeys(UBound(sortedKeys)))(2) End If dictCashBox(transactionDate) = Array(lastBalance, revenue, expense) End If Next i ' تحويل Dictionary إلى مصفوفة للإخراج وفرزها حسب التاريخ Dim keys As Variant: keys = dictCashBox.keys ReDim outputArray(1 To dictCashBox.Count, 1 To 4) outputRow = 1 For i = LBound(keys) To UBound(keys) Dim dateValue As Date If IsDate(keys(i)) Then dateValue = CDate(keys(i)) Else Debug.Print "تحذير: مفتاح غير صالح للتاريخ: " & keys(i) dateValue = DateSerial(1900, 1, 1) End If outputArray(outputRow, 1) = dateValue outputArray(outputRow, 3) = dictCashBox(keys(i))(1) ' إيرادات outputArray(outputRow, 4) = dictCashBox(keys(i))(2) ' مصروفات outputRow = outputRow + 1 Next i ' فرز المصفوفة حسب التاريخ If UBound(outputArray, 1) > 0 Then SortArrayByColumn outputArray, 1 End If ' حساب الرصيد السابق وكتابة المصفوفة إلى شيت صندوق الخزينة ReDim finalOutputArray(1 To UBound(outputArray, 1) + 1, 1 To 4) finalOutputArray(1, 1) = "التاريخ" finalOutputArray(1, 2) = "رصيد سابق" finalOutputArray(1, 3) = "رصيد إجمالي اليوم (مدين للإيرادات)" finalOutputArray(1, 4) = "رصيد إجمالي اليوم (دائن للمصروفات)" Dim runningBalance As Double: runningBalance = 0 For i = 1 To UBound(outputArray, 1) finalOutputArray(i + 1, 1) = outputArray(i, 1) finalOutputArray(i + 1, 2) = runningBalance finalOutputArray(i + 1, 3) = outputArray(i, 3) finalOutputArray(i + 1, 4) = outputArray(i, 4) runningBalance = runningBalance + outputArray(i, 3) - outputArray(i, 4) Next i ' مسح البيانات القديمة وكتابة المصفوفة النهائية wsCashBox.Cells.ClearContents wsCashBox.Range("A1").Resize(UBound(finalOutputArray, 1), 4).Value = finalOutputArray wsCashBox.Columns.AutoFit ' إضافة صفوف إجمالي نهاية الشهر (يجب أن يتم بعد كتابة البيانات وفرزها) Call AddMonthlyTotalsToCashBox ' مسح الليست بوكس بعد الحفظ ListBox1.Clear ' ListBox1.AddItem "رقم المسلسل,التاريخ,نوع السند,كود التوريد,اسم التوريد,المبلغ,الملاحظات" TXTSerialNumber.Text = "" ' إعادة تمكين تحديث الشاشة والأحداث والحساب Application.ScreenUpdating = True Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic MsgBox "تم حفظ البيانات وتحديث رصيد صندوق الخزينة بنجاح (مع تجميع القيم).", vbInformation End Sub Function SortDictionaryKeys(dict As Object) As Variant Dim arr() As Variant Dim key As Variant Dim i As Long ReDim arr(1 To dict.Count) i = 1 For Each key In dict.keys arr(i) = key i = i + 1 Next key ' فرز المصفوفة حسب التاريخ Dim j As Long, temp As Variant For i = LBound(arr) To UBound(arr) - 1 For j = i + 1 To UBound(arr) Dim date1 As Date Dim date2 As Date If IsDate(arr(j)) And IsDate(arr(i)) Then date1 = CDate(arr(j)) date2 = CDate(arr(i)) If date1 < date2 Then temp = arr(i) arr(i) = arr(j) arr(j) = temp End If Else ' معالجة حالة الخطأ إذا لم يكن المفتاح تاريخًا صالحًا (لأغراض التصحيح) Debug.Print "تحذير: مفتاح غير صالح للتاريخ أثناء الفرز: " & arr(i) & " أو " & arr(j) End If Next j Next i SortDictionaryKeys = arr End Function ' دالة مساعدة لفرز مصفوفة ثنائية الأبعاد حسب عمود معين Sub SortArrayByColumn(arr As Variant, col As Long) Dim i As Long, j As Long, temp As Variant For i = LBound(arr) To UBound(arr) - 1 For j = i + 1 To UBound(arr) If arr(j, col) < arr(i, col) Then ' تبديل الصفوف For k = LBound(arr, 2) To UBound(arr, 2) temp = arr(i, k) arr(i, k) = arr(j, k) arr(j, k) = temp Next k End If Next j Next i End Sub ' دالة لإضافة صفوف إجمالي نهاية الشهر إلى شيت صندوق الخزينة (يتم استدعاؤها بعد تحديث البيانات) Sub AddMonthlyTotalsToCashBox() Dim wsCashBox As Worksheet Set wsCashBox = ThisWorkbook.Sheets("صندوق الخزينة") Dim lastRow As Long Dim i As Long Dim currentMonth As Long Dim totalRevenue As Double Dim totalExpenses As Double Dim startOfMonthRow As Long lastRow = wsCashBox.Cells(Rows.Count, "A").End(xlUp).Row If lastRow <= 1 Then Exit Sub ' لا توجد بيانات startOfMonthRow = 2 If startOfMonthRow <= lastRow Then currentMonth = Month(wsCashBox.Cells(startOfMonthRow, 1).Value) totalRevenue = 0 totalExpenses = 0 For i = 2 To lastRow Dim nextMonth As Long nextMonth = Month(wsCashBox.Cells(i, 1).Value) totalRevenue = totalRevenue + wsCashBox.Cells(i, 3).Value totalExpenses = totalExpenses + wsCashBox.Cells(i, 4).Value If nextMonth <> currentMonth Then ' إضافة صف الإجمالي للشهر السابق Dim totalBalanceEndOfMonth As Double If i > startOfMonthRow Then totalBalanceEndOfMonth = wsCashBox.Cells(i - 1, 2).Value + Application.WorksheetFunction.Sum(wsCashBox.Range("C" & startOfMonthRow & ":C" & i - 1)) - Application.WorksheetFunction.Sum(wsCashBox.Range("D" & startOfMonthRow & ":D" & i - 1)) Else totalBalanceEndOfMonth = wsCashBox.Cells(startOfMonthRow - 1, 2).Value ' الرصيد السابق إذا كان شهرًا واحدًا فقط End If lastRow = wsCashBox.Cells(Rows.Count, "A").End(xlUp).Row + 1 wsCashBox.Cells(lastRow, 1).Value = "إجمالي شهر " & MonthName(currentMonth) wsCashBox.Cells(lastRow, 2).Value = totalBalanceEndOfMonth wsCashBox.Cells(lastRow, 3).Value = totalRevenue - wsCashBox.Cells(i, 3).Value ' نطرح قيمة الشهر الجديد wsCashBox.Cells(lastRow, 4).Value = totalExpenses - wsCashBox.Cells(i, 4).Value ' نطرح قيمة الشهر الجديد currentMonth = nextMonth totalRevenue = wsCashBox.Cells(i, 3).Value totalExpenses = wsCashBox.Cells(i, 4).Value startOfMonthRow = i End If Next i ' إضافة إجمالي الشهر الأخير بعد انتهاء الحلقة Dim totalBalanceEndOfLastMonth As Double totalBalanceEndOfLastMonth = wsCashBox.Cells(lastRow, 2).Value + Application.WorksheetFunction.Sum(wsCashBox.Range("C" & startOfMonthRow & ":C" & lastRow)) - Application.WorksheetFunction.Sum(wsCashBox.Range("D" & startOfMonthRow & ":D" & lastRow)) lastRow = wsCashBox.Cells(Rows.Count, "A").End(xlUp).Row + 1 wsCashBox.Cells(lastRow, 1).Value = "إجمالي شهر " & MonthName(currentMonth) wsCashBox.Cells(lastRow, 2).Value = totalBalanceEndOfLastMonth wsCashBox.Cells(lastRow, 3).Value = totalRevenue wsCashBox.Cells(lastRow, 4).Value = totalExpenses End If End Sub السلام عليكم ورحمة الله وبركاتة رجاء المسااعدة عند ترحيل المبلغ سواء كان ايرادات او مصروفات يتم تكرار التاريخ وعدم جمع المبلغ فى التاريخ المحدد فى صندوق الخزينة ويتم تكرار التاريخ وتكرار المبلغ سواء ايراد او مصروفات برنامج خزينة ايرادات ومصروفات.xlsm
      • 1
      • Like
  22. عند الدخول الى فورم FrmTransfer والحدث عند تحميل Private Sub Form_Load() txtMonth = Date txtMonth0 = Date txtMonth1 = Date txtMonth2 = Date Call txtMonth1_AfterUpdate Call NormalizeMonth Call cmd_Pay_installments_Click End Sub عند استدعاء الاخيرة Private Sub cmd_Pay_installments_Click()
  23. السلام عليكم ما دام من اهتماماتك البرمجة فالحل يسير جدا الظاهر ان واجهات قاعدة البيانات مشتركة بين عدة اقسام العمل كالتالي : 1- مجلد المرفقات يجب ان يكون بجانب قاعدة الجداول الخلفية 2- يجب ان يكون عرض البيانات عبر استعلام (من اجل الاعتماد على معيار القسم) 3- الواجهات المتعددة .. يجب ان تحمل معرف القسم عند الفتح ( مثلا في فورم اليوزر عند الدخول .. فيكون اليوزر مربوط بالقسم ) حتى لو كان موظف المحاسبة يفتح البرنامج من قسم الادارة لن يظهر له الا ما يخص قسم المحاسبة .. الى هنا كل شيء مفهوم وبالسليم نرجع الى فقرة2 مسؤول النظام يمكنه تخصيص عرض بعض السجلات لقسم دون قسم من خلال عمل معيار في الاستعلام يتيح لذاك القسم الاطلاع واستعراض بيانات السجل هذه افضل وابسط طريقة ارى انها تؤدي الغرض
  24. عمل نظيف وجميل اعجبت جدا باختيارك لتسميات الجداول وحقولها .. طريقة علمية رائعة تدرس أولا ومهم جدا ان يكون صاحب المصلحة المستفيد ( ابو معاذ ) متابعا لكل ما يطرح وان يجري تجاربه ليكتشف الميزات والثغرات ويذكرنا بما يغيب عن البال المتابعة يا ابا معاذ ثم المتابعة .. متابعتك تشجع على الاستمرار وسألتني اخي خليفة هل تكمل ؟ هل طريقك الذي ستسير عليه مرسوم بدقة ؟ انت استاذنا وكبيرنا ومكسب لنا في هذا المنتدى .. ولكن دعنا نناقش المشروع كتحليل بيانات وتصور مسار . ربما النقاش يجلب فكرة تكون غائبة كما نعلم جميعا ان البرمجة هي تنفيذ فكرة محددة برمجيا .. لذا يجب ان تتبلور هذه الفكرة ويجب الاحاطة بجميع ابعادها . ما ستعمله اخي خليفة يفترض ان يكون صالحا لأي مصنع صغير او اي خط انتاج سواء كان ملابس او اواني او اثاث الخخخ .. واي منشأة من هذا النوع بحاجة الى : مخزن / خط انتاج وتصنيع / حسابات هذا باختصار فالمبيعات مثلا تدخل ضمنا دعنا نبدأ التصور والتحليل : انا اعمل على حاسبة المؤسسة كمدخل بيانات مسؤول المبيعات جاء الي وذكر ان عميلا في المكتب يريد 100 من البلوفر النسائي موديل 11 ويستفسر عن الامكانية ومعلوم ان البلوفر الواحد يتم تصنيعه من 9 خامات : قماش وخيوط وازرار واكسسوارا الخخخخ فاقوم بفتح البرنامج ثم فورم التصنيع وادخل معرف المنتج والكمية فقط المفترض اذا الخامات في المخزن تغطي يعطيني اشارة بذلك ويسمح لي بطباعة مذكرة الاخراج ، والا سوف ينبهني الا ان بعض الخامات لا تغطي ويسألني ايضا ان كنت اريد رؤية ا تقرير الموجودات والنواقص في هذه اللحظة .. العميل .. بين خيارين اما ان يصبر حتى يتم تغطية الخامة واما ان يتم تغيير الخامة الناقصة باخرى بديلة .. اذا قبل العميل التغيير فنحن بين خيارين اما ان نعدل على خامات المنتج موديل11 واما ان ننشء موديلا (منتجا) جديدا مثلا : بلوفر نسائي موديل 12 ادخال معرف المنتج ثم انتر هذا يعني ان البرنامج يستعرض جدولا مكونا من سجلات عديدة تشتمل على خامات يتم مقارنتها مع مثيلاتها في جدول المخزن والمقارنة تتم خامة خامة وما يقابلها من حيث وجود العدد الكافي للاخراج فلو كانت مثلا الازرار في منتج واحد 12 زرا فهذا يعني اننا بحاجة الى 1200 زر لتغطية عدد 100 منتج وهكذا لبقية الخامات دعنا نذهب الى قلب البرنامج ( الجداول) من اجل تحقيق العملية السابقة والاستعلام عن المنتج وتوفر خاماته يجب ان نبني الجداول على اساس هذه الفكرة : ( اقوم بفتح فورم التصنيع وادخل معرف المنتج والكمية فقط ) سأذكر الحقول الأساسية التي يجب ان تشتمل عليها الجداول .. وهذا لا يعني عدم اضافة حقول اخرى تخدم البرنامج وهي كثيرة - جدول الخامات : معرف الخامة/اسم الخامة/الوحدة /السعر - جدول المنتجات : معرف المنتج / اسم المنتج - جدول خامات المنتج : معرف المنتج/ معرف الخامة/ الكمية . ( يرتبط بعلاقة مع جدول المنتجات اطراف برأس ) وفيه يتم ادراج خامات كل منتج اللازمة للتصنيع هذه الجداول اعلاه هي عبارة عن جداول خدمية انا اعتبرها شبه ميتة .. هكذا اراها .. لأنه لا يتم عليها عمليات يومية اوشبه يوميه .. بل على فترات قد تكون متباعدة جداول الحركة في مشاريع المبيعات دوما اعتمد جدولا واحدا لرصد تفاصيل المشتريات والمبيعات اما هنا فالامر مختلف : - جدول راس الحركة - جدول حركة المخزن : لا يختلف عن جداول المخازن الأخرى ويشمل الداخل والخارج - جدول التفاصيل : المبيعات والمصروفات في جدول المخزن لا يهم كثيرا سعر الخامة الافرادي ما دامه موجود في جدول الخامات المهم السعر الاجمالي والعدد سعر الخامة في جدول الخامات يتم تحديثه تزامنا مع كل عملية شراء .. ولأن اسعار الشراء تختلف من فترة لأخرى .. يتم جمع الكمية الجديدة مع المتبقي من الكمية السابقة وبعملية حسابية بسيطة يخرج متوسط سعر الخامة الافرادي الجديد لا اعلم ان كان عرضي هذا مفهوم ومفيد .. ومع هذا هو قابل للنقاش والنقد
  25. فورم ذكاء اصطناعي اضافة وبحث وحذف واغلاق لفورم اكسل الفيديو الملف فورم بحث بالاسم او رقم التليفون 10 فورم بحث واضافة وحذف بيانات بالذكاء الاصطناعي.xls
×
×
  • اضف...

Important Information