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

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

  1. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

    المشرفين السابقين


    • نقاط

      5

    • Posts

      13,165


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

    ياسر العربى

    الخبراء


    • نقاط

      4

    • Posts

      1,510


  3. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      4

    • Posts

      9,814


  4. أبو عبدالله الحلوانى

Popular Content

Showing content with the highest reputation on 17 ينا, 2016 in all areas

  1. اخى عبد العزيز انا كمان فى انتظار النسخه بفارغ الصبر تقبل تحياتى
    2 points
  2. مثال بسيط بعد التعديلات 2222.rar
    2 points
  3. بسم الله الرحمن الرحيم دروس فى VBA Excel هذه الدروس نتيجة جهد مستفاد من شروحات وأعمال السادة أساتذة منتديات أوفيسنا أسأل الله عز وجل لهم أن تكون فى ميزان حسناتهم http://www.officena.net/ib/index.php الدرس الأول قبل أن نبدأ، دعونا نتأكد من أن الأدوات التي نحتاجها موجودة. إذا كنت تستخدم ( Excel 2007) أو إصدار أعلى click ". Office button, then click Excel Options بالاسفل سيتم إضافة علامة تبويب جديدة وهى Developer سوف نحتاج فى العمل مع التعليمات البرمجية ل VBA ، محرر، يتم تثبيته بشكل افتراضى. يمكنك فتحه عن طريق الضغط على تركيبة مفتاح الاختصار " Alt+ F11 ": او انقر على الشكل المشار له بالسهم بالصورة السابقة انتهى الدرس الأول مرفق ملف PDF يرجى ان كان هناك أى استفسار يكون فى مضمون الدرس حتى لا يتم التشتيت وتقبلوا منى وافر الإحترام والتقدير الدرس 1VBA Excel.rar
    1 point
  4. السلام عليكم ورحمة الله وبركاته كنت بصدد عمل برنامج " دليل هاتف " فصادفتني بعض المشاكل باستخدام القوائم فأردت عمل شئ من التغيير في استعمال القوائم حتى هداني الله الى فكرة بأستخدام الاكواد والحمد لله انجزتها ولكنها تبقى في بدايتها وامكانية تطويرها واردة واحببت ان اشارككم بها لعل اجد من ارائكم بعض الامور التي قد تفيد بهذا الشأن هنا ملف يحتوي على صفحة من البرنامج مع احتوائه على القائمة المذكورة اخوكم عماد الحسامي
    1 point
  5. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته أثناء تجولي في الإنترنت وجدت ملفاً يعرض معلومات النظام ومنها مثلا سيريال الهارد ديسك رقم المعالج رقم المازر بورد وغيرها الكثير فأحببت مشاركتكم فيه .... أترككم معه وأتمنى تجربة الملف على أنظمة تشغيل مختلفة يعني xp و 7 و vista وسيفن و 8 و 8.1 و 10 وينندوز بالنواة 32 أو 64 وإخباري بالنتيجة SystemInfo.rar
    1 point
  6. تهنئة متأخرة للأخ أنس دروبي بمناسبة الترقية الي عضو محترف الف مبروك و الي الاعلي باذن الله
    1 point
  7. دورة برنامج Excel فيديو وصوت ( عربي )
    1 point
  8. السلام عليكم ورحمة الله تعالى وبركاته واجهت مشكلة كبيرة عند حساب الايام بين تاريخين تاريخ البدء وتاريخ الانتهاء على سبيل المثال وكان ما يهمنى هو عدم احتساب الجمعة والسبت ضمن هذين التاريخين على اعتبار انهم عطلة اسبوعية ثم خطر ببالى كذلك عدم احتساب الاعياد والمناسبات الرسمية بحثت وظللت ابحث وسهرت ولم انم منذ الأمس بسبب هذه المعضلة ولكن لم اجد اى حل فى اى منتدى حتى تفضل على الاستاذ ابو خليل جزاه الله عنا كل الخير ان شاء الله ولكن بصراحة هذا الحل لم يرضى طموحى فذهبت للبحث مرة اخرىووجدت فى موقع مايكروسوفت هذا الحل الذى أحدث خطأ فنجم عنه خلل فى الحسابات وحاولت فهم الية العمل وظللت اجرب واحاول وأخيرا بفضل الله سبحانه وتعالى الذى هدانا لهذا وما كنا لنهتدى لولا ان هدانا الله عزوجل توصلت لحل وقمت بتجربته مرار وتكرارا وبعد أن تأكدت من صحة ودقة معالجة البيانات قررت ان ارفعه على هذا الصرح الشامخ ملاحظة يمكن الاستفاده من هذا المرفق فى الاتى 1- حساب ايام العمل الفعليه بدون ايام الاجازات الرسمية والعطلة الاسبوعية --- العطلة الأسبوعية بالنسبه لى انا كانت الجمعهة والسبت ممكن تعديلها ☺ 2- حساب الاجازة التى تخصم من الرصيد فيستثنى منها ايام الاجازات الرسمية والعطل الاسبوعية كذلك للعلم تعدل بيانات الاجازات الرسمية والتواريخ من خلال القاعدة طبقا لكل دولة حتى لا يتم احتساب هذه التواريخ أحبكم فى الله وانتظر ردكم بعد التجربة ActualDaysCalcult.rar
    1 point
  9. نهنئ أنفسنا بانضمام الأخ جعفر لفريق الموقع أهلا وسهلا
    1 point
  10. السلام عليكم أخي ابوخليل ان شاء الله ابحث واحاول عمل المطلوب البارحة وبعد ان اقفلت الكمبيوتر ، تذكرت ان المجلد الموثوق به ، تم العمل به من الاكسس 2007 فما فوق ، فاردت ان اضيف هذه العبارة صباحا ، ولكنك سبقتني لذا ، محتاج وقت شوي اطول حتى اشوف الطريقة لجميع اصدارات الاكسس ، بس انت لا تنساني في الدعاء جعفر
    1 point
  11. فقط كزيادة لمرتادي هذا الموضوع على ما جاء اعلاه من المهندس ياسر فيه برامج قوية تزيل البرامج من جذورها ولا تبقي اي اثرا لها عموما بعد ازالة اي برنامج يلزم اعادة تشغيل الجهاز ومن ثم التنصيب اما للمحترفين فأنصح ببرامج ازالة البرامج من جذورها ثم اعادة التشغيل ثم التنصيب من جديد الاخ وائل ما هي نسخة الويندوز لديك؟ لانه لدي ويندوز 2010 اصلية واوفيس 2016 ويعمل بشكل سلس وحاول الا تفتح التحديث للاوفيس 2016 بعد تثبيته هذا ان كانت النسخة والمفتاح ليس اصليا
    1 point
  12. أخي الكريم ابن الملك استبدال الأسطر التي في أول الموديول في قسم الإعلانات العامة بهذه الأسطر بحيث يعمل الملف على كلا النظامين 32 بت و64 بت #If VBA7 Then Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As Long Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hwnd As LongPtr) As Long Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Long #Else Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long #End If وإليك الملف المرفق بعد التعديل Convert Numbers to Letters By Excel Ver. 3.rar
    1 point
  13. طريقتك في التطبيق صحيحة 100% ولكني اعتقد ان المشكلة فقط في المعيار داخل الكود والذي اسمه strWhere وهل الاشكالية بسبب التنسيق ام بسب آخر ؟ وفكرة الاستاذ سعيد ممتازة ويمكنك الاستفادة منها اذا كان العمل من خلال النموذج ، للتعامل مع اجازة واحدة وإعدادها ولكن لا يمكن تطبيقها داخل الاستعلام لعرض اكثر من سجل
    1 point
  14. بارك الله فيك استاذ ياسر خليل أبو البراء رائع جدا
    1 point
  15. اليك الملف الاصلي للفاضل عبدالله باقشير فورم ادخال و تعديل مرن باستخدام اسم نطاق للقائمة.rar
    1 point
  16. السلام عليكم ورحمة الله وبركاته .. اخي محمد شاهد المرفق وهذا في ما يخص ايام المناسبات والمسجلة في جدول Hiloday ... يوجد نموذج اسمه frm1 وبداخله نموذج فرعي frm1sub ... الشرط موجود في استعلام داخل النموذج frm1sub > وهو يحسب ايام التعارض بين بداية الإجازة ونهايتها .. بمعنى الإجازة تبدأ بتاريخ 15/01/2016 وتنتهي بتاريخ 21/01/2016 ... وكان هناك مناسبة بين هذين التاريخين .. فهو يعطيك عدد التواريخ المتعارضة. التجربة اوفى من الكلام ... عموما وبما أنك تقريبا كل يوم من ايام المناسبة مسجلة لوحدة .. فلا تحتاج سوى طرح عدد التعارض من ايام الإجازة . اتمنى اني قدمت مايفيد . بالتوفق حساب الايام الفعلية بدون العطل الرسمية والجمعة والسبت.rar
    1 point
  17. السّلام عليكم و رحمة الله و بركاته ننتظر دروسك أخي الغالي " ياسر العربي " بفارغ الصّبر .. و خاصّةً الدّرس الذي وعدتَنا به " درس الحب " لا تطيل علينا كثيرًا .. فالنتاينْ على الأبوابْ فائق إحتراماتي
    1 point
  18. نعم نريد هذا ولك قصب السبق وانا حاضر للتطبيق والتجربة وحبذا تفرده بموضوع .. وتشير اليه هنا
    1 point
  19. أخي الغالي أنس دروبي مبروك الترقية المستحقة وفي انتظار تقديم المزيد لإخوانك المتعطشين لما في جعبتك تقبل تحياتي
    1 point
  20. السلام عليكم ورحمة الله مبروك الترقية تستحقها عن جدارة شكرا لادارة الموقع
    1 point
  21. وعليكم السلام هذه حاله غير طبيعية في الاكسس!! اذا كانت جميع برامج الاكسس عندك تُغلق عند الضغط على الزر ESC ، فأعتقد بأنه يجب عليك إعادة تنصيب أكسس ، واثناء التنصيب انتبه للزر التخصيص ، ومنه اختار تنصيب الاكسس كاملا ، وذلك عن طريق استعمال الزر الثاني في هذا الرابط: http://www.databasedev.co.uk/image/office2007_1.jpg ثم تختار Run all from my Computer ، وهو الاختيار الثاني المظلل في الصورة في الرابط التالي: http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-60-37/1373.AccessRunAllFromMyComputerOCT.jpg أما إقتراح أخي عبدالرحمن ، فهي طريقة لحل مشكلتك حاليا ولكن يجب ان تعرف اننا نستخدم زر ESC في الغاء إدخال السجل/تعديل البيانات في النموذج/الجدول (يعني اذا ادخلت معلومة في سجل جديد او عملت تعديل في معلومات سجل ، وقبل الانتقال الى سجل آخر ، واردت حذف الادخال/التعديل في هذا السجل ، فإضغط على الزر ESC ، فان اكسس سيلغيه ) ، فهذا الزر له اهمية في العمل جعفر
    1 point
  22. السلام عليكم اخي الكريم هذا رابط لفيديو قمت بتسجيله ان شاء الله يفي بالغرض الرابط
    1 point
  23. 2016 النسخة الاحترافية لكن ليست مشكلة المهم ان احد الاكواد عمل لدي والشي الثاني ان صاحب الموضوع قد عمل لديه شكرا لك المبدع العزيز المهندس ياسر على اهتمامك ورعايتك رعاك الله اينما كنت المهندس ياسر اشتغل الكود بعد تغيير الاسماء الموجودة بالجدول المرفق شكرا لك باركك الرحمن ولا تنسانا بإبداعاتك المتواصل جعل الله لك بكل حرف اجرا مثل جبال تهامة اللهم امين
    1 point
  24. هلا بيك أخوي كنت اشرب شاي وآكل مكسرات فقلت خلني اشوف السؤال اللي ما يخليني أفكر ، وما يشغلني عن شغلي (انت تعرف ، مو كل المكسرات نفس الحجم والطعم ، فلازم ادقق واختار ، وهذا يحتاج تمعّن ) ، فلقيت سؤال أخوي حربي قدّامي ، وكان الانسب لوضع التفكير جعفر
    1 point
  25. اخي الفاضل المسلم العربي الفورم لست انا صاحبه بل صاحبه السيد الفاضل عبدالله باقشير وهو من عمالقة الاكسل في المنتدى جزاه الله كل خير يعنى كل ما فعلته اخدت الفورم الجاهز من مشاركات عبدلله باقشير ووضعته في ملفك مع تعديل في اسم الصفحة فقط وصدقني لا اعرف كيف يبرمج الفورم ولكني استفدت من المنتدي كيف اوظف الفورم الجاهز لاي ملف حفظك الله اخي واسعك المولي في الدارين
    1 point
  26. كل الشكر والتقدير لادارة المنتدى ولكل من سعى في الكشف والتنقيب عن كل نشيط وموهوب ومتألق ومحترف الخ...... وتهنئة للاخ الغالي أنس دروبي الف مبروك ومن تقدم الى تقدم اكبر بارك الله فيك ووفقك الله وايانا لما يحبه ويرضاه تحياتي ياسر العربي
    1 point
  27. وعليكم السلام ورحمة الله تفضل أخي Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 27 Then KeyCode = 0 End Sub
    1 point
  28. ومن أجل أنى ضعيف فى الشرح أخذت لك هاتين الصورتين مع وضع دوائر وتعليق بسط أرجو من الله أن تفهم منهم شىء
    1 point
  29. تفضل هذا تعديل بسيط يفى بالغرض الذى تبغيه ولكن لى بعض الملاحظات على مشروعك هذا 1- البيانات يتم تخزينها بالجدول بشكل أعمدة وليس صفوف - فحضرتك جعلت لكل يوم عمود - وهذا على حسب علمى خطأ بالتصميم فلو جعلت عمودا واحدا بالجدول وأسميته الأيام مثلا - ويستحسن التسمية بالانكليزية لتلافى مشاكل التسمية- وان كان ولا بد من حفظ البيانات على شكل صفوف فبإمكانك استخدام الاستعلام الجدولى لمثل هذا الغرض وقد جعلت لحضرتك مثالا بسيط على هذا داخل المرفق - انظر جدول1 - استعلام1 - وتقرير1. 2- علامة الصح - أو مايسمى بحقل صواب/خطأ - يأخذ القيمة (1-) سالب واحد عند القيمة صواب وليس واحد وقد عدلت لك هذا داخل الكود الخاص بك عند التنسيق 3- لم أستطع فهم طريقة ظهور علامة الصح بالتقرير - حيث أن الأمر يبدو معكوسا فتظر علامة الصح بدل الخطأ والعكس كذلك 4- آسف على الاطالة..... Prog.20011.rar
    1 point
  30. حاضر يا سيدي اليك الملف مع ذكر التكرار ان وجد (الفائمة المنسدلة ما زالت كم هي ) دالة بحث عن اسمsalim 2.rar
    1 point
  31. أخي الكريم عبد العزيز قلم الإكسيل يرجى توضيح الخلل من خلال ملفك المرفق ..حيث أن الكود الثاني امتداد للدالة المعرفة ويقوم بتوزيع الأسماء كل حسب المكان المناسب كما طلب أخونا عبد العزيز المدني
    1 point
  32. أخي الكريم عبد العزيز جرب الكود التالي في وجود الدالة المعرفة ... Sub TestRun() Dim I As Integer For I = 2 To Cells(Rows.Count, "B").End(xlUp).Row If Kh_Names(Cells(I, "B"), 1) = Cells(I, "B") Then Cells(I, "C") = Kh_Names(Cells(I, "B"), 1) ElseIf Kh_Names(Cells(I, "B"), 1, 2) = Cells(I, "B") Then Cells(I, "C") = Kh_Names(Cells(I, "B"), 1) Cells(I, "G") = Kh_Names(Cells(I, "B"), 2) ElseIf Kh_Names(Cells(I, "B"), 1, 2, 3) = Cells(I, "B") Then Cells(I, "C") = Kh_Names(Cells(I, "B"), 1) Cells(I, "D") = Kh_Names(Cells(I, "B"), 2) Cells(I, "G") = Kh_Names(Cells(I, "B"), 3) ElseIf Kh_Names(Cells(I, "B"), 1, 2, 3, 4) = Cells(I, "B") Then Cells(I, "C") = Kh_Names(Cells(I, "B"), 1) Cells(I, "D") = Kh_Names(Cells(I, "B"), 2) Cells(I, "E") = Kh_Names(Cells(I, "B"), 3) Cells(I, "G") = Kh_Names(Cells(I, "B"), 4) ElseIf Kh_Names(Cells(I, "B"), 1, 2, 3, 4, 5) = Cells(I, "B") Then Cells(I, "C") = Kh_Names(Cells(I, "B"), 1) Cells(I, "D") = Kh_Names(Cells(I, "B"), 2) Cells(I, "E") = Kh_Names(Cells(I, "B"), 3) Cells(I, "F") = Kh_Names(Cells(I, "B"), 4) Cells(I, "G") = Kh_Names(Cells(I, "B"), 5) End If Next I End Sub وهذا سيستلزم أن تقوم بالنقر على زر الأمر لكي يقوم الكود باختبار كل اسم على حدا .. حسب ما سترى في الملف المرفق أرجو أن يفي بالغرض Split Compound Names UDF Function V2.rar
    1 point
  33. يمكنك فعل هذا من خلال نموذج لملأ البيانات بالجدول لا من خلال الجدول مباشرة وهذا مثالا على ذلك تفضل Hassan.rar
    1 point
  34. السلام عليكم شباب ، نعم أخوي أبوخليل انت منهم اشكركم جزيل الشكر على هذه اللمّه والسؤال عني ، وبصراحة أخجلتوني في الفترة الاخيرة قبل غيابي ، كان عندي مجال ادخل المنتدى بكثرة ، وما انتبهت لنفسي ، وصرت اشارك في أكبر عدد من المشاركات ، وبعدها حسيت بألم في معصمي ، وهذا شئ مب جديد عليّ ، فأعرف انه بسبب كثرة العمل على الكيبورد والفأرة بعد الاستراحة بيومين او ثلاث ، جأني اتصال من مؤسستين أعمل برامج لهم ، لعمل بعض التغييرات المستعجلة والمهمة على أحد برامجهم ، ولازلت ومن كم يوم راسلني بعض الشباب على الخاص للإطمئنان عليّ (طبعا هذا غير اللي يطلب مساعدة في السؤال الفلاني ) ، فحبيت ان اطمئن الجميع اني بخير والحمدلله ، وشكر الله سعيكم بالسؤال عني ، ولا اراكم الله مكروها جعفر
    1 point
  35. تحياتى و كل عام و انتم بخير و دعائى الى الله لكل اعضاء هذا المنتدى أن يكون بخير و أحسن حال و تحية خاصة للحاضر الغائب الاستاذ / عبدالله باقشير و الاستاذ / ضاحى الغريب و مع ترقية المنتدى الى الافضل دائما مرفق برنامج لحسابات العملاء و يمكن توظيفه و التعديل عليه مرفق الشرح مع البرنامج لا تنسونا من صالح الدعاء sales status _statment of client account_2015.rar
    1 point
  36. بسم الله ما شاء الله عليك متمكن أخي الحبيب محمد الريفي بارك الله فيك وجزاك الله كل خير .. إثراءاً للموضوع ..هذه معادلة تؤدي الغرض أيضاً =SUMPRODUCT((A1:A10<>"")/COUNTIF(A1:A10,A1:A10&""))
    1 point
  37. السلام عليكم هذا حل بالاكواد كود ملئ اليست دون تكرار Sub RabieCh() Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sales Report") Dim lrw As Long: lrw = ws.Cells(Rows.Count, 1).End(xlUp).Row Dim keyArray(): keyArray = ws.Range("A3:A" & lrw).Value Set sDic = CreateObject("Scripting.Dictionary") Dim i As Long For i = LBound(keyArray) To UBound(keyArray) If Not IsEmpty(keyArray(i, 1)) Then sDic(keyArray(i, 1)) = "" Next i If IsArray(keyArray) Then With Sheet2.ComboBox1 .List = sDic.keys: .ListRows = 20 .MatchEntry = fmMatchEntryNone .TextAlign = fmTextAlignRight End With choix1 = sDic.keys End If End Sub كود البحث داخل اليست (فلترة) If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then Me.ComboBox1.List = Filter(choix1, Me.ComboBox1.Text, True, vbTextCompare) Me.ComboBox1.DropDown End If لم افهم اين تريد انتائج ان شات وضح الامر لاعدل في الاكواد تحياتي للجميع قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar
    1 point
  38. تفضل أخى " ياسر " أرجو يكون المطلوب تقبل تحياتى نقل قيم بدون تكرار.rar
    1 point
  39. تابع الدرس الثانى ندخل الى مرحله تنفيذ الماكرو الذى قمنا بتسجيله ولها خطوات معينة كالتالى : نذهب الى الشيت ثم نضغط على Insert تظهر لنا نافذة نختار منها Button ثم نقوم بوضعه داخل الشيت كما بالصور التالية ثم نقوم بالضغط على الزر كليك يمين ونختار تعيين ماكرو كالتالى تظهر لنا نافذة نختر منها اسم الماكرو وهنا قد اسميته MZM_ELSHRIEF ثم نختار This Workbook ثم نضغط على OK كالتالى الآن يمكنك تنفيذ الماكرو الذى قمنا بتسجيله بمجرد الضغط على الزر أى Button يمكنك أيضا تغيير اسم الزر اذا اردت ذلك كالتالى بالضغط كليك يمين على الزر تظهر لك نافذة اختر منها اضافة نص حفظ الملف عند حفظ الملف تظهر لنا رساله كما بالصورة التالية نضغط على زر NO فتظهر لنا رساله أخرى كما بالصورة التالية نضغط على زر Yes فتظهر لنا نافذة كما بالصورة التالية نقوم بإختيار من Save as type Excel Macro-Enbled Workbook ثم نضغط على Save الخيار التالى كما بالصورة التالية فتكون أيقونه الملف كما بالصورة التالية انتهى الدرس الثانى مرفق ملف PDF به كامل الدرس الثانى يرجى فى حاله هناك استفسار أن يكون فى مضمون الدرس حتى لا يتم التشتيت وتقبلوا منى وافر الاحترام والتقدير الدرس 2.rar
    1 point
  40. الدرس الثاني تسجيل الماكرو سنقوم بعمل المثال التالى معا للتعرف على تفاصيل خاصة بالكود والماكرو وأتمنى أن يتم تنفيذه من قبل الدارس أو الراغب فى التعلم المثال - حذف محتويات الأعمدة A و C - نقل محتويات العمود B الى العمود A - نقل محتويات العمود D الى العمود C قم بتعبئة محتويات الأعمده السابقة بأيه بيانات قم بالضغط على "Ok" " Record Macro" قم بتنفيذ المطلوب يدويا الى أن تنفذ جميع الخطوات بالترتيب لأن كل ما تفعله يتم تسجيله من قبل اداه تسجيل الماكرو ثم إضغط على Stop Recording الخطوات بالصور لتسهيل تنفيذ المطلوب بعد تعبئة البيانات قم بالضغط على Record Macro تظهر لنا نافذة 1 - نقوم بكتابه اسم الماكرو نلاحظ أن اسم الماكرو لا يحتوى على ايه مسافات ومن الممكن أن نضع علامه ( _ ) بين كلمتين لو اردنا تسمية الماكرو بأسم مكون من كلمتين مثلا 2 – نجد ان هناك كلمه Ctrl + وبجوارها مربع وتعنى أننا يمكن وضع أى حرف داخل هذا المربع ويكون وسيله لإستدعاء الماكرو فيما بعد لتنفيذ المطلوب وهذا امر غير مطلوب حاليا سيتم توضيح ذلك فيما بعد ان شاء الرحمن بالتفصيل 3 – هناك مستطيل به سهم رأسه الى الأسفل وتعنى اختيار من متعدد وهنا نقوم بإختيار الملف المراد تسجيل به الماكرو فى حاله ان هناك مثلا عدد ( 2 ) ملف اكسل مفتوحين 4 – وهناك مربع آخر وهو الوصف المختصر لهذا الماكرو الذى سيتم تسجيله وحاليا هذا الأمر غير مطلوب 5 – نقوم بالضغط على زر OK بعد الانتهاء من تنفيذ المطلوب بالكامل نقوم بالضغط على ايقاف التسجيل كما بالصورة التالية ملحوظة قد تظهر علامه تسجيل الماكرو بأسفل الشيت نقوم بالضغط عليها لتسجيل الماكرو كما بالصورة ثم بعد الانتهاء من تنفيذ المطلوب نقوم بالضغط على ايقاف التسجيل كما بالصورة لقد تم تسجيل الماكرو ونبدأ الآن فى معرفة تفاصيل الكود الذى قمنا بعمل خطواته من خلال عمليه التسجيل ومعرفة بعض الأمور الأساسية والهامه للكود البرمجى للدخول الى الصفحة التى بها الكود البرمجى والذى تم تسجيله تلقائيا فى موديول نقوم بالضغط على ALT+F11 معا تفتح لنا صفحه تسمى صفحه محرر الأكواد كما بالصورة الملاحظات : 1- يبدأ الكود بكلمه Sub ثم اسم الماكرو ثم هذين القوسين المغلقين ( ) الكود دائما يبدأ بذلك الأمر وخاصة إذا كان داخل موديول وهناك أكواد تكتب ولا تسجل عن طريق الماكرو تبدأ بخلاف ذلك وتلك التى توجد داخل حدث الصفحة ( الشيت ) أو داخل حدث الملف This Workbook وسيأتى الحديث عن ذلك بالتفصيل فيما بعد ان شاء الرحمن داخل تلك الدروس 2 – هناك داخل الكود علامه (( ' )) وهى دائما تكون مصبوغة باللون الأخضر وتسمى علامه اقتباس أحادية تشير الى تعليق يمكنك كتابته يدويا بأى لغة الفائدة منها : وهذا التعليق يكون خاص إما بشرح جزء من الكود أو تشير الى تعليمات برمجيه معينه يتجاهلها الكود تماما أثناء عملية تنفيذ الكود وليس لها اى تأثير مطلق على الكود 3 – ينتهى الكود بجمله End Sub وهذه الجمله هامه جدا لإنهاء عمل الكود 4 – يمكننا هنا ونحن داخل الموديول الذى به الكود البرمجى الذى تم تسجيله تلقائيا بناء على أننا قمنا بتنفيذ الخطوات الخاصة بالمثال يدويا · تغيير اسم الكود الى اى اسم .. اى نقوم بتغيير كلمه Module1 الى اى كلمه أخرى قد تكون معبرة عن طبيعة عمل الكود أو حتى يمكننا وضع اسمنا باللغة الإنجليزية طبعا دون ترك مسافات ويمكننا الاستعانة بوضع تلك العلامه ( _ ) التى تسمى Under Scour يمكننا التعديل والإضافة داخل الكود البرمجى ايضا فى تغيير اسماء الأعمده والمدى وخلافه أو أى أمر آخر كما يتراء لنا وسيأتى فيما بعد ذكر هذا الأمر فى الدروس القادمة بشىء من التفصيل >>>> يتبع الدرس الثانى >>>>>>
    1 point
  41. السلام عليكم تفضل اخى الكريم أامل ان يكون المطلوب commission- Calculat.rar
    1 point
  42. من خلال البحث والتتبع لمعرفة المزيد عن هذا الموضوع - وجدت تقويم فارسي ميلادي صغير جدا وأحببت أن أضعه هنا عسى أن يستطيع أحد الخبراء من فهم طريقة التحويل فيه . أرجو أن لايكون الطلب صعب وأتمنى من يفيدنا في الموضوع وشكرا jalali-calendar-ver1.0.zip
    1 point
  43. بسم الله الرحمن الرحيم و الصلاة و السلام على أشرف المرسلين محمد بن عبد الله و على آله و صحبه أجمعين و سلم تسليما كثيرا و بعد عذراً أني وضعت هذا الموضوع هنا و ذلك ليس إلا لأنه كانت أولى بدايات في التعرف على البرمجة من هذا القسم الجميل حيث كانت أول ما خطت يدي في البرمجة بلغة VBA على برنامج الإكسل و لذلك هذا القسم حبيب إلى قلبي بين يديكم مثال تطبيقي عملي للاستعمال البرمجة بلغة الفيجول بيسك على التطبيقات VBA حيث تم عمل برمجية مبسطة تستعرض إمكانات هذه اللغة و مرونة أدائها مع التطبيقات و لعبة الأمثال و الحكم هي لعبة ترويحية و لكن يرجى منها الاستفادة بمعلومات و أفكار جديدة حيث تعرض هذه اللعبة مقاطع فارغة لأمثال و حكم عربية مختلفة و يقوم المستخدم بالتخمين بين الحروف للوصول إلى نص الحكمة أو المثل و له عدد معين من المحاولات . و في النهاية يتم عرض معنى المثل و الحكمة و إلى من تنسب . تحميل اللعبة بالمرفق اضغط هنا و أقدم أيضا لإخواني هدية متواضعة أحب أن أبدأ بها مشاركتي معكم لعلها تكون هدية مرحة و خفيفة على القلب فهذه البرمجية لها معزة خاصة إلى قلبي لأن فكرتها أول من أول ما خطته يدي في البرمجة و كانت على VBِA و قمت بفضل الله بنقلها على VB.net و قاعدة بيانات Acces لما تيسر لي الأمر بعد ذلك و لما لها من مكانة خاصة لكونها من باكورة أعمالي و لما تحمله من ذكريات جميلة هي لعبة خفيفة مساحتها 3.8 ميجا بايت لعبة الأمثال و الحكم هي لعبة ترويحية و لكن يرجى منها الاستفادة بمعلومات و أفكار جديدة حيث تعرض هذه اللعبة مقاطع فارغة لأمثال و حكم عربية مختلفة و يقوم المستخدم بالتخمين بين الحروف للوصول إلى نص الحكمة أو المثل و له عدد معين من المحاولات . و في النهاية يتم عرض معنى المثل و الحكمة و إلى من تنسب . اضغط هنا للتحميل و إن شاء الله تعالى في مشاركة لاحقة أعرض لكم الشيفرة المصدرية للعبة بعد إتمام بعض الإضافات عليها و الله المستعان و عليه التكلان و هو حسبنا و نعم الوكيل ----------------- أرجو لمن له أي ملاحظات أو عيوب أو فكرة للإضافات أن براسلني و له جزيل الشكر و التقدير لزيارة مدونتي
    1 point
  44. السلام عليكم أفكار جميلة ومفيدة واعتبرني أول المشاركين بإذن الله بارك الله فيك وجزاك خيرا
    1 point
  45. فهرس الدوره __________ مقدمــــــــــــــــه تحليل المشروع ملف قاعدة البيانات كيف تجعل حقل يقرأ تلقائيا قيمة مماثله من جدول آخر دمج عدة حقول في حقل واحد بالاستعلام الجداول الرئيسيه و الجداول الفرعيه المفاتيح الرئيسيه الوحيده و المتعدده العلاقات بين الجداول انشاء النماذج خصائص مربع النص
    1 point
  46. الآن نعود الى ما كنا بصدده قبل درسين و هو انشاء جدول الطلبيات , حيث اضطررنا للعروج قليلا عن ذلك الجدول بهدف تصميم جدولي شركات الشحن – الموظفين , للاستفاده منهما في تصميم حقلي شركات الشحن و رقم الموظف . سنضيف الآن الى جدول الطلبيات حقلا باسم EmployeeID و يحول الى قائمه و يأخذ قيمه من رقم الموظف في جدول الموظفين و الثاني ShipVia و يأخذ قيمته من رقم شركة الشحن في جدول شركات الشحن و بذلك يكون لدينا جدول الطلبيات Orders مكونا مما يلي : رقم مسلسل للطلبيه OrderID رقم العميل CustomerID تاريخ الطلبيه OrderDate التاريخ المطلوب للتسليم لدى العميل RequiredDate تاريخ الشحن ShippedDate رقم الموظف EmployeeID الشاحن ShipVia سؤال , هل هذا الجدول كاف لتسجيل بيانات طلبية مبيعات ؟ طبعا لا , ينقص شي مهم جدا ألا و هو الأصناف المراد تحضيرها للبيع , و لكن كيف ستدخل هذه الأصناف في جدول الطلبيات ؟ من السهل أن نقول : نضيف حقلا لاسم الصنف الى جدول الطلبيات و حقلا آخر للكمية المطلوبه و حقلا ثالثا لسعر الوحده . حسنا و لكن ماذا اذا كانت الفاتورة تتكون من صنفين أو ثلاثة , سنضيف لكل صنف ثلاثة حقول آخرى , طيب ماذا لو كانت الطلبيه مؤلفة من ألف صنف مثلا , هل سنضيف ثلاثة آلاف حقل للجدول ؟ هذا الحل غير مجدي و غير مقبول أيضا من الناحية البرمجيه , اذ أنه في مثل هذه الحاله حيث طالما عدد الحقول غير محدد لذا من الأنسب اللجوء الى طريقه أخرى تستوعب ادخال عدد غير محدود من الأصناف على نفس هذه الفاتوره , و ذلك عن طريق انشاء جدول آخر فرعي لجدول الطلبيات و ليكن اسمه Order Details و هنا ستدخل الأصناف عبر هذا الجدول سجلا بسجل و ليس حقلا بحقل كما كان حلا غير مقبول . سيتكون جدول Order Details من الحقول التاليه : رقم الصنف ProductID رقم , و سيتحول الى قائمه و يأخذ قيمته من حقل رقم الصنف في جدول الأصناف الكميه Quantity سعر الوحده UnitPrice الخصم الفرعي على الصنف Discount اجمالي الصنف و الذي هو عباره عن الكميه مضروبا بسعر الوحده لن يكون حقلا من الجدول , اذ أن قيمته غير ثابته و تتأثر بتغير كل من حقلي الكميه و سعر الوحده , لذلك سيتم استنتاج القيمه بواسطة انشاء مربع نص في نموذج الطلبيه تسند اليه معادلة القيمه , لنتخيل شكل ادخال الأصناف على الطلبيه من خلال نموذج الطلبيات , لنأخذ مثلا شكل أي فاتوره من أي متجر نشتري منه , نجد لدينا غالبا ثلاثة أقسام للفاتوره , قسم الترويسه و فيها بيانات مثل اسم المتجر و عنوان المحل و رقم الفاتوره و تاريخها و اسم الزبون , ثم يوجد قسم جدولي لتسجيل بيانات الأصناف و كمياتها و سعر الوحده و اجمالي الصنف , و تذيل الفاتورة بمجموع عام للقيمه مضافا اليها نفقات أخرى مثل ضرائب أو تكلفة نقل ,, الخ ثم صافي قيمة الفاتوره , و ختم المتجر و على هذا الأساس سيتم عمل نموذج الطلبيات ( و الذي بنفس الوقت سيكون فاتورة العميل في حال الشحن ) , بحيث البيانات التفصيليه في ترويسة الفاتورة سيكون مصدرها جدول الطلبيات Orders بينما القسم الجدولي و الخاص بأصناف الفاتورة سيكون مصدر بياناته الجدول Order Details و هذا مايعبر عنه بالنموذج الفرعي و الذي سيتم الحديث عنه لاحقا , الآن سؤال , لنفرض أننا لانقوم بادخال البيانات عن طريق النموذج و انما عن طريق الجداول مباشرة سنقوم بداية بادخال البيانات الخاصة بترويسة الفاتورة رقم 340 مثلا في جدول Orders حيث سيكون لدينا OrderID = 340 سنذهب الآن الى جدول Order Details لادخال البيانات الخاصة بأصناف نفس الطلبيه , سندخل رقم الصنف و الكميه و سعر الوحده , طبعا هذا الجدول معبأ ببيانات أصناف تعود لطلبيات سابقه , و لكن كيف سيتم الاشارة في ذلك الجدول الى أن هذه الأصناف تعود للطلبيه رقم 340 و ليس الى غيرها ؟ هنا لابد من انشاء حقل جديد ضمن جدول Order Details و يسمى OrderID يتم ربطه مع نفس اسم الحقل في الجدول Orders ( العلاقات سيتم التحدث عنا لاحقا ) و يأخذ نفس القيمه أي 340 في حال تم الربط بين الجدولين على الحقل OrderID اذا سيتم تلقائيا ربط اصناف كل طلبيه بالسجل الرئيسي في جدول الطلبيات , أي بمجرد استعلمنا عن الطلبيه رقم 340 سنعرف اصنافها تلقائيا على أساس نفس هذا الرقم في الجدول الفرعي . و سيتضح هذا الأمر بدقة أكثر في حال تصميم نموذج الطلبيات و النموذج الفرعي له .
    1 point
  47. امامك ثلاث حلول: الحل الأول: ان تستخدم الدالة Dcount عن طريق وضع هذا الكود عند حدث قبل التحديث لنموذج ادخال البيانات If DCount("number", "TableName", "number = forms!FormName!number") > 1 Then MsgBox "الرقم مكرر" Cancel = True End If مع افتراض ان ان نموذج ادخال البيانات اسمة FormName والجدول الذي به البيانات TableName وحقل الرقم اسمه number الحل الثاني: وهو ان تستخدم كائنات الوصول للبيانات DAO عن طريق وضع هذا الكود قبل التحديث لنموذج ادخال البيانات Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = Me.RecordsetClone rst.MoveFirst Do Until rst.EOF If rst!number = Me.number Then MsgBox "الرقم مكرر" Cancel = True Exit Do End If rst.MoveNext Loop rst.Close db.Close الحل الثالث: وهو عن طريق ايقاف رسالة الخطأ التي تظهر في حالة المفتاح الأساسي وتظهر الرسالة الذي تريدها انت بوضع الكود التالي عن حدث الخطأ On Error للنموذج Private Sub Form_Error(DataErr As Integer, Response As Integer) Dim DATAERRCONTINUE Select Case DataErr Case Is = 3022 MsgBox "الرقم مكرر" Response = DATAERRCONTINUE End Select End Sub مع خالص التحية
    1 point
×
×
  • اضف...

Important Information