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

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

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

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

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


    • نقاط

      8

    • Posts

      13165


  2. رمهان

    رمهان

    الخبراء


    • نقاط

      5

    • Posts

      2390


  3. عبدالله فاروق ابو ريان
  4. الصـقر

    الصـقر

    الخبراء


    • نقاط

      3

    • Posts

      1836


Popular Content

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

  1. اعزائي اليكم هذا السطرالواحد من الكود والذي يقوم بفتح مربع حوار سحب الصور من الاسكنر وحفظ الصورة في نفس مسار برنامجك الاكسس ! Set img = CreateObject("wia.commondialog").ShowAcquireImage.SaveFile(CurrentProject.Path & "\" & InputBox("ادخل اسم الصورة") & ".jpg") تحياتي
    3 points
  2. السلام عليكم اخواني واساتذتي الكرام بارك الله فيكم انا سعيد جداً والله اعلم بذلك بهذا الموضوع الرائع والسبب هو أن الجميع يحرص علي حب وود والعلاقات بينه وبين إخوانه في المنتدي بيتنا الثاني بهذا العتاب الجميل ادام الله المودة والأخوة بيننا جميعاً واحبكم الله الذي احببتكم فيه هذه هي الروح المميزة لهذا الصرح العملاق وانا أري حسب وجهة نظري الشخصية انه اذا كانت الطريقة لإلغاء الحماية وكسرها ببرنامج من البرامج المعروفة فلا داعي لذكرها هنا في المنتدي طبقا لقواعد المنتدي وشروطه أما إذا كانت هذه الطريقة بكود أو بطريقة أخري جديدة فلا مانع من ذلك ولكن وجب على صاحب الموضوع أو الفكرة التنويه وإخلاء مسؤوليته أمام الله وأمام الجميع بأنه قام بوضعها من باب العلم و التعلم وأنه غير مسؤول عن من يستخدمها في ما يخالف ذلك أو الحقوق الشخصية لأصحاب البرامج حتي يبرأ ذمته من مثل هذه الأفعال تقبل الله منا ومنكم صالح الأعمال وجزاكم الله خيرا عذراً علي الاطاله تقبلوا خالص تحياتي وبعد اذنكم سيتم تغيير العنوان
    3 points
  3. السلام عليكم ورحمة الله وبركاته إخواني الكرام ..أحبابي في الله **************** أقدم لكم درس جديد ، لعله أن يكون مفيد ، ويعجب الأخ الغالي عادل أبو زيد ، والأخ الحبيب أبو عيد ، واللي ميعجبوش الدرس يبعد بعيد .. درس اليوم عن استخدام دوال الإكسيل أو معظم الدوال الموجودة في الإكسيل في محرر الأكواد .. أترككم مع الفيديو .. ولا تنسوا لايكات على اليوتيوب ولايكات على الموضوع ولايكات للمنتدى ولايكات للأعضاء (الليلة ليلة اللايكات) ولا تنسوا قبل كل ذلك والأهم من ذلك ..دعواتكم بظهر الغيب إليكم رابط الفيديو أرجو أن ينال الموضوع إعجابكم وتستفيدوا منه .. أخوكم أبو البراء WorksheetFunction VBA.rar
    2 points
  4. استاذى الفاضل وجود شئ غلط فى المنتدى لا يعطينا الحق فى المزيد فى الاستمرار بالخطأ والاصرار على مثل ذالك الاعمال التى تعتدى على حقوق الغير فهذه من الاعمال المنافيه لحقوق الملكيه الفكريه وانا ضدها واناشد الادارة بالبت فى هذه الامور التى زادت بكثرة فى الاونه الاخيرة ارجوا الرد فى اسرع وقت ممكن اخى الفاضل اليك هذه الروابط التى تدل على اخلاق الفرسان والتى ترفض مثل ذالك الاعمال وهى على سبيل المثال لا للحصر http://www.officena.net/ib/index.php?showtopic=11469&hl=%D8%A7%D9%84%D8%AD%D9%85%D8%A7%D9%8A%D9%87 http://www.officena.net/ib/index.php?showtopic=10484&hl=%D8%A7%D9%84%D8%AD%D9%85%D8%A7%D9%8A%D9%87 نرجوا وقفه صارمه من الادارة فى اسرع وقت ممكن
    2 points
  5. السلام عليكم مثال قديم للأستاذ أبو هاجر لاستخدام الماسح ( السكانر ) عن طريق الأكسس قمت على تحديثه وزيادة السيطرة واستبعاد تخزين مسار الصور حيث لا داعي لها . مرفق ملف مكتبة dll يجب نسخه في مجلد Windows\System . لا تنسونا من دعاكم . تحياتي . الملفات المرفقة Scanner.rar ( 471.28ك ) عدد مرات التنزيل: 38
    1 point
  6. السلام عليكم سأشرح كيف اني أشير الى مكان وجود الجداول (سواء المضمنة او المرتبطة)، والذي سيكون مجلد الصور سيكون معه في نفس المجلد ، يعني مجلد الصور دائما يجب ان يكون في نفس مجلد قاعدة البيانات التي تحتوي على الجداول (بغض النظر ، سواء أكانت قاعدة البيانات واحدة او مقسمة). نضع هذا الكود في وحدة نمطية: Public Function GetDBPath() As String Dim strFullPath, Table_Name As String Dim rst As DAO.Recordset 'check for a linked table Set rst = CurrentDb.OpenRecordset("SELECT Name FROM msysObjects WHERE Type=6 AND Left([Name],2) Not In ('~t','ms')") If rst.EOF Then 'Table doesn't exist Exit Function Else 'linked Table exists Table_Name = rst(0) End If rst.Close Set rst = Nothing 'now get the path strFullPath = Mid(DBEngine.Workspaces(0).Databases(0).TableDefs(Table_Name).Connect, 11) GetDBPath = Left(strFullPath, InStrRev(strFullPath, "\")) End Function Public Function BE_or_FE() ' to use: ' BE_or_FE ' 'if BE exits, use its path, 'otherwise use the Application path 'get the BE Path BE_or_FE = GetDBPath If Len(BE_or_FE & "") = 0 Then BE_or_FE = Application.CurrentProject.Path End If End Function Function Images_Location() 'If we want the Backend Folder Images_Location = BE_or_FE & "\archive" 'or we can assign any location we want 'Images_Location = "c:\Temp" & "\archive" End Function وعندما اريد ان اعرف مسار الجداول (بغض النظر في كون الجداول مضمنه او مرتبطة) ، فاناديه هكذا: msgbox BE_or_FE وعندما اريد ان اعرف مسار مجلد الصور ، فاناديه هكذا: msgbox Images_Location وعندما اريد ان اشير الى الصورة التي اشرت اليها انت ، فاناديه هكذا: Images_Location & "\" & txt1 & ".jpg" جعفر
    1 point
  7. بسم الله الرحمن الرحمن أحبابى السلام عليكم ورحمة الله وبركاته وبعد أقدم إلى حضراتكم ملف صغيراً وبسيطاً لكنه يحتوى على كود - من وجهة نظرى المحدودة - فوق الرائع الفكرة هى أن الملف يغلق اذا لم يكن هناك مستخدم يعمل عليه الاغلاق يتم بعد ترك المستخدم له بدقائق محددة " يتم تحديد الدقائق فى المديول العادى" الكود الرئيسى يوضع فى حدث المصنف اذا رجع المستخدم الى العمل على الملف قبل نهاية المدة يتم تجاهل الكود ولا يتم الاغلاق لو حاولت تغيير عدد الدقائق رغبةً منك فى اطالة المدة فان الكود لا يعمل بالعدد الجديد الا بعد الحفظ والاغلاق واعادة فتح الملف تحياتى / مختار حسين محمود :fff: Timed Closing Of A Workbook.rar
    1 point
  8. الحب في الله تعالى أوثق عرى الإيمان وهو منحة من الله لا يشترى بالمال . قال تعالى في بيان فضله على عباده المتحابين ( وَأَلَّفَ بَيْنَ قُلُوبِهِمْ لَوْ أَنفَقْتَ مَا فِي الأَرْضِ جَمِيعًا مَّا أَلَّفَتْ بَيْنَ قُلُوبِهِمْ وَلَكِنَّ اللهَ أَلَّفَ بَيْنَهُمْ إِنَّهُ عَزِيزٌ حَكِيمٌ ) . و قد جعل الله الحب في الله سببا للنجاة من النار و دخول الجنة ، ففي الحديث الصحيح المتفق عليه في السبعة الذين يظلهم الله تحت ظله ، منهم ( رجلان تحابا في الله ، اجتمعا عليه ، و تفرقا عليه ) المحبة في الله نعمة من الله ، فقد الأحبة في الله غربة ، والتواصل معهم أنس ومسرة ، هم للعين قرة ، فسلام على من دام في القلب ذكراهم ، وإن غابوا عن العين قلنا يا رب احفظهم وارعاهم . لا يوجد متسع للكلام ، أحبكم في الله جمعياً اخي في الله المبدع أ/ شوقي ربيع وثمرة التعاون المثمر بأذن الله بيننا ، نأتي من جديد في سلسة برامج ضاحي وشوقي الخدمية ، لتيسير ما امكن علي اخواننا , نفعنا الله واياكم بما علمنا ولا تنسونا بدعوة بصلاح الحال بظهر الغيب . كلمة مرور الأدمن admin VBA Password 6626 فورم تعديل / اضافة صلاحيات المستخدمين البرنامج بالمرفقات Multi User Form Permissions Management.rar
    1 point
  9. منذ عشرين سنة كنت رئيسا لقسم تدريب الكمبيوتر في أحد المراكز التدريبية الشهيرة وكان ما أنتجتة تدريب حوالى 7000 متدرب وأشأت مشروع أسميته المبرمج الصغير الذى استفاد منه 1000 تلميذ وأنا الآن على المعاش منذ خمسة أعوام وكنت ألقب بأبي الأكسل قبل ظهور Office 2003 ولكن رأيت موقعكم قريبا من حوالى أسبوع وبعد رؤية المجهود المبذول فأرجو أن تقبلوني طالب في Kg1 أكادميتكم العامرة التي يشرفن الانتساب إليها إلا أن كان سنى قد كبر على قبولي طرفكم وشكرا على ما تبذلوه من عطاء جزاكم الله خيرا عنه
    1 point
  10. فعلا استاذ ياسر خليل الخطأ مني والمعادلة صح مركز الرقم 7 ليس 3 ولكن 4 اشكر لك اهتمامك وجزاك الله خير
    1 point
  11. جرب أن تضع أي رقم من الأرقام المذكورة في الخلية A1 ثم في الخلية B1 جرب المعادلة التالية =(A1/2)+0.5 مفيش غير .. الرقم 7 مركزه = 3 .. لم يتحقق!!
    1 point
  12. المطلوب غير واضح على الإطلاق يرجى إرفاق ملف وتوضيح المطلوب أخي الساهر
    1 point
  13. حياك الله أخوي محمد بس رجاء اترك لي الرابط في هذا الموضوع ، حتى اشوفه مباشرة جعفر
    1 point
  14. اخي صقر سوريا الرابط السابق هي لمعالجة تاريخ ام القرى والذي يفرق عن التاريخ الهجري اما لطلبك وباسهل الطرق : ضع الكود التالي لحدث في الحالي للنموذج : Private Sub Form_Current() Dim x As String Calendar = vbCalHijri x = t2 t1 = x End Sub بالتوفيق
    1 point
  15. أخى الفاضل / أشرف أرفق ملف توضح به ما تريد حتى يتم العمل عليه
    1 point
  16. السلام عليكم أخى الفاضل عبد الله تسلم ايديك ولإثراء الموضوع هذا الكود يحفظ نسخة من الملف فى نفس مسار الملف الأصلى وبامتداد xlsx Sub SaveAs() Dim FName As String Dim FPath As String On Error Resume Next If ActiveWorkbook.Sheets("sheet10").Range("A1") = "" Then MsgBox "الخلية فارغة" Exit Sub End If FName = ActiveWorkbook.Sheets("sheet10").Range("A1") FPath = ActiveWorkbook.Path Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=FPath & "\" & FName, FileFormat:=51 End Sub حفظ باسم.rar
    1 point
  17. الأستاذ: مصطفى سعد.. السلام عليكم ورحمة الله وبركاته. تفضل أخي .. أدخل على هذين الرابطين، واختر ما شئت.. وفقني الله وإياك لما يحب ويرضى. http://it-ebooks.info/tag/excel/ http://www.google.com/cse?cx=013493258683483688568:xhfa6ctm1ki&q=Excel%202013#gsc.tab=0&gsc.q=Excel%202013%20VBA&gsc.sort=
    1 point
  18. السلام عليكم ورحمة الله الموضوع بسيط جدا باستخدام دالة if ومرفق شيت يوضح الطريقة نسبة المبيعات.rar
    1 point
  19. حياكم الله اخ محمد نعم يظهر مربع الحوارسحب صورة واحدة من الاسكنر وحفظها بالاسم المدخل في مربع حوار اسم الصورة وفي مسار القاعدة الحالية! وبدون مرجع ! ولا شي اخر! بالتوفيق
    1 point
  20. السلام عليكم اتفضل استاذ صديق جرب هذا الحل من تاريخ.rar
    1 point
  21. عذراً أخى الحبيب ياسر خليل فأنا لا أجيد كتابة الآكواد داخل المحرر الكامل أو المشاركات
    1 point
  22. معنى هذا الكلام أن الهوامش ضبطت بطريقة غير صحيحة (تم تصغير الهوامش أكثر من اللازم) والنص في ذلك الجزء لن يظهر على الورقة المطبوعة
    1 point
  23. الأخ الحبيب عبد الله بولنوار بارك الله فيك على مرورك بالموضوع ومحاولة التطبيق تقدم الأخ عمرو طلبة بكود لحل المشكلة .. ولكن يرجى من الأخ الغالي عمرو وضع الاكواد بين أقواس الكود ليظهر الكود بشكل لائق Sub SumRangeB() With Sheets("Sheet1").Range("D1:D" & Cells(Rows.Count, 1).End(xlUp).Row) .Formula = "=SUM(A1:C1)" .Value = .Value End With End Sub وهذا كود آخر باستخدام الحلقة التكرارية ليحقق الهدف Sub SumRangeA() Dim MyRange As Range Dim X, I For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row Set MyRange = Sheet1.Range("A" & I & ":C" & I) X = Application.WorksheetFunction.Sum(MyRange) Range("D" & I) = X Next I End Sub الأخ الحبيب عادل أبو زيد نورت الموضوع بردك الجميل وكلماتك الرقيقة تقبلوا تحياتي
    1 point
  24. عزيزي استاذ صقر رويداً رويداً فانا لم اقصد التعدي على حقوق الغير وقبل اى شيئ انا قمت بحذف الملف وارجو ان تتقبل حيثياتي في المشاركة اولاً : اعتقد بانه قبل رفع اى موضوع جديد فهناك ادارة للمنتدى تقوم بالموافقة على نشر الموضوع من عدمه ثانيا : انا نوهت في المشاركة على وجود اجتهادات كثيرة في هذا الامر مازالت موجودة في المنتدى ولم تقم الادارة بحذفها ثالثاً : انا لم اشارك لاستعراض مهارة في الاكواد ولكن لان هناك غرض آخر مترتب على هذا الامر وهو حذف موديول محدد بعد الكسر وطلبت فيه المساعدة رابعاً : وهو الاهم هذا الكود موجود في اكثر من موقع اجنبي ولا يحتاج الا مجهود بسيط للعثور عليه وانا اوافقك الراى في ان تفصل ادارة المنتدى في هذا الامر تحياتي
    1 point
  25. استاذى الفاضل هانى بدر بعد ما قمت بحذف الملف تقبل منى اعتذارى وارفع لك القبعه احتراما واجلالا لشخصكم الكريم فهذه اخلاق الفرسان التى تدرك الخطأ وتقومه وتصححه فأنت فارس من فرسان المنتدى وانا اعرف اخلاقك جيدا ولكن ربما غيرك يستغل مثل ذالك الاعمال فى امور تضر الغير واكيد انت لا ترضى بذالك جزاكم الله خيرا وتقبل تحياتى
    1 point
  26. شكرا جزيلا استاذى الفاضل اعزك الله ونفع بك دائما وكنتم فيمن خصهم الله بقضاء حوائج الناس جارى التجربة لان خبرتى ليست عميقة فى عالم الاكواد استودعكم الله السلام عليكم ورحمة الله
    1 point
  27. الاضافة الاولى : حفظ الصور في مجلد البرنامج على الشبكة باستخدام الواجهة الفرعية البعض يقف امام هذه المسألة حائرا ؛ كيف لي ان اعرف مسار قاعدة الجداول داخل الشبكة وكيف اصل اليه وكيف يتم الحفظ ولتسهيل المهمة ، وجعلها كمن يتعامل مع جهاز واحد ، تعالو نأخذ درسا ضمن الشبكات : من الجهاز الفرعي ننقر بالزر الايمن على جهاز الكمبيوتر من على سطح المكتب او من القائمة نختار : تعيين محرك اقراص الشبكة سيظهر لنا مربع حوار نختار حرفا وليكن حرف z ننقر على استعراض ونبحث عن مجلد البرنامج داخل الشبكة ثم نختاره ثم انهاء نلاحظ انه تم انشاء محرك اقراص بجانب C ، D باسم z وبداخله جميع ملفات البرنامج الآن يمكننا تغيير مكان حفظ الصورة داخل الواجهة الامامية كما تظهر : CurrentProject.Path & "\archive\" & txt1 & ".jpg" ونغيرها الى : "z:\archive\" & txt1 & ".jpg"
    1 point
  28. بعد إذن الاستاذ ياسر خليل ا/عبد الله بولنوار رداَ على طلبك الكود يختلف قليلاً with sheets"sheet1".Range("D1:D1000") .formula = "=sum(A1,B1,C1)" .value=.value end with مع تحياتى
    1 point
  29. اخي الفاضل الاداة اللي قلتلك عليها انت بتحدد اللي انت عاوز تحوله ل bdf او jebg
    1 point
  30. نعم الشرح : عندما تكون الخلية E1 فارغة يظهر خطأ في الصف A3:J3 والدالة iferror تحل هذا الإشكال هذه الدالة تخبر الإكسل بأنه في حالة وجود خطأ لا تظهره واجعل الخلية فارغة "" تفضل البيانات#2.rar
    1 point
  31. وعليكم السلام هذه محاولة اضغط الزر ولاحظ العمودين ac ad هل تجاهل الكود بعض القيم المطلوبة ؟ قمة وقاع.rar
    1 point
  32. المعلم الكبيرالأســـــتاذ الفاضل / رؤوف " أبا الأكسيل " نورت الدنيا كلها ونورت جامعتنا المباركة شرف لنا أن تكون أخــــا كبيرا لنا ومعلما جليلا نحتذى به فشرف لنا أن نتتلمذ ونرتوى من بحرعلمكم الفياض أسأل الله تعالى أن يمتعكم بالصحة والعافية تقبل وافراحترامى وتقديرى وجزاكم الله خيرا
    1 point
  33. الاستاذ الفاضل الكريم ياسر خليل الكمبيوتر اصبح مزدحم باعمالك باقات اعمال ياسر خليل .. جعلها الله فى ميزان حسناتك ونفعك بها فى الدنيا والاخرة انت والاسرة الكريمه وشرف لى ان تذكرنى فى مقدمه الاعمال فهذا الشرف تاج على راسى تقبل منى كل الحب والتقدير ومليون باقة ورد ارسلها اليك
    1 point
  34. Private Sub Workbook_Open() Dim x As Date x = Date If x >= Sheets(1).Cells(1, 1).Value Then MsgBox "goodbyee" Application.DisplayAlerts = False With ThisWorkbook .Saved = True .Close End With Else: MsgBox " file will close after " & Sheets(1).Cells(1, 1).Value - x & " days " End If End Sub السلام عليكم بخصوص اغلاق الملف هناك ايضا عشرات الطرق 2015.rar
    1 point
  35. الأخ الحبيب رشراش علي . لا يوجد كلمة مستحيل .. فالمستحيل هو ما نصنعه بأيدينا .. والممكن ممكن أن نصنعه بأيدينا إليك الملف المرفق .. من خلال الفورم يمكنك تغيير كلمة السر في الموديول رقم 1 .. والخيال هو بدايته خيال ولكنه قد ينتهي بواقع .. قم بإدخال كلمة السر الجديدة في التكست بوكس ، ليتم تغييرها في الموديول في الحال Change Password In Module Using UserForm.rar
    1 point
  36. اخى الحبيب soft.sample المرفق هو بالفعل قاعدة بيانات اكسس وليس اكسل
    1 point
  37. اخي في اضافة بتحتاج تسطبها وهي بتضاف في الاكسل تمكنك من تحويل الملفات الاضافة اسمها Universal Document Converter
    1 point
  38. اخي الفاضل امين بعد اذن استاذنا الفاضل سليم الملف المرفق عند كتابة كلمة مقبوض في أي خلية ف الجدول يتم تلوين السطر اللي فيه الكلمة اتمنى ان يكون المطلوب تنسيق شرطي.rar
    1 point
  39. الحلقة الرابعة عشر ***************** السلام عليكم ورحمة الله وبركاته وحشتكم !! أكيد لا .. لأني لو وحشتكم كنتو فتحتوا الباب وسألتوا عليا .. عموما إنتو وحشتوني ، وعشان وحشتوني هاقدم لكم حلقة جديدة يمكن تفتكروني. النهاردة هتكلم عن حاجة ناس كتير شرحوها ، وشرحوها بشكل ممتاز ، ودا خلاني مش عارف أشرح إزاي ، لأن اللي شرحوها وفوا شرحها صراحة .. هنتكلم عن الحلقات (بس مش حلقات افتح الباب) الحلقات اللي هنتكلم عنها الحلقات التكرارية ، ومن اسمها هي عبارة عن حلقات بتتكرر (إضافة عظيمة!) اسمها بالإنجليزي Loops ودي مهمة جداً في عالم الأكواد ، محدش يقدر يستغنى عنها تقريباً .. نفترض إني دخلت الفصل (بما إني معلم) ولسه دي أول مرة أتعرف على الطلبة اللي في الفصل ..يا ترى أنا عندي استعداد أخلى طالب طالب يقوم وأنا أقوله قول اسمك والطالب اللي بعديه قول اسمك .. أعتقد إن ريقي هينشف ودماغي هتصدع ودا طبعا مش يرضيكم (مش كدا ولا ايه) ..أنا من النوع الكسول فكل اللي هعمله هعمل تكرار من أول طالب في الفصل لآخر طالب ، وأعطي الأمر مرة واحدة .. من أول طالب إلى آخر طالب قووووول اسمك يا حبيبي الطالب التالي هو دا شكل الحلقة التكرارية .. نبرمجها بلغة الـ VBA ... هنقول إن الفصل فيه 60 طالب (معلش دا واقع الفصول في مصر) .. نقطة مهمة مننساش إن الطالب متغير مش ثابت ، فنرمز للطالب المتغير بالرمز X مثلاً ... Sub Loops() Dim X As Long For X = 1 To 60 'Say your name Next X End Sub طبعاً الكود دا شوية له علاقة بالبرمجة وشوية هتش .. ايه اللي هنعمله ..زي ما اتعودنا (دايما) إننا نعرف المتغير .. ونركز في السطر الثاني بدأ بكلمة For متبوعة باسم المتغير اللي هو X وبعدين علامة يساوي عشان نحدد قيمة X المتغيرة (أو الطالب المتغير) وهنا القيمة ليها بداية وليها نهاية (كل شيء له بداية ونهاية) وبيفصل بين البداية والنهاية حرف الجر To وفي آخر الحلقة التكرارية جملة Next X وممكن نقول Next ونسكت ، ومحرر الأكواد هيفهم لوحده .. بس أنا تقليدي شويتين فخلينا نكتب المتغير ، عشان الكود ممكن يكون فيه أكتر من حلقة تكرارية .. الجزء المهم هو الجزء اللي بين السطرين ، وهو دا الأمر المطلوب تكراره ، السطر اللي هنا مجرد تعليق وهتش وملوش علاقة بالبرمجة .. بس حبيت أقرب لكم الفكرة بأسلوب جديد.. كدا لما أنفذ الكود اللي فات ، كل اللي عملته إني أعطيت الأمر مرة واحدة وبس (وأنا حاطط رجل على رجل ... الدورة تلف على طالب طالب ، ويقول اسمه ، ولما يخلص ، الدورة تنتقل للطالب اللي بعديه وهكذا إلى أن ينتهي الطلاب ، ولما الـ 60 طالب يخلصوا ..يتم إيقاف تنفيذ الكود... ناخد أول مثال بجد عشان نقدر نتعلم إزاي نستفيد من الحلقات التكرارية :: لنفترض أننا عايزين نرقم النطاق A1:A10 بالأرقام من 1 إلى 10يعني الخلية A1 = 1 والخلية A2=2 وهكذا ..طبعا الموضوع بسيط جدا Sub NumberRange() Range("A1").Value = 1 Range("A2").Value = 2 Range("A3").Value = 3 Range("A4").Value = 4 Range("A5").Value = 5 Range("A6").Value = 6 Range("A7").Value = 7 Range("A8").Value = 8 Range("A9").Value = 9 Range("A10").Value = 10 End Sub كود في منتهى الروعة .. شايف حسام بيضحك ويقولي عايزك ترقم النطاق من A1:A100 (وابتسم ابتسامة فيها شماته !!) نفكر شوية .. بقول نفكر شوية (بلاش تكمل الحلقة غير لما تبص في الكود وتفكر شوية .. فكر شوية واكسب التوفير في الوقت والجهد) ايه المشترك في أسطر الكود .. وايه المختلف .. المتشابه في كل الأسطر Range("A ").Value = والمختلف هو الرقم بعد حرف الـ A ، والقيمة اللي بعد علامة يساوي .. في السطر الأول الرقم اللي بعد حرف الـ A هو 1 ، والقيمة بعد علامة يساوي بردو 1 ، ونفس الكلام مع السطر رقم 2 ، ورقم 3 وهكذا يبقا أول حاجة تفكر فيها إنك المختلف أو المتغير أو الشيء الغير ثابت تضعه في متغير ، ودا لأنه مش ثابت ومتغير .. فنضع متغير باسم X مثلاً ونعمل حلقة تكرارية من 1 إلى 10 (دي القيم اللي هيحملها المتغير) Sub NumberRange() Dim X As Long For X = 1 To 10 Range("A" & X).Value = X Next X End Sub نفس الكود اللي شرحناه من شوية ، الاختلاف في السطر اللي بين سطري التكرار .. الحلقة هتدور 10 مرات ، وفي كل مرة المتغير X بيحمل قيمة مختلفة (نرررررركز في الجزئية اللي جاية لأنها مهمة جداً جداً ) مش هنفذ الكود مرة واحدة .. سنقوم بعملية التنفيذ واحدة واحدة ، اللي مستعجل يروح ينفذ الكود مرة واحدة ، واللي مش مستعجل أنا معاه ..عشان يعرف حاجة مش هيعرفها الأخ المستعجل ... ضع مؤشر الماوس في أي مكان في الكود .. جميل >> اضغط F8 من لوحة المفاتيح ، وجمد قلبك وقول يا رب .. لاحظت ايه يا عبد المحسن؟ عبد المحسن ناااااااام مني (الله يسامحك) ..عبد المحسن : شايف الدنيا صفرا ليه ، هو فيه عاصفة النهاردة كمان؟ .. رديت عليه : لا يا عبد المحسن كمل نومك ، السطر الأصفر اللي ظهر ده سببه إننا ضغطنا F8 .. ودا فايدته إننا هنقوم بعملية التنفيذ واحدة واحدة .. سطر سطر .. السطر الأصفر على أول سطر في الكود Sub NumberRange() اضغط F8 مرة تانية ، ايه اللي حصل انتقل السطر الأصفر للسطر التالت ، طيب والسطر التاني يا معلم .. ملوش لازمة !!! أكبر خطأ إنك تعتقد إنه ملوش لازمة ، لما ضغطنا F8 للمرة التانية ، محرر الأكواد خزن في الذاكرة كل المتغيرات الموجودة في الكود عايز تتأكد من كلامي ، حرك مؤشر الماوس اللي على شكل حرف I (فيه شرطة فوق وشرطة تحت) حرك الماوس من غير ما تدوس كليك .. واقف على المتغير X هتلاقي تلميح في مستطيل صغير بيقولك المتغير X=0 ، دي كدا القيمة المبدئية للمتغير ... لما تضغط F8 للمرة التالتة ، روح شوف قيمة X مرة تانية هتلاقي قيمة X=1 (ايه اللي خلاها 1 مش كانت صفر من لحظة ) اللي حصل إننا انتقلنا من السطر For X = 1 To 10 والسطر دا هيبدأ في عمل الحلقة التكرارية اللي بنقول عليها ، والحلقة بدايتها 1 زي ما حددنا (وطبعاً ممكن نغير نقطة البداية يا شباب .. مش شرط 1) حرك مؤشر الماوس من غير ما تدوس على المتغير X في السطر المظلل بالأصفر Range("A" & X).Value = X هنلاقي زي ما قلت إن X =1 يعني محرر الأكواد هيعمل ايه دلوقتي ، هيشيل كل X ويحط مكانه القيمة 1 ، فيصبح السطر في الذاكرة بهذا الشكل Range("A1").Value = 1 لحد كدا تمام التمام ، صغر محرر الأكواد بحيث تكون ورقة العمل ظاهرة بالنسبة لك واتأكد إن النطاق A1:A10 فارغ ليس به أي بيانات ، وركز في ورقة العمل ، واضغط F8 عشان تنقل السطر الأصفر إلى هذا السطر ، ولاحظ ورقة العمل Next X لاحظت يا منصور الخلية A1 وضعت فيها القيمة 1 ، نخلي بالنا إن السطر الأصفر بيتم تنفيذه بعد الخروج منه ، فلما خرجنا من السطر تم تنفيذ الأمر وأعطى القيمة 1 للخلية A1 .. اضغط F8 مرة أخرى ، ونلاحظ إن السطر الأصفر انتقل للسطر اللي قبليه ، مش لبداية الحلقة التكرارية ، يعني ببساطة السطر اللي بيحدد بداية الحلقة ونهايتها بيعدي عليه مرة واحدة فقط .. أما سطر الأمر والسطر اللي فيه كلمة Next بيبدل السطر الأصفر عليهم... نبص دلوقتي على قيمة المتغير X هنلاقيها بقت 2 فيتم تنفيذ السطر بمجرد الضغط على F8 ويضع القيمة 2 في الخلية A2 وهكذا ..جرب واضغط F8 وفي كل مرة شوف قيمة المتغير X وشوف النطاق A1:A10 في كل مرة أول ما توصل قيمة المتغير X إلى الرقم 10 تتوقف الحلقة التكرارية ، وينتقل السطر الأصفر لجملة End Sub .. وينتهي عمل الكود .. عارف إني طولت في النقطة اللي فاتت ، بس كان لازم أطول فيها ، عشان أنا فاضي ومفيش ورايا شغل ، فقلت أصدعكم شوية!! ننتقل لمثال آخر --------------- عشان نقدر نفهم إزاي نستفيد من الحلقات التكرارية .. عايزين نعد الاسم (أحمد) في النطاق A1:A10 نفترض إني عندي الأسماء دي في النطاق A1:A10 أحمد ياسر سليم حسام عيسى أحمد أحمد خليل عبد الله أحمد المطلوب : نشوف الاسم (أحمد) كم مرة تم تكراره .. المعطيات : استعن بالله ثم بالحلقة التكرارية .. الفكرة : هنعمل اختبار صغير بقاعدة IF وهنقول لو قيمة الخلية بتساوي "أحمد" .. زود المتغير Counter بقيمة واحد Sub CountName() Dim X As Long Dim Counter As Long For X = 1 To 10 If Range("A" & X).Value = "أحمد" Then Counter = Counter + 1 Next X MsgBox Counter End Sub عملنا متغير جديد باسم Counter عشان لما يتحقق الشرط ويلاقي الاسم "أحمد" يقوم يخلي المتغير Counter يساوي نفسه + 1 طيب ليه يساوي نفسه ، عشان في كل مرة يلاقي أحمد قيمته هتتغير فلازم نضيف واحد لكل Counter جديد النتيجة في الآخر هتظهر في رسالة ، وهي 4 .. طيب نجرب نشيل الواحد في هذا السطر Counter = Counter + 1 لو شيلنا الواحد هتكون النتيجة 0 ، لأن المتغير قيمته المبدئية صفر ، فلما يتحقق الشرط مش هيزيد المتغير إلا لما نضيف واحد في كل مرة يتحقق الشرط. هناخد مثال آخر ---------------- عندنا درجات في النطاق A6:A15 ، عايزين نكتب ناجح أوراسب في الخلية المجاورة للدرجة ، لو الدرجة أكبر من أو يساوي 50 يبقا ناجح ، مكانش يكون راسب ... نخلي بالنا أنا غيرت بداية النطاق عشان الحلقة التكرارية بردو هتتغير بدايتها ونهايتها طبقاً للصفوف الجديدة 58 41 88 40 50 40 98 94 60 35 نجرب الكود التالي .. Sub LoopsTest() Dim X As Long For X = 6 To 15 If Cells(X, 1).Value >= 50 Then Cells(X, 2).Value = "ناجح" Else Cells(X, 2).Value = "راسب" End If Next X End Sub نلاحظ الحلقة التكرارية بدأت من 6 إلى 15 (ودا متغير للصفوف من الصف رقم 6 إلى الصف رقم 15) ووضعنا الشرط بين سطري الحلقة التكرارية ، لو الخلية اللي في الصف X والعمود الأول أكبر من أو يساوي 50 يقوم يعمل ايه؟ يضع القيمة النصية "ناجح" في الخلية اللي في العمود الثاني والصف X (نفس الصف بالطبع لأن قيمة X في الحالة دي هي هي نفس القيمة لأننا في نفس اللفة) .. إذا لم يتحقق الشرط قام بتنفيذ الجزء الثاني بأن يكتب النص "راسب" ثم إغلاق جملة IF بالجملة End IF ومننساش القفلة زي ما اتعودنا.. ننتقل لآخر مثال في الحلقة دي (عشان أنا تعبت وإنتو كمان أكيد تعبتو) في الأمثلة اللي فاتت عملنا حلقات تكرارية للصفوف .. واحد بيقولي طيب والأعمدة ملهاش نصيب في الدوخة اللي إحنا فيها دي .. أقوله أكيد ليها نصيب .. المطلوب إننا في الصف الرابع ، نكتب معادلة =COLUMN() بس في الأعمدة من العمود رقم 1 إلى العمود رقم 15 (A To O) نعقدها شوية ونقول في الأعمدة اللي رقمها فردي بس (الأعمدة اللي رقمها زوجي مش محتاجينها) يعني ببساطة عايزين نحط المعادلة في الأعمدة A C E G I K M O Sub ColumnsLoop() Dim X As Long For X = 1 To 15 Step 2 Cells(4, X).Formula = "=COLUMN()" Next X End Sub الحلقة التكرارية بدأت من العمود الأول حتى العمود رقم 15 (البداية والنهاية) معلومة جديدة Step 2 (دي معناها إننا هنقفز ..والقفز هيكون بمقدار 2 أي خطوتين) بدأنا بـ 1 فلما نقفز بمقدار 2 ، هنروح لرقم 3 ، أي أن المتغير سيكون رقم فردي في كل مرة 1 ، 3 ، 5 ، 7 ، 9 ، 11 ، 13 ، 15 (وهو دا المطلوب بالضبط) سطر الأمر فيه الخاصية Formula ودي عشان نقدر نضع معادلة من خلالها .. والمعادلة ببساطة زي ما شفناها من شوية بس بتكون بين أقواس تنصيص .. طيب الجزء الأول من السطر نلاحظ إننا استخدمنا Cells ودي بتكون متبوعة بقوسين ، وبين القوسين رقم الصف ثم فاصلة ثم رقم العمود ، وبما إن رقم الصف ثابت اللي هو رقم 4 ، فكتبناه زي ما هو .. اما رقم العمود فمتغير فوضعنا رقم العمود X ... جرب الكود وشوف النتيجة بنفسك أرجو أن أكون قد وفقت في توصيل المعلومة بأسلوب مبسط كان معكم أخوكم أبو البراء من تراك أوفيسنا (لف على الحلقات من الحلقة رقم 1 إلى الحلقة رقم 14 .. لو عايز تتعلم الـ VBA) ويا رب ميكونش فيه حد جاله دووووووووخة من كتر اللف .. والله أنا اللي دوخت أستودعكم الله .. دمتم في رعاية الله تقبلوا تحياتي .. دمتم بود
    1 point
  40. السلام عليكم ورحمة الله وبركاته اقدم هذا العمل واهديه الى اساتذتى وكل أعضاء اوفيسنا وهو: بعيد عن المعادلات والاكواد . استخدام الصور في المخططات والرسومات البيانية اسال الله ان يتقبل منى هذا العمل ملحوظه ذكرت أسماء أساتذتي في المنتدى ووضعت بيانات افتراضيه فقط تقبلوا خالص تحياتي تلميذ اوفيسنا استخدام الصور فى الرسم البيانى.rar
    1 point
  41. هذه الحالة اتعبتني كثيرا في احد الملفات لأنني قمت بتعديل المعادلة يدويا في كل خلية وتقريبا كانت 300 خلية فعلاً الجهل ظلام دامس والحمد لله الذي جمعنا في هذا المنتدى الأكثر من رائع بخبراء أحاطوا بناصيته لهم جميعاً التجلة والعرفان وربنا يجازيهم خير جزاء في الدنيا والآخرة
    1 point
  42. السلام عليكم أخي الغالي / أحمد يعقوب بارك الله فيك أنا أول مرة آخد بالي إنك من المدينة المنورة لاعجب إذاً أني أحببتك ، فأنت من بلد هي من أحب البلاد إلي!!! عاشق الإكسيل
    1 point
×
×
  • اضف...

Important Information