اذهب الي المحتوي
أوفيسنا

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

  1. ياسر العربى

    ياسر العربى

    الخبراء


    • نقاط

      16

    • Posts

      1510


  2. الصـقر

    الصـقر

    الخبراء


    • نقاط

      7

    • Posts

      1836


  3. عبد العزيز البسكري

    • نقاط

      6

    • Posts

      1352


  4. ابراهيم الحداد

    • نقاط

      5

    • Posts

      1258


Popular Content

Showing content with the highest reputation on 12/20/15 in مشاركات

  1. ولايهمك استاذنا اتفضل رابط ميديا فاير http://www.mediafire.com/download/7cxahz9knqc1m93/Office_2016_16.0.4229.1002_x86-x64_v2.8.iso
    3 points
  2. عمل ممتاز اخي الغالي ابو يوسف لمسات جميله وهي من اهم اعمدة المشروع الخاص بنا وهو ان يكون شكل المشروع اعني البرنامج ان يكون جذاب ويعطى انطباعا طيبا في النفس وبخصوص اللمسات يامعلمين بقي هرفق ليكم ملف به هدية لتجميل الفورم ومظهر البرنامج عموما وكدا يبقي سبقتوا الشرح الاساسي في موضوع الردود نظرا لاجتيازكم مستوى الشرح بكثير اخي عبد العزيز سننطلق على بركة الله باذنه ومشيئته وانتظرو اللمسات الجمالية اتيه لكم لتبدعوا اكثر واكثر الهدية بها بعض العيوب البسيطة لا تظهر الليبل العادي وقت تشغيل البرنامج فيأتي معها ليبل مخصص يظهر باظهار الاداة الاداة image لاتظهر وقت تشغيل البرنامج تستبدل وتفى بالغرض مكانها الاداة Picture انتظرو المرفق لكم فائق احتراماتي
    3 points
  3. اعرض الملف برنامج حسابات البيع بالأجل والنقد الاصدار الاول لكل الاخوه في هذا المنتدى العملاق الذي تعلمت منه الكثير واليوم اهدي هذا العمل المتواضع وهو برنامج حسابات البيع بالأجل والنقد الاصدار الاول وهذا العمل مقارنة بأعمال عباقرة المنتدى نقطة في بحر منهم . شكر خاص للأستاذ الصقر. تحياتي محمد علي الطيب الرقم السري 123 صاحب الملف محمد علي الطيب تمت الاضافه 20 ديس, 2015 الاقسام قسم الإكسيل
    2 points
  4. تفضل اخي م/ ياسر لمسة صغيرة مني لاكمال المتصفح واحب ابشرك اخي عبد العزيز ان ما نراه الان هو 1/مليون من العالم الخيالي الجاي افضل ان شاء الله :) Internet Browser 1.rar
    2 points
  5. السّلام عليكم و رحمة الله و بركاته هديّة متواضعة ..مني إليكم .. لعل و عسى تنال إعجابكم .. للتكبير و التصغير بحجم الفورم ..إذهبْ طَوّالِي للرقم 20000 داخل الكود و قم بالتغيير دون المساس بجزء آخر فائق إحتراماتي الشاشة.rar
    2 points
  6. أخى ومعلمى القدير / ياسر العربى من عنيا أخى وحبيبى الغالى / عبد العزيز إنت تأمر الأكواد المستخدمة الكود الأول يوضع فى CommandButton1 Private Sub Command1_Click() text1.text="اكتب هنا ما تريد" End Sub والكود الثانى يوضع فى CommandButton2 Private Sub Command2_Click() Msgbox"أكتب ما تريد" End Sub والكود الثالث يوضع فى CommandButton3 Private Sub Command3_Click() End End Sub تقبلوا خالص تحياتى وتقديرى
    2 points
  7. الكود هو Set sa = Sheets("1") Set sh = Sheets("2") sh.Cells(2, 2) = sa.Cells(2, 2) sh.Cells(2, 3) = sa.Cells(2, 3) sh.Cells(2, 4) = sa.Cells(2, 4) sh.Cells(2, 5) = sa.Cells(2, 5) sh.Activate لم تغير شيء فيه كما هو الصح كالتالي Sub dd() Set Sa = Sheets("1") Set sh = Sheets("2") With Sa .Cells(2, 2).Copy sh.Cells(2, 2) .Cells(2, 3).Copy sh.Cells(2, 3) .Cells(2, 4).Copy sh.Cells(2, 4) .Cells(2, 5).Copy sh.Cells(2, 5) End With sh.Activate End Sub او هكذا كإختصار الاسطر Sub dd() Set Sa = Sheets("1") Set sh = Sheets("2") With Sa Union(.Cells(2, 2), .Cells(2, 3), .Cells(2, 4), .Cells(2, 5)).Copy sh.Cells(2, 2) End With sh.Activate End Sub تحياتي
    2 points
  8. تفضلو هدية اللمسات الجمالية وبلغوني رأيكم المهم تحملو الاداة من هنا اذا لم تجدوها ابحثو عنها Browse هتلاقوها في الهدية اللي بعتها اسمها actskin4.ocx هتظهر مثل الصورة والتوضيح بالمرفق لو عجبتكو الفكره ابعت ليكو مجموعه skin تقبلوا تحياتي هدية.rar
    2 points
  9. اخى الحبيب ضع هذه المعادله فى الخليه B2 ثم اسحبها بتجاه اليسار الى العمود O ثم اسحبها الى اسفل الى ما تريد من عدد الصفوف مرفق ملف تقبل تحياتى magid.zip
    2 points
  10. Private Sub Timer2_Timer() 'Label2 = Format(Now, "dddd yyyy/mm/dd") Label2 = Format(Now, "dddd dd/mm/yyyy") End Sub السّلام عليكم و رحمة الله و بركاته ماشاء الله تبارك الله أستاذي القدير " محمد حسن المحمد " لك لمسات فنيّة رائعة واصل المشوار معنا و لا تتركنا وحدنا وفّقك الله للتدرّب أكثر قمت بتغيير طفيف ليظهر التاريخ بتنسيق عربي من اليمين إلى اليسار فائق إحتراماتي السّلام عليكم و رحمة الله و بركاته أستاذنا القدير " ياسر العربي " بارك الله فيك و جزاك الله خيرًا و زادك من علمه و فضله و جعل كل حرف ممّا تقدّمه و تبذله بألف حسنة رأيي أن نكمل المشوار على بركة الله بدأنا المسيرة و أنتَ قائدنا .. أتمنى و أدعو الله ألاّ تتركنا في بداية الطريق لا تقلق على الاكسل أبدًا .. فلنا عيْنٌ في القدسْ و أخرى في نابلسْ فائق إحتراماتي
    2 points
  11. السلام عليكم ورحمة الله وبركاته إخوتي الكرام أستاذي الكريم ياسر العربي أشكركم على جهودكم المبذولة قمت بإنشاء ملف يحتوي على نموذجين(2فورم) الأول: يحتوي على الوقت والتاريخ تلقائي بمجرد فتحه وعلى كومبوبوكس يفتح الفورم الثاني. الثاني: يحتوي على رسالة شكر ومحبة لكم. للأسف اكتفيت بالصورة لأن كمبيوتر البيت بآخر أيامه يكاد يلفظ أنفاسه اﻷخيرة بسبب اﻷولاد الصغار. تقبلوا تحياتي العطرة.. والسلام عليكم. تحية لأوفيسنا.rar
    2 points
  12. السلام عليكم ورحمة الله وبركاته في احد البرامج التي اشتغلت عليها ، كان المطلوب احد الاشياء التالية مثلا: مدة الخدمة ، من تاريخ التوظيف الى اليوم ، إضافة خدمة (سنوات/اشهر/ايام) الى تاريخ التوظيف ، خصم مدة (سنوات/اشهر/ايام) من تاريخ التوظيف ، فبدل الحساب اليدوي ، عملت نموذج لآلة حاسبة ، للتواريخ النموذج frm_Date_Diff : حساب الفرق بين تاريخين: 1. ادخل التاريخ الاكبر في الحقل 1 ، وعند تغيير التاريخ سنرى الفرق بين التاريخين في الحقول سنة/شهر/يوم ، 2. ادخل التاريخ الاصغر في الحقل 2 ، وعند تغيير التاريخ سنرى الفرق بين التاريخين في الحقول سنة/شهر/يوم ، وعند النقر المزدوج على 1 او 2 ، فان القيم سيتم حفظها في الحقول 11 و 22 مؤقتا ، بحيث تستطيع ان تقوم بعمليات اخرى وتغيير التواريخ ، بينما تحتفظ بأصل التواريخ في 11 و 22 ، إضافة / طرح (سنوات / اشهر / ايام) من تاريخ: 1. احذف التاريخ من الحقل 2 ، 2. ادخل سنة/شهر/يوم الى الخانات 3 و4 و5 ، 3. حسب الحاجة ، اختر 6 لإضافة السنة/شهر/يوم الى التاريخ الاول ، وسترى النتيجة في الحقل 2 ، 4. حسب الحاجة ، اختر 7 لطرح السنة/شهر/يوم من التاريخ الاول ، وسترى النتيجة في الحقل 2 ، وعند النقر المزدوج على 3 او 4 او 5 ، فان القيم سيتم حفظها في الحقول 543 مؤقتا ، بحيث تستطيع ان تقوم بعمليات اخرى وتغيير السنوات/الاشهر/الايام ، بينما تحتفظ بالاصل في 3 و4 و5 وهنا مثال متحرك: جعفر 301.Dates_Calculations.mdb.zip
    1 point
  13. السلام عليكم ورحمة الله وبركاته هنا بعض الايقونات والازرار قد يستفيد منها البعض وهي خمسة مجموعات سترسل تباعا المجموعة الاولى.rar
    1 point
  14. الساده / أعضاء المنتدى المحترمين سلام الله عليكم جميعا ورحمته وبركاته قمت بعمل تجميع لعديد من النماذج الخاصة بالتفقيط سواء كانت بالمعادلات أو بالأكواد وقد قمت بتجميعها من خلال البحث فى المنتدى فسامحونى إن كنت نسيت نموذج لأحد الأساتذه الأعضاء نتمنى من الله عز وجل أن ينتفع بها الجميع تلك النماذج القيمه هى مجهود للساده الأعضاء بارك الله فيهم وزادهم الله من فضله وجزاهم رب العالمين عنا خير الجزاء ونماذج قاموا بتنفيذها بناء على طلبات من الساده الأعضاء وتقبلوا منى وافر الإحترام والتقدير أخيكم فى الله محمود الشريف وإليكم النماذج نموذج للأستاذ / ابراهيم ابو ليله _ بالمعادلات http://www.officena.net/ib/index.php?showtopic=50183#entry307279 نموذج للأستاذ / عبد الله باقشير _ بالكود http://www.officena.net/ib/index.php?showtopic=39447#entry219034 نموذج للأستاذ / عبد الله باقشير _ بالكود مع امكانية تفقيط الكسر http://www.officena.net/ib/index.php?showtopic=39447&page=2#entry219292 نموذج للأستاذ / hrashad _ بالمعادلات التفقيط بالعربية والإنجليزية http://www.officena.net/ib/index.php?showtopic=40054#entry224441 رابط آخر لنفس النموذج http://www.officena.net/ib/index.php?showtopic=40054#entry224516 نموذج للأستاذ / A_ALOMANI _ بالأكواد ( التفقيط بالهلله ) http://www.officena.net/ib/index.php?showtopic=30414#entry251870 نموذج للأستاذ / محمدى عبد السميع _ بالأكواد تفقيط درجات الطلاب تفقيط العملات تفقيط الأصناف http://www.officena.net/ib/index.php?showtopic=41743#entry237240 نموذج للأستاذ / محمدى عبد السميع _ بالأكواد يصلح لكثير من الأعمال ( تفقيط درجات وعملات ) http://www.officena.net/ib/index.php?showtopic=41743#entry237241 نموذج للأستاذ / خالد _ معادلات تصلح لأكسيل 2010 مع شرح لها http://www.officena.net/ib/index.php?showtopic=42069#entry299427 نموذج للأستاذ / ابراهيم ابو ليله عده معادلات وأكواد مع الشرح http://www.officena.net/ib/index.php?showtopic=42215#entry241303 وهذا رابط الشرح http://www.officena.net/ib/index.php?showtopic=42215#entry241306 نموذج للأستاذ / mosaline شرح لتنصيب كود تفقيط يكون دائما بملف الأكسيل أو بالأدق ببرنامج الأكسيل داخل الجهاز مع الكود http://www.officena.net/ib/index.php?showtopic=45879#entry271888 نموذج للأستاذ / hat شرح وتنصيب لكود تفقيط http://www.officena.net/ib/index.php?showtopic=45879#entry273104 نموذج للأستاذ / أبو القبطان _ بالمعادلات _ باللغة الإنجليزية http://www.officena.net/ib/index.php?showtopic=30396#entry152131 نموذج للأستاذ / محمد صالح _ بالمعادلات _ باللغة العربية http://www.officena.net/ib/index.php?showtopic=30396#entry152373 كود للتفقيط بالإنجليزية أرفقة الأستاذ / يحى حسين http://www.officena.net/ib/index.php?showtopic=27127#entry130442 نموذج للاستاذ / نزار سليمان كود التفقيط بالإنجليزية والريال بالإنجليزية http://www.officena.net/ib/index.php?showtopic=27127#entry130464 نموذج للأستاذ / amoudi _ بالمعادلات http://www.officena.net/ib/index.php?showtopic=27127#entry130966 نموذج للأستاذ / يحي حسين _ بالمعادلات http://www.officena.net/ib/index.php?showtopic=27127#entry130968 نموذج للأستاذ / عبد الله باقشير قام بإرفاقه الأستاذ / نزار سليمان http://www.officena.net/ib/index.php?showtopic=27127#entry131252 نموذج للأستاذ / الشهابى _ بالكود تفقيط بالدينار والدرهم http://www.officena.net/ib/index.php?showtopic=41586#entry236035 نموذج للاستاذ / أبو غريب _ معادلات http://www.officena.net/ib/index.php?showtopic=40562#entry228268 نموذج للأستاذ / بن عليه حاجى دمج بين المعادلات والأكواد لتفقيط الرقم السالب أى مثل ( -50) سالب خمسين http://www.officena.net/ib/index.php?showtopic=48014#entry290505 نموذج للأستاذ / مصطفى كمال كود للتفقيط بالدينار الكويتى http://www.officena.net/ib/index.php?showtopic=34584#entry202194 نموذج للأستاذ / محمود على محمود _ بالكود http://www.officena.net/ib/index.php?showtopic=34584#entry202194 نموذج للأستاذ / يحي حسين _ بالمعادلات http://www.officena.net/ib/index.php?showtopic=46925#entry281963
    1 point
  15. ملف أكثر من الروعة أخي و أستاذي " ياسر فتحي البنا " بارك الله فيك و زادك من علمه و فضله يوم بعد يوم يزداد تمسكي بهذا العالم الخيالي البديع و المستوى الراقي الرّفيع فائق إعجاباتي
    1 point
  16. المشروع يا معلمى وقللى إيه رأيك Internet Browser 1.rar Internet Browser 1.rar Internet Browser 2.rar
    1 point
  17. حبيبى الغالى / ياسر العربى معزرة لعدم وصول معلومة حفظ المشروع كامل بالطريقة التى أرفقتها ولكن قرأت ردك بعد ان برمجت متصفح إنترنت وحفظته بنفس الطريقة السابقة سوف أعيد برمجته وأرفعة مرة أخرى بس قللى إيه رأيك ورأى أخويا عبد العزيز Internet Browser.rar أخى وحبيبى الغالى / عبد العزيز أكثر من رائع قنبلة فى عالم الفورم تقبل خالص تحياتى وتقديرى
    1 point
  18. ماشاء الله عليك أخوي رمهان ، مو طماع جعفر
    1 point
  19. استاذي الغالي رمهان بارك الله فيك بالنسبة للاستفسار الاول بخصوص تغيير الامتداد : للاسف لا يوجد خيارات هو فقط الامتداد accdc . ومشكور علي رايك الشخصي بخصوص التقسيم اليدوي . كل الشكر والتقدير
    1 point
  20. من اولها انفجار فورم الله ينور حبيبي طيب باذن الله نشوف الدرس المقبل التعامل مع الفورم تقبل تحياتي
    1 point
  21. السلام عليكم وانا كذلك لدي التصور البسيط عن الموضوع وهو خاصة على ما اعتقد بالشهادات الرقمية وهو احد اوجه الحماية وموافقة التطبيق لمستخدمه ! ولكن اليس لك المقدرة اخ وائل بتعديل امتداد الملف الى accdb ! وبعدين صدقني ماعمري استخدمت المعالج في تطبيق عملي ! نضع القاعدة بعيدا ثم نربط الجداول في المقدمة ويدويا ! تحياتي
    1 point
  22. أقدم لكم اليوم رسالة ترحيب من تصميمى من بعض ما تعلمته من شرح الأستاذ والمعلم القدير / ياسر العربى أرجوا أن تنال إعجابكم تعليقك يا أ / ياسر العربى على الفنش يهمنى Welcome Screen.rar
    1 point
  23. اخي عبد العزيز تفضل واي اداة تعمل معاك نفس الكلام دا تتحط في السيستم ويتم تسجيلها مثل هذه تسجيل الادوات فتح كمسئول.rar
    1 point
  24. وعليكم السلام.. ابدء أخي ببناء الجداول على أكسس ليطبق ما تريد مع توضيح أكثر هل تقصد نفس السطر أي نفس الصف كما بالمرفق؟
    1 point
  25. تفضل اخى الكريم جرب الملف المرفق ان شاء الله ينال اعجابك انت خليت دماغى تلف تقبل تحياتى اختيار عشوائى.zip
    1 point
  26. السلام عليكم الافضل ارفاق مثال وحبذا تغير اسمك بالعربي تحياتي
    1 point
  27. استاذنا وحبيبنا جعفر هدية قيمة ورائعة ، وتكثر الحاجة اليها جزاك الله خيرا , ورزقك من حيث لا تحتسب
    1 point
  28. السلام عليكم ورحمة الله وبركاته أخي الحبيب عبد العزيز شكراً جزيلاً هذا من لطفك وحسن أدبك ...وطيب كلامك أما من ناحية التاريخ فإنني أن يظهر عندي كما يلي: الأحد 2015/12/20 أي من اليمين إلى اليسار وقد جربت كلتا الحالتين فقدمت الأولى. تقبل تحياتي وشكراً لمتابعتك وتشجيعك فأنت أخ حبيب قريب من القلب ..وأرجو أن يكون شأنك عظيماً في أمتنا التي نحاول استنهاض مكانتها الرفيعة والسلام عليكم.
    1 point
  29. اخى الحبيب جرب المرفق انا عملت لك فكره افضل بدون ازرار عملت لك فى الخليه c3 قائمة منسدله بها كل المواد عند اختيارك من القائمه ستجد تم اخفاء كل الاعمده ما عدا الماده التى تم اختياره بالقائمه هى فقط ظاهره واذا اردت اظهار كل الاعمده للمواد امسح محتوى الخليه c3 ( القائمه المنسدله) اجعلها فارغه ارجوا ان يكون الحل مناسب لك تقبل تحياتى اخفاء اعمدة.zip
    1 point
  30. اولا انا طالب علم مش استاذ يعنى اسمى محمد ثانيا الشكر لله سبحانه وتعالى اولا ثم بعد ذلك لكل اسااتذتنا الكرام فى هذا الصرح الشامخ وممتاز كويس التطبيق لكن ممكن اقول لك على حاجه جرب فى الكمبوبوكس بتاع الاسم اكتب اى اسم غلط وشوف الرساله اللى تطلع وجرب كده تكتب رقم جلوس غلط فى الكمبوبوكس بتاع رقم الجلوس وشوف الفرق
    1 point
  31. السّلام عليكم و رحمة الله و بركاته ألف شكر أستاذنا القدير " محمد حسن المحمد " على الالتفاتة الطيّبة بارك الله فيك جزاك الله خيرًا و زادك من علمه و فضله فعلاً افتقدنا كثيرًا أستاذنا الفاضل " ياسر خليل أبو البراء " بصراحة كنت سأسأل عنه العديد من المرّات لكن بموضوع ما .. هناك من طمأننا بأنّ المشكلة في انقطاع النت بالمنطقة التي يتواجد بها .. فاستبشرت .. و حمدت الله أن مانع ظهوره خيرًا فائق إحتراماتي
    1 point
  32. حياك الله استاذ محمد ! طبعا اكيد انت لم تركز هنا : فطبعا انت وضعت السطر عند الفتح للنموذج وهو المفروض خلف زر الامر فقط ولم يعد هناك كود عند الفتح للنموذج "التحقق من الاقامات" تحياتي واشواقي
    1 point
  33. السلام عليكم أخي كريمو كنت اعتقد بأني جربت المرفق وكان يعمل بطريقة صحيحة ، ولكن الظاهر اني كنت مخطئ ، فاعتذر منك الان وبعد التعديل ، جربته ، والظاهر انه يعمل كما يجب ، ان شاء الله الان حين تضغط على الزر "معاينة التحويل" ، فالكود يبحث عن التاريخ (شهر - سنة) الذي في النموذج ، يبحث عنه في الجدول CCP ، فاذا وجده ، فيعطيك الخيار في تحديث رقم الحساب (اي انه لن يغير القيمة) ، واذا لم يجد التاريخ في الجدول ، فيعطيك الخيار في ادخال سجل جديد جعفر 288.krimo2015V2.mdb.zip
    1 point
  34. بصراحه يااستاذ زيزو العجوز انتا والاستاذ احمد السيد الله يباركلكم في اولادكم وفي صحتكم وفي من احببتو وانا والله اكل مابفتح البرنامج بادعو الى كل من ساهم وساعدنى فى هذا البرنامج وبدعى له ولاولاده وكل من احب وانا طورت بشكل كبير جداً في البرنامج والفضل لله عزوجل ثم لكم وانا عند وعدى بالدعاء كل ماهفتح البرنامج لكم ولاولادكم ولمن احببتو واتمنى ان اكون صديق معكم في هذا الجروب
    1 point
  35. السلام عليكم أستاذ الظاهر ان موقع النور فيه نوع آخر من ملفات الاكسل ، والذي بشمل علامات لغتي الخالدة فقط ، عليه ، اليك طريقة استيرادهم ، بنفس الطريقة القديمة ، ولكن لجدول خاص به النموذج يطلب منك اختيار نوع ملف الاكسل ، والباقي يقوم الكود به . وهذا كود الاستيراد (طبعا هناك مجموعة من الاستعلامات في البرنامج): Option Compare Database Private Sub Browse_Click() Dim fpath As Variant With Application.FileDialog(3) .Title = "Choose File" .Filters.Clear .Filters.Add "Excel Files", "*.xls ; *.xlsx" '.Filters.Add "Excel Files", "*.csv" .AllowMultiSelect = False .InitialFileName = "" If .Show = -1 Then Me.txtPath = .SelectedItems(1) End If End With Exit Sub End Sub Private Sub ImportData_Click() If Me.frm_Which_Type = 0 Then 'the user didn't choose anything, let him know MsgBox "رجاء اختيار اي نوع من الملفات تريد ان تستورد" & vbCrLf & "Please Select an option" Exit Sub ElseIf Len(Me.txtPath & "") = 0 Then 'don't leave the path empty MsgBox "رجاء اختيار ملف الاكسل" & vbCrLf & "Please select an Excel file" Exit Sub End If '1 'Empty Table Degrees and tbl_Sheets ' CurrentDb.Execute ("Delete * From Degrees") ' CurrentDb.Execute ("Delete * From tbl_Sheets") '2 'import Sheets Dim blnHasFieldNames As Boolean, blnEXCEL As Boolean, blnReadOnly As Boolean Dim lngCount As Long Dim objExcel As Object, objWorkbook As Object Dim colWorksheets As Collection Dim strPathFile As String, strTable As String Dim strPassword As String ' Establish an EXCEL application object On Error Resume Next Set objExcel = GetObject(, "Excel.Application") If Err.Number <> 0 Then Set objExcel = CreateObject("Excel.Application") blnEXCEL = True End If Err.Clear On Error GoTo 0 ' Change this next line to True if the first row in EXCEL worksheet ' has field names blnHasFieldNames = False ' Replace C:\Filename.xls with the actual path and filename strPathFile = Me.txtPath ' "C:\Filename.xls" ' Replace tablename with the real name of the table into which ' the data are to be imported strTable = "tbl_Sheets" '"tablename" ' Replace passwordtext with the real password; ' if there is no password, replace it with vbNullString constant ' (e.g., strPassword = vbNullString) strPassword = vbNullString '"passwordtext" blnReadOnly = True ' open EXCEL file in read-only mode ' Open the EXCEL file and read the worksheet names into a collection Set colWorksheets = New Collection Set objWorkbook = objExcel.Workbooks.Open(strPathFile, , blnReadOnly, , strPassword) For lngCount = 1 To objWorkbook.Worksheets.Count colWorksheets.Add objWorkbook.Worksheets(lngCount).Name Next lngCount ' Close the EXCEL file without saving the file, and clean up the EXCEL objects objWorkbook.Close False Set objWorkbook = Nothing If blnEXCEL = True Then objExcel.Quit Set objExcel = Nothing ' Import the data from each worksheet into the table For lngCount = colWorksheets.Count To 1 Step -1 'If lngCount <> 9 And lngCount <> 8 Then GoTo Next_lngCount '3 'Empty Table Degrees and tbl_Sheets 'j'CurrentDb.Execute ("Delete * From tbl_Sheets") CurrentDb.Execute ("Delete * From " & strTable) '-- '4 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _ strTable, strPathFile, blnHasFieldNames, colWorksheets(lngCount) & "$" '-- '5 If Me.frm_Which_Type = 2 Then 'the user choose Loqati ONLY add_Loqati = "_Loqati" Else add_Loqati = "" End If my_qry_Select = "qry_Select" & add_Loqati my_qry_Delete_Duplicate = "qry_Delete_Duplicate" & add_Loqati my_qry_Append = "qry_Append" & add_Loqati my_qry_Update_Sheet = "qry_Update_Sheet" & add_Loqati 'Delete Duplicate Dim rstQ As DAO.Recordset mySQL = "Select * From " & my_qry_Select Set rstQ = CurrentDb.OpenRecordset(mySQL) [F16] = rstQ![F16] [F8] = rstQ![F8] [F17] = rstQ![F17] [F29] = rstQ![F29] [F24] = rstQ![F24] rstQ.Close: Set rstQ = Nothing DoCmd.SetWarnings False DoCmd.OpenQuery my_qry_Delete_Duplicate DoCmd.SetWarnings True '------------- '6 'append the data DoCmd.SetWarnings False DoCmd.OpenQuery my_qry_Append DoCmd.SetWarnings True '------------- DoEvents Me.iSheet = colWorksheets.Count Me.iSheet2 = lngCount '------------- '7 'append the data DoCmd.SetWarnings False DoCmd.OpenQuery my_qry_Update_Sheet DoCmd.SetWarnings True '------------- '8 'empty tbl_Sheets CurrentDb.Execute ("Delete * From " & strTable) Next_lngCount: Next lngCount ' Delete the collection Set colWorksheets = Nothing MsgBox "Done" ' Uncomment out the next code step if you want to delete the ' EXCEL file after it's been imported ' Kill strPathFile End Sub جعفر 275.3.ImportDegrees.accdb.zip
    1 point
  36. الاخ الحبيب محمد على الطيب جزاكم الله خيرا على كل ما تقدم رجاء من حضرتك ترفق البرنامج فى منتدى الاكسيل تقبل تحياتى
    1 point
  37. اخي العزيز واحدة واحدة ناخد الامثلة والشرح رويدا رويدا حتى ياخذ كل جزء من الشرح مكانه في العقل والا تكون خناقة في راسك وصداع من الممكن ان تربط كمبوكس وليست بوكس وتكست بوكس مع بعضهما بدون قاعدة ولا شئ فقط ان كنت مستعجل شوف شروحات الفورم للاخ الصقر وطبق منها combo1 lممكن تضيف له بيانات عند فتح الفورم مثلا عن طريق additem ومثلها الليست واقعد قلب الادوات كدا مع نفسك حتى ياتي دورها واللي لم اخذ بالي منهم هم من لم يكن عندهم علم اساسا بلغة vba فبالتالي لن يعرفو الادوات والبدايات مما يجعلني اقوم بتوضيح اكتر مره اخرى وتاكيد المعلومات
    1 point
  38. السلام عليكم ورحمة الله اخى الحبيب اليك الحل مع ملاحظة توجد اعمدة مخفية على يسار الجدول جدول العمل.rar
    1 point
  39. السلام عليكم ورحمة الله أخي الكريم عيد مصطفى يمكنك تصحيح معادلتك في التنسيق الشرطي بحذف الرمز $ في المعادلات من أمام الحرف H في النطاق H$4:$H$88 ليصبح من الشكل H$4:H$88 وستعمل المعادلات بصفة صحيحة في جميع الأعمدة المعنية... والله أعلم أخوك بن علية السلام عليكم ورحمة الله أخي الكريم عيد مصطفى، إذا كنت تريد تحديد القيمة الصغرى في الأعمدة على أن تكون غير معدومة عليك بتغيير الجزئية (MIN(H$4:H$88 من معادلة التنسيق الشرطي الخاصة بأصغر قيمة بالجزئية ((MIN(IF(H$4:H$88<>0;H$4:H$88 بن علية حاجي
    1 point
  40. ما رايكم لو اختار المستخدم بنفسه النطاق الذي يسمح به بالكتابة Unprotect Only Choosen Range.zip
    1 point
  41. بارك الله فيك اخى الكريم بن علية نفس هذه المشكلة عندى تم حلها بهذا الملف العبقرى شكرا جزيلا لك
    1 point
  42. السلام عليكم ورحمة الله أخي الكريم، المشكل الذي ذكرته ليس في الأوفيس وإنما في ملف Registry الخاص بالويندوز... وإن شاء الله حل هذه المشكلة يكون بتنفيذ الأداة في الملف المرفق وهي تقوم بتصحيح الخلل في ملف Registry تلقائيا والمتعلق بخصائص HTM/HTML... أرجو أن تفيدك هذه الأداة... أخوك بن علية html_association_fix.zip
    1 point
  43. السلام عليكم المصفوفات الجداول تعريف مبسط : التعامل مع اكثر من قيمة واحدة تطبيقات عملية الدرس الاول : المصفوفات Arrays rArr = Array("A", "B", "C") اذا اردنا ان نضع الصفيف هذا على صف واحد وثلائة اعمدة Sub kh_1() Dim rArr rArr = Array("A", "B", "C") Range("A1").Resize(1, 3).Value = rArr End Sub اذا اردنا ان نضع الصفيف هذا على ثلاثة صفوف وعمود واحد تعرفون الدالة TRANSPOSE إرجاع نطاق خلايا عمودى كنطاق أفقي، أو بالعكس. يجب إدخال TRANSPOSE كصيغة صفيف في نطاق به نفس عدد الصفوف والأعمدة، على الترتيب، مثل صفيف الأعمدة والصفوف الخاصة به. استخدم TRANSPOSE لتبديل الاتجاه العمودي والأفقي لصفيف في ورقة عمل. بناء الجملة TRANSPOSE(array) Array (الصفيف) هو الصفيف أو نطاق الخلايا في ورقة العمل التي ترغب في تحويلها. يتم إنشاء تحويل الصفيف باستخدام الصف الأول للصفيف على أنه العمود الأول للصفيف الجديد، والصف الثاني للصفيف على أنه العمود الثاني للصفيف الجديد، وهكذا. ============================================================ Sub kh_2() Dim rArr rArr = Array("A", "B", "C") rArr = WorksheetFunction.Transpose(rArr) Range("A1").Resize(3, 1).Value = rArr End Sub يتبع لمتابعة الموضوع افضل ان تضعوا هذه الاكواد في ملف الان نقوم باضافة فورم ونضيف التالي ListBox1 CommandButton1 CommandButton2 اضف هذه الاكواد للفورم Private Sub CommandButton1_Click() Dim rArr rArr = Array("A", "B", "C") Me.ListBox1.List = rArr End Sub Private Sub CommandButton2_Click() Dim rArr rArr = Array("A", "B", "C") Me.ListBox1.Column = rArr End Sub Private Sub UserForm_Initialize() Me.ListBox1.ColumnCount = 3 End Sub بعد فتح الفورم اضغط على الازرار CommandButton1 CommandButton2 ما هي النتيجة يتبع ============================================================= المصفوفة Array("A", "B", "C") من النوع Variant وذو البعد الواحد واول دليل لعناصرها LBound صفر وآخر دليل لعناصرها UBound عدد عناصرها ناقص واحد ونضيف عناصرها دفعة واحدة ============================================================= بعض الدالات للسلاسل النصية تعطي نتائج صفيف مثل SPLIT FILTER ناخذ مثال عن SPLIT Sub kh_Split() Dim MyAr MyAr = Split("عبدالله علي احمد باقشير") Range("A1").Resize(1, UBound(MyAr) + 1).Value = MyAr End Sub =========================================================== =========================================================== =========================================================== الدرس الثاني : الجداول المفهرسة عبارة عن متغيرات مفهرسة Indexed Variables تحتوي على بيانات عديدة من نفس النوع Data Type . كل مصفوفة لها اسم واحد يمكن استخدامه للرجوع إلى أي عنصر فيها وذلك باقتران هذا الاسم بدليل يمثل مكان العنصر فيها ، ويمكن انشاء مصفوفة لإحتواء أي نوع من أنواع البيانات مثل : النصوص والأعداد الحقيقية و الصحيحة وغيرها ، فأنواع البيانات المتوفرة في الفيجيوال بيسك هي : Data Type in VB: {Byte, Boolean, Integer, Long, Single, Double, Currency, Decimal, Date, Object, String, Variant, User-defined }. واستخدام المصفوفات في البرمجة يساعد في صناعة أكواد قصيرة وبسيطة ذات قوة كبيرة لأنه يمكن بناء Loops تتعامل بكفاءة مع المصفوفات مهما كان عدد عناصرها وذلك باستخدام دليل العنصر Index Number . ================================================= الخصائص الأساسية للمصفوفة في الفيجيوال بيسك : اسم المصفوفة يمثل عنوان Address في الذاكرة ؛ ولا يمكن تغييره أثناء تنفيذ البرنامج . يمكن الإعلان عن مصفوفة لأي نوع من أنواع البيانات بما في ذلك الأنواع المعرفة من قبل المستخدم User-defined type والـ Object Variables . كل وحدة بيانات منفردة في المصفوفة تسمى عنصر Element . جميع العناصر تكون من نفس النوع إلا في حالة الإعلان عن المصفوفة كـ Variant Data Type . جميع العناصر تكون مخزنة على التتابع في ذاكرة الحاسوب ودليل أول عنصر هو الصفر كـ Default ويمكن جعله 1 باستخدام جملة في بداية الوحدة النمطية Option Base 1 لكل مصفوفة حداً أعلى Upper bound ، وحداً أدنى Lower bound ؛ وعناصر المصفوفة تكون محصورة بين هذين الحدين . من الممكن أن تكون المصفوفة ذات بعد واحد أو متعددة الأبعاد . تحديد الحدين الأعلى والأدنى للمصفوفة Upper bound & Lower bound: عند الإعلان عن مصفوفة، يكتب الحد الأعلى بعد الاسم وبين الأقواس. لا يمكن أن يزيد الحد الأعلى عن نطاق نوع المتغير Long Data Type. الحد الأدنى الإفتراضي Default هو الصفر. اذا عرفت عن هذا المتحول بـــــ Limiteinf To LimiteSup في مكان الوسيط Indexs تكون قد عرفت جدولا بعدد عناصر محدد وبارقام دليل محددة وهذه الطريقة افضل للاستخدام للفهم السريع للوسيط Indexs Dim ay(1 To 3, 1 To 2) As String ----------------------------------------------------------------------------- ay(1 To 3, 1 To 2) لمعرفة الدليل الاول والاخير لليعد الملون بالاحمر للمتحول LBound(ay, 1) UBound(ay, 1) لمعرفة الدليل الاول والاخير للبعد الملون بالازرق للمتحول LBound(ay, 2) UBound(ay, 2) ================================================================== ================================================================== ملحوظة عند إضافة أبعاد المصفوفة فإن مساحة التخزين المطلوبة سوف تزيد زيادة كبيرة ولذلك ينبغي الاحتراس وتفادي استخدام النوع Variant قدر الإمكان لما يتطلبه من مساحة تخزينية كبيرة! ================================================================== ================================================================== المصفوفة ذات الحجم الثابت نعلن عنها بأحد أوامر الإعلان (Public or Private or Dim or Static) مع تحديد عدد العناصر في الأقواس Dim ay(1 To 3, 1 To 2) As String مثال 1: Sub kh_Array1() Dim ay(1 To 3, 1 To 2) As String ay(1, 1) = "A" ay(2, 1) = "B" ay(3, 1) = "C" ay(1, 2) = "D" ay(2, 2) = "E" ay(3, 2) = "F" Range("A1").Resize(3, 2).Value = ay End Sub مثال 2 جدول ضرب Sub KH_5() Dim sArr(1 To 12, 1 To 10) As Integer Dim ContRow As Integer, ContColmn As Integer Dim c As Integer, r As Integer ContRow = UBound(sArr, 1) ContColmn = UBound(sArr, 2) For r = 1 To ContRow For c = 1 To ContColmn sArr(r, c) = r * c Next Next Range("A1").Resize(ContRow, ContColmn).Value = sArr End Sub المصفوفات متغيرة الحجم Dynamic Array: في بعض الأحيان، لا نعرف مسبقاً حجم المصفوفة التي سنستخدمها في البرنامج بالضبط، وقد نريد تغيير حجم المصفوفة أثناء تشغيل البرنامج، هنا سنحتاج إلى المصفوفات ذات الحجم المتغير Dynamic حيث يمكننا تغيير حجمها في أي وقت. تعتبر المصفوفات متغيرة الحجم أحد مميزات الفيجيوال بيسك، وهي تساعد في تنظيم الذاكرة بكفاءة. فمثلاً، يمكن استخدام مصفوفة كبيرة لوقت قصير ثم إعادة تحجيمها لتحرير مساحة من الذاكرة عندما لا نحتاجها. وهذا من شأنه تسريع المعالجة. ولصناعة Dynamic Array نتبع التالي: نعلن عنها بأحد أوامر الإعلان (Public or Private or Dim or Static) ونجعلها ديناميكية بعدم كتابة أي رقم في الأقواس كما يوضح المثال التالي: Dim sArr() As String نعيد الإعلان عنها مع تحديد عدد العناصر باستخدام جملة ReDim كما في المثال التالي: ReDim sArr(1 To ContRow, 1 To ContColmn) ================================================================== ================================================================== ملاحظات هامة . كل جملة من جمل ReDim يمكنها تغيير عدد العناصر بالإضافة إلى الحد الأعلى والحد الأدنى لكل بعد للمصفوفة، ومع ذلك فإن عدد الأبعاد في المصفوفة لا يمكن تغييره. . تمحى جميع القيم المخزنة في المصفوفة كل مرة يعاد فيها تنفيذ جملة ReDim. ويجعل الفيجيوال بيسك القيم كالتالي: في حالة الــــ Variant Array --------- الى ----- Empty Value في حالة الــــ Numeric Array ------- الى ----- Zero في حالة الــــ String Array ----------- الى ----- Zero-Length String في حالة الــــ Array of objects ------ الى ----- Nothing وهذا مفيد عندما نريد تجهيز المصفوفة لبيانات جديدة أو عندما نريد اختزال حجم المصفوفة لتأخذ أقل مساحة ممكنة في الذاكرة. ================================================================== ================================================================== مثال 1: Sub KH_6() Dim sArr() As String Dim iName As String Dim ContRow As Integer, ContColmn As Integer Dim c As Integer, r As Integer, i As Integer Range("H7").Resize(14, 5).ClearContents iName = CStr([H4]) ContColmn = 5 With Range("B7").Resize(14, 1) ContRow = WorksheetFunction.CountIf(.Cells, iName) ReDim sArr(1 To ContRow, 1 To ContColmn) For r = 1 To .Rows.Count If CStr(.Cells(r, 1)) = iName Then i = i + 1 For c = 1 To ContColmn sArr(i, c) = CStr(.Cells(r, c)) Next End If Next End With Range("H7").Resize(ContRow, ContColmn).Value = sArr Erase sArr End Sub دروس المصفوفة 1.rar ================================================================== ================================================================== Erase تستخدم لتحرير الذاكرة المعينة للجداول الديناميكية واعادة تعيين عناصر الجدول الى قيمتها البدائية بطول ثابت مثال: Erase sArr ================================================================== ================================================================== تغيير حجم المصفوفة دون فقد بياناتها يمكننا فعل ذلك باستخدام جملة ReDim مع كلمة Preserve وتعني الحفظ الجملة التالية تغير حجم المصفوفة ولكنها لا تمحو العناصر الموجودة بها: ReDim Preserve MyArray( 10 ) والآن يمكننا كتابة ملخص متكامل لجملة ReDim. جملة ReDim: تستخدم في مستوى الـProcedure لإعادة تخصيص allocates مساحة تخزينية storage space لمصفوفة متغيرة الحجم Dynamic array. صيغتها Syntax: ReDim [Preserve] varname(subscripts) [As type] [, varname (subscripts) [As type]] ================================================================== ================================================================== ملاحظات هامة: جميع ما ذكر في الصيغة داخل قوسين مربعين [] يعتبر اختياري يمكن الاستغناء عنه حين عدم الحاجة إليه. تستخدم جملة ReDim لتحجيم أو إعادة تحجيم مصفوفة متغيرة الحجم Dynamic Array والتي بالفعل قد أعلن عنها مسبقاً باستخدام أي من الجمل Dim, Private, Public مع أقواس فارغة (أي بدون ذكر الأبعاد). يمكن تكرار استخدام جملة ReDim لتغيير عدد العناصر والأبعاد لمصفوفة، ومع ذلك لا يمكن الإعلان عن مصفوفة بنوع معين من البيانات ثم إعادة تعريفها لاحقاً مع تغيير نوع البيان لنوع آخر إلا إذا كانت المصفوفة محتواه في variant. إذا كانت المصفوفة محتواه في variant فإن نوع بيان العناصر يمكن أن يتغير باستخدام المقطع As Type إلا إذا استخدمنا كلمة Preserve ففي هذه الحالة لا يسمح بتغييرات. إذا استخدمنا كلمة Preserve يمكن فقط تحجيم البعد الأخير للمصفوفة ولا يمكن تغيير عدد الأبعاد على الإطلاق. إذا كان للمصفوفة بعد واحد فيمكن إعادة تحجيم هذا البعد لأنه البعد الأخير والوحيد بالمصفوفة. وإذا كان للمصفوفة بعدين أو أكثر فيمكن فقط تغيير حجم البعد الأخير مع الاحتفاظ بمحتويات المصفوفة. عندما نستخدم Preserve يمكن تغيير حجم المصفوفة بتغيير الحد الأعلى بينما ينتج لدينا خطأ حين تغيير الحد الأدنى. إذا صنعنا مصفوفة أصغر مما كانت فإن بيانات العناصر المخزنة سوف تفقد. تحذير: جملة ReDim ستعمل وكأنها جملة إعلان إذا كان المتغير (المصفوفة) التي تعلن عنه غير موجود على مستوى الـProcedure أو الـModule. وإذا كان هناك متغير آخر بنفس الاسم قد أنشئ بعد ذلك وحتى لو كان في النطاق ككل Scope؛ فإن ReDim سوف ترجع للمتغير الأخير ولن يتسبب عن ذلك خطأ في الترجمة Compilation error حتى ولو كانت جملة Option Explicit فعّالة. وبذلك لن يدرك المبرمج أنه هناك خطأ بالشيفرة code. ولتفادي هذا التعارض لا ينبغي استخدام جملة ReDim كجملة إعلان بدلاً من Dim مثلاً، ولكن نستخدمها فقط لإعادة تعريف حجم المصفوفة. ================================================================== ================================================================== توضيح اكثر لهذه الملاحظة إذا استخدمنا كلمة Preserve يمكن فقط تحجيم البعد الأخير للمصفوفة ولا يمكن تغيير عدد الأبعاد على الإطلاق. امثلة : للبعد الاخير ( الملون بالاحمر) هنا ثلاثة ابعاد البعد الاخير هو 15 ReDim Preserve X(10,12,15) ReDim Preserve X(10,12,15) هنا بعدين البعد الاخير هو 12 ReDim Preserve X(10,12) ReDim Preserve X(10,12) هنا بعد واحد إذا كان للمصفوفة بعد واحد فيمكن إعادة تحجيم هذا البعد لأنه البعد الأخير والوحيد بالمصفوفة ReDim Preserve X(10) ReDim Preserve X(10) حمل الملف الموجود في هذا الموضوع تطبيق عملي لما ذكر اعلاه http://www.officena....showtopic=42346 http://www.officena.net/ib/index.php?showtopic=42584 دروس المصفوفة 1.rar kh_SumProduct.rar دروس المصفوفة ( دالة لتوليد ارقام عشوائية).rar ((الشرح العلمي منقول من هنا وهناك)) تم بحمد الله وشكره
    1 point
  44. أستاذنا / عبد الله باقشير ما هذه الدرر الباقشيرية التي تنثرها علينا بارك الله فيك وزادك علماً ورفعةً جزاك الله خير على ما تقدمه من هذه الدرر الثمينة و إلى المزيد إن شاء الله تليمذكم / الشهابي
    1 point
  45. السلام عليكم ابا ادم الكود كان ينقصه الاسم Sub hosami() Dim rng As Range On Error Resume Next Set rng = Range([a1], Cells(Range("a65536").End(xlUp).Row, 1)) For i = 1 To rng.Rows.Count If rng.Cells(i, 1) <> rng.Cells(i - 1, 1) + 1 Then _ Range("b1000").End(xlUp).Offset(1, 0) = rng.Cells(i - 1, 1) + 1 Next i End Sub جربه الان
    1 point
  46. تبارك الله ، نفع الله بعلمك أخي هشام أخي عماد ، مساء الخير حاولت التطبيق للكودين ولكنني لم أصل للنتائج التي تخيلتها من سؤال الأخ أسامة ، لعلني أخطأت بالتطبيق ، فهلا أسعفتنا بمرفق. جزيت خيرا...
    1 point
  47. السلام عليكم ======== تفضل المرفق find series.rar
    1 point
  48. المجموعة الرابعة المجموعة الرابعة.rar
    1 point
  49. المجموعة الثانية المجموعة الثانية.rar
    1 point
×
×
  • اضف...

Important Information