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

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

  1. سلمان المجذوب

    سلمان المجذوب

    عضو جديد 01


    • نقاط

      20

    • Posts

      26


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

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

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


    • نقاط

      6

    • Posts

      13,165


  3. ibn_egypt

    ibn_egypt

    الخبراء


    • نقاط

      4

    • Posts

      764


  4. ضاحي الغريب

    ضاحي الغريب

    أوفيسنا


    • نقاط

      2

    • Posts

      2,282


Popular Content

Showing content with the highest reputation on 28 نوف, 2014 in all areas

  1. اخي الحبيب أ/ ياسر السلام عليكم ورحمة الله وبركاته وبعد اذن استاذنا الحبيب ومعلمنا واخينا الأستاذ // عبدالله باقشير يمكنك عدم غلق الفورم الا بعد انتهاء الـ Progress Bar كما بالمثال التالي Option Explicit Dim bOK As Boolean Private Sub UserForm_Activate() Dim i As Integer, j As Integer For i = 1 To 100 For j = 1 To 1000 DoEvents Next j Me.Text.Caption = i & "% Completed" Me.Bar.Width = i * 2 Next i bOK = True End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If bOK Then GoTo 1 If CloseMode = 0 Then Cancel = True 1: End Sub مع تحياتي progress.rar
    2 points
  2. الأخ الحبيب والأشتاذ الكبير عبد الله باقشير جزيت خيرا أستاذي الكريم على كل ما تقدمه سؤالي كيف يمكن منع المستخدم من إغلاق الفورم ؟؟ إلا بعد الانتهاء من progress Bar
    2 points
  3. انت ليش تضيف ورقة جديده يدويا اذا ودك تضيف ورقة جديده روح على اليومية عمود الكود سوي فيه الكود او اسم الورقة الجديده وادخل البينات وسوي ترحيل بيفتح لك ورقة جديده ويرحل اليه البيانات الخاصة بها تلقائيا
    2 points
  4. رووووووووعه الورقة بتاعك ياعم...ساستفيد منها الكثير الكثير.. بس عندي سؤال..ليش لما اضغط على ارباح وخسائر او صافي الصندوق ..بيطلع لي خطاء ارجو الرد وشكرا
    2 points
  5. السلام عليكم ورحمه الله وبركاته اخواني الاعزاء ابي كود او امر بديل لهذا (=SUMIFS('سندات قبض'!$B:$B;'سندات قبض'!$C:$C;C7;'سندات قبض'!$I:$I;$I6) يقوم بجمع المبالغ حسب نوع العملة من ورقة سندات الصرف وورقة سندات القبض واحضارها الى المكان المخصص لها في ورقة المطابقة بشرط التاريخ يعني ما يجمع أي شي حتى يتم كتابة التاريخ /لا اطول عليكم مرفق لكم ورقة العمل ولكم جزيل الشكر والتقدير بانتظار ردكم نموذج جاهز للاستخدام 2015.rar
    2 points
  6. السلام عليكم ورحمة الله وبركاته طلب مساعده..اريد حذف فراغات القائمة المنسدلة في الفورم والطلب الثاني هو التفقيط تبع المبلغ..هو محدد الان بالريال يعني اذا كتبت في مربع المبلغ(1000)يعطيني فقط الف ريال لاغير طيب ولو حددت العمله دولار وكتبت(1000)يعطيني فقط الف ريال لا غير انا عاوز يعطيني الكتابه بنوع العملة التي احددها انا سوى كان سعودي او دولار او يورو مرفق لكم صورتين تبين طلبي ومرفق لكم ورقة العمل شاكر تعاونكم وتجاوبكم والسلام عليكمسندات صرف وقبض1.rar
    2 points
  7. السلام عليكم ورحمة الله وبركاته ياخواني..لما اقوم بفتح (ورقة سندات قبض) واضغط على اضافة سند...بيضهر الفروم مع مغادرة ورقة القبض الى ورقة(دليل الحسابات) ليش؟؟؟ والامر الثاني القائمة المنسدلة..شغاله كويس ..بس ضهر فيها عيب..اذا حثفت على سبيل المثال ثالث اسم من دليل الحسابات ورجعت الى الفورم وتضغط على المنسدلة تلاحظ ان الحسابات الاخرى اختفت ما عدا اول وثاني حساب...ليش؟؟؟؟ وهذا صور للمشكلة ومرفق لكم ورقة العمل شاكر تعاونكم وجعل بميزان حسناتكم سندات.rar
    2 points
  8. مشكوووور يالغالي ابو ليلة..والله ما قصرت ..كفيت ووفيت..اشتغل معاي تمام الف الف الف شكر
    2 points
  9. السلام عليكم ورحمة الله وبركاته طلبي ان اجعل مربع السند والذي هو مختص بترقم كل سند اقوم بعمله...ان يشوف اكبر قيمة في العمودA ويجيبه الى مربع السند القادم+1 اي اذاكان اكبر قيمة في العمود هي100 يكتب لي في مربع السند القدام101 في الوضع الراهن هو بيعد الصفوف بغض النظر عن القيمة مرفق لكم صوره تبين طلبي ومرفق لكم ورقة العمل شاكر تعاونكم ..والسلام عليكمسندات صرف وقبض.rar
    2 points
  10. مشكوووووووووووووووووووووووووووووووووورين جعل في ميزن حسناتكم الفففففففففففففففففففففففففففففففففففففففففففففففففففففففففففف شكر...
    2 points
  11. اخواني الكرام: عندما قمت بالاعداد لشرح موضوع Select Case توصلت الى عمل دالة جديدة تقوم باستخراج اسم المحافظة وتاريخ الميلاد والنوع من الرقم القومي المصري قد لا تكون هذه الدالة جديدة عليكم فقد قام عدد من الاساتذة واذكر منهم الاستاذ خبور بعمل دوال احترافية بهذا الخصوص ولكني احببت ان اضعها هنا للاستفادة منها الدالة تحوي على بارو مترين هما 1. A_Rng ويمثل خلية الرقم القومي 2. T ويمثل الخيار الخاص بالعنصر المراد استخراجه =============================== وهنا المتغير T ينقسم الى التالي اي عندما T = 1 يتم استخراج اسم المحافظة T = 2 يتم استخراج تاريخ الميلاد T = 3 يتم استخراج النوع سوء ذكر او انثى ==== ويصبح الشكل النهائي للدالة =A_ID(A_Rng;T) ارجو منكم التجربة وابداء الراي اليكم المرفق 2003 دالة معرفة.rar
    1 point
  12. بالمرفق كود يحذف نفسه بعد ما يشتغل مرة واحده كود يحذف نفسه بعد ما يشتغل مرة وحده.rar
    1 point
  13. السلام عليكم عسى ان ينال اعجابك هذا الملف Monthly Plan 1.rar
    1 point
  14. بارك الله فيك أخي وحبيبي ضاحي الغريب وجزيت خيرا أنت ومعلمي عبد الله باقشير . لا تحرمونا من إبداعاتكم
    1 point
  15. عفوا اين بلدي والله مخدت بالي من مشاركتك لأني لم أحدث الصفحة من باكر عموما ملحوقة كل الحلول تؤدي إلى حل الاختبار .
    1 point
  16. أخى الفاضل السلام عليكم ورحمة الله وبركاته ايه الاختبارات دي، الواحد كان كل اما يعدي اختبار وينجح والاقي الوجه اخضر ومبتسم يحس انه عبر خط بارليف تفضل المرفق، مع خالص تمنياتي بالتوفيق والنجاح تحياتي Solve Test.rar
    1 point
  17. الحلقة الثامنة *********** السلام عليكم ورحمة الله وبركاته أسعد الله أوقاتكم إخواني الكرام في الصرح العملاق هنتكلم النهاردة عن نافذة مهمة جدا ومهمشة في الشروحات إلى حد كبير .. النافذة اسمها (النافذة الفورية Immediate Window) ودي بتفكرني بالخميرة الفورية .. تلاقي ست البيت مستعجلة ع العجين ، ومعندهاش صبر ، كتر خيرها وراها فيس بوك مش فاضية للعجين ، تقوم تستخدم الخميرة الفورية عشان العجين يخمر بسرعة ..(واحد هيقولي إنت شكلك شغال في فرن) ! نفس الفكرة معانا بردو مع النافذة الفورية اللي هنتكلم عليها ، بمعنى لو فيه سطر معين من الأكواد عايز تشوف نتيجته بشكل فوري ، يبقا هو دا المكان المناسب عشان تحصل على النتيجة السريعة .. أولاً قبل ما ننسى وياخدنا الكلام ، إحنا بنظهر النافذة دي من قايمة View ثم Immediate Window ، واللي هيركز هيلاقي الاختصار الخاص بيها CTRL + G بتظهر النافذة دي أسفل المحرر ودي من ضمن هيكلة محرر الأكواد ، ممكن تتحكم في حجمها من خلال سهم بيظهر في المربع الأحمر في الصورة دي : المهم هي دي النافذة الفورية ، بصراحة أداة رائعة للي يفهمها كويس ، ممكن من خلالها تنفيذ الأكواد بشكل سريع ، وممكن تجاوبك على الأسئلة بشكل فوري وهنشوف الكلام ده بالأمثلة ، وبتستخدم لتصحيح الأخطاء البرمجية Debugging ، وكمان تستخدم لإظهار نتائج الكود .... الكلام النظري مش هيفيد زي العملي .. فلنبدأ الحلقة : أولا هنشتغل محققين (أخيرا الواحد ياخد وضعه - مش هنفضل كدا ملطشة دايما ، إحنا اللي دايما بنتسأل ) إحنا نسأل وهو يجاوب ، ومننساش الإجابة هتكون فورية ... طبعاً كل اللي ظاهر قدامنا مجرد مؤشر الماوس واقف في أول النافذة .. إحنا اتعودنا إن السؤال دايما بيكون آخره علامة الاستفهام ، هنا الوضع مختلف ، إحنا هنحط علامة الاستفهام في الأول عشان نخض النافذة كأننا بنقولها انتبهي هسألك ، وجاوبي في الحال : نكتب مثلاً السطر التالي (نكتبه يا كابتن حسام مش ننسخه) ?Rows.Count أو ? Rows.Count ممكن بعد علامة الاستفهام نترك مسافة أو لا نترك ، الأمر سيان ، وممكن مؤشر الماوس يكون في نهاية السطر أو في أي مكان داخل السطر ، الأمر سيان .. بعد ما نكتب نضغط Enter نلاقي الإجابة في التو وفي الحال (ونعم النافذة المطيعة) السطر اللي فات هيعد عدد الصفوف في ورقة العمل (1048576) .. الإجابة هتكون من غير أقواس ? Columns.Count عدد الأعدمة في ورقة العمل ، الإجابة (16384) محدش يجرب يعد الخلايا لأن دا هيسبب حاجة اسمها Overflow (جرب بنفسك هيطلع لك رسالة خطأ) نجرب نعد أوراق العمل ? Worksheets.Count أو ? Sheets.Count نجرب نفتح مصنفين مثلاً ونجرب السطر التالي ? Workbooks.Count السطر الأخير لعد المصنفات المفتوحة!! ناخد أمثلة تانية ، هو مفيش غير أسئلة العد دي .. لا طبعا الأسئلة كتير ، بس أنا بقول بالمرة نتعلم أسطر جديدة عشان نستفيد منها في التطبيق العملي طيب نخلي نافذة الإكسيل ونافذة المحرر جنب بعض زي ما اتعلمنا قبل كدا ، ونضع في الخلية B4 القيمة 100 ، وبعدين كليك يمين وتنسيق خلايا ، ونخلي تنسيق الخلية كعملة بالجنيه المصري مثلاً ، ونلونها باللون الأصفر بلاش الأحمر اللي الناس هتبدأ تتعقد منه ، ونخلينا واقفين في الخلية B4 بحيث تكون الخلية هي الخلية النشطة ActiveCell.. نرجع للفورية (النافذة الفورية إنتو لحقتو تنسوا !! ربنا يستر عليكم من الزهايمر) ، ونكتب السطر التالي لمعرفة قيمة الخلية B4 : ? Range("B4").Value ونجرب السطر التالي لمعرفة تنسيق الخلية B4 اللي هي الخلية النشطة : ? ActiveCell.NumberFormat ونكتب السطر التالي لمعرفة عرض العمود للخلية النشطة : ? ActiveCell.ColumnWidth ونكتب السطر التالي لمعرفة عنوان الخلية النشطة : ? ActiveCell.Address ونكتب السطر التالي لمعرفة رقم صف الخلية النشطة : ? ActiveCell.Row ونكتب السطر التالي لمعرفة رقم عمود الخلية النشطة : ? ActiveCell.Column ونكتب السطر التالي لمعرفة رقم اللون الداخلي للخلية النشطة (مش لون الخط Font ) : ? ActiveCell.Interior.Color ونكتب السطر التالي لمعرفة اسم ورقة العمل اللي موجودة فيه الخلية النشطة : ? ActiveCell.Parent.Name في السطر الأخير الكلمة Parent في اللغة الإنجليزية معناها (أحد الوالدين .. وأنا هترجمها الأم ؛ لأن الأم متوصي عليها 3 مرات) ، فالخلية النشطة جزء صغير من الحضن الكبير اللي هو ورقة العمل ، فبالتالي الخلية بمثابة الابن ، وورقة العمل بمثابة الأم ، ففي السطر اللي فات عايزين نعرف اسم الأم للخلية النشطة (واحد هيقولي النتيجة هتطلع كريمة مختار ..ما هي بتطلع بدور الأم دايما ) .. أنا بالفعل خليت اسم الشيت (كريمة مختار) فطلعت النتيجة (كريمة مختار) بس الاسم من غير أقواس .. أنا طولت في الجزئية اللي فاتت عشان نقدر نستفيد كمان من الأكواد المختلفة عشان نبدأ نتقدم في مرحلة التعلم بشكل أسرع (وعشان كمان عجباني شغلانة المحقق دي بصراحة ..أنا أسأل وهو يجاوب !!) ننتقل لجزئية تانية : النافذة دي ليها دور تاني غير اللي عملناه من شوية ، إننا نقدر من خلالها ننفذ الكود مباشرة ، بس بشرط يكون الكود سطر واحد ناخد مثال تطبيقي عملي ، ونكتب السطر التالي لتغيير لون التاب Tab (التبويبات المختلفة لأوراق العمل) - مننساش قبل ما نضغط إنتر نبص على لون التبويب لورقة العمل النشطة ActiveSheet : ActiveSheet.Tab.Color = vbRed لو معجبكش اللون خليه vbYellow ، ولا تزعل نفسك يا منير !! السطر ببساطة بيتعامل مع ورقة العمل النشطة (مش الخلية النشطة نخلي بالنا) وبعدين Tab للتعامل مع التبويبات لأوراق العمل ، وأخيراً Color لتحديد قيمة للون التاب ، ونخلي القيمة اللون اللي يناسبنا .. بكدا نعرف معلومة جديدة إننا ممكن ننفذ الكود من خلال النافذة الفورية ، ونشوف نتيجة تنفيذه في ورقة العمل مباشرةً.. نجرب السطر التالي لتنسيق عرض الأعمدة من A إلى D بمقدار 5 : Columns("A:D").ColumnWidth = 5 ونكتب السطر التالي لجعل ورقة العمل المسماة Sheet1 مخفية : Worksheets("Sheet1").Visible = False أو Sheets("Sheet1").Visible = False ولإظهارها بنغير القيمة False إلى القيمة True .. وممكن نستغنى عن القيمتين دول ، لو عايزين نتعلم الصح هنا .. هنتعلم من خلال الأسطر القادمة التعامل مع الخاصية Visible >> بالنسبة للخاصية Visible ممكن نحط لها قيمة من 3 قيم : -1 أو xlSheetVisible (لإظهار ورقة العمل ...) * القيمة 0 أو xlSheetHidden (لإخفاء ورقة العمل ..) * القيمة 2 أو xlSheetVeryHidden (لإخفاء ورقة العمل ..) محدش منتبه ليه ؟ شكلي كدا هبطل الحلقات بسبب عدم التركيز .. القيمة 0 والقيمة 2 للخاصية Visible نفس الوظيفة (طبعا ً لا .. طبعاً لأ) أمال ايه الموضوع ؟ ايه الفرق؟ القيمة 0 ، دا إخفاء عادي ، يعني ممكن لو أي مستخدم عنده خبرة وعمل كليك يمين على التاب الخاص بأسماء أوراق العمل ، هيلاقي الأمر Unhide ، هيضغط عليه هيلاقي الورقة المخفية ، فيقوم يظهرها .. أما القيمة 2 ، فدا الإخفاء السوبر (زي التطشيب السوبر لوكس) ، دا بقا يخلي المستخدم لو عمل كليك يمين في المكان اللي قلنا عليه ، هيلاقي الأمر Unhide مش أكتيف مش نشط ..! ولإظهار الورقة في هذه الحالة لابد من الدخول على محرر الأكواد ، ومن النافذة properties (ودي لو مش ظاهرة بنضغط F4 تقوم تطل علينا بطلعتها البهية ) ، هنحدد ورقة العمل المسماة Sheet1 ونشوف نافذة الـ Properties في آخرها هنلاقي الخاصية Visible نختار منها أول اختيار الخاص بإظهار ورقة العمل .. أو نستخدم الكود لإظهارها .. السطر اللي المفروض نكتبه هيكون بالشكل ده : Sheets("Sheet1").Visible = -1 خلاصة الجزئية اللي فاتت إننا ممكن ننفذ الأكواد عن طريق النافذة السحرية (أنا حر في تسميتها ..بلاش تعترض يا مدحت) ننتقل لجزئية جديدة ، مع اسستخدام جديد للنافذة العبقرية ، ألا وهي تصحيح الأخطاء البرمجية (ودا الاستخدام الشائع ليها) ودا بيطلق عليه Debugging .. الأخطاء البرمجية بيطلق عليه Bugs (بق : لأن البق حشرة ضارة ، زيها زي الخطأ البرمجي ضار بالكود) قبل ما نسرد في الشرح نتعرف على كائن اسمه Debug ودا بيستخدم في الأكواد عشان يطبع (بس مش على ورق ..أمال هيطبع على ايه ؟؟ هيطبع النتائج في النافذة الفورية) ، والخاصية المرتبطة بهذا الكائن الخرافي اسمها Print ، ونرجع تاني بالذاكرة عشان نتذكر المعلومة اللي ذكرناها عن الفعل Print إنه Method .. ناخد مثال عملي عشان نفهم إزاي نستخدم الكائن Debug ، أدرج موديول جديد ، وضع فيه هذا الإجراء الفرعي : Sub ErrorCode() MyRandomNumber = Rnd() / 0 End Sub فيه دالة بالإكسيل اسمها Rand لعمل أرقام عشوائية بين الصفر والواحد ، ولو حبينا تكون الأرقام العشوائية بين الصفر والعشرة مثلاً نضرب * 10 داخل ورقة العمل قم بتحديد مجموعة خلايا واكتب المعادلة التالية ثم اضغط Ctrl + Enter ، ولتجربة المعادلة اضغط F9 =RAND()*10 المقابل للدالة دي في محرر الأكواد Rnd ووراها قوسين ، يعني الاختلاف في حرف واحد زيادة في الدالة (يا عم بيل جيتس يعني فرقت معاك في الحرف ده ، ما كنت خلتها نفس الحروف !!) يرجع مرجعونا للكود : المتغير وضعنا له قيمة رقم عشوائي على صفر (وعارفين في الرياضيات أنه لا يمكن القسمة على صفر) يعني هذه القيمة تعتبر باطلة ننفذ الكود هنلاقي رسالة خطأ بتقول : Divison By Zero ، نضغط على إنهاء للخروج من نافذة الخطأ .. ممكن واحد مذاكر شوية يقول فيه جملة أنا حافظها عشان أتلاشى رسالة الخطأ : On Error Resume Next والجملة دي نحطها قبل السطر اللي فيه الخطأ البرمجي .. دلوقتي لو نفذنا الكود هنلاقي إن مفيش حاجة حصلت ، طيب نضيف سطر أخير زي كدا : Sub ErrorCode() On Error Resume Next MyRandomNumber = Rnd() / 0 Debug.Print Err.Description End Sub السطر الأخير بيتعامل مع النافذة الفورية ، ننفذ الكود وعنينا على النافذة الفورية .. نفذتوا الكود :: نلاحظ الجملة دي ظهرت في النافذة الفورية Division by zero ، ودي وصف للخطأ البرمجي الموجود داخل الكود .. كلمة Err دي اختصار لكلمة Error (خطأ) ، وبعدين نقطة فتظهر الخواص المرتبطة بكلمة Err ، هنلاقي كلمة Description ودي معناها وصف .. خلاصة لكلام وصف الخطأ . والناتج هيظهر لي في النافذة الفورية .. معلومة تانية ، ممكن ننفذ الكود من خلال النافذة الفورية عن طريق أمر اسمه Call وبعديه مسافة متبعة باسم الإجراء الفرعي أو الدالة بهذا الشكل Call ErrorCode() وممكن نكتب القوسين أو منكتبهمش الأمر سيان !! ناخد مثال تاني على دالة UDF دالة معرفة ، ودي اتكلمنا عليها الحلقة اللي فاتت .. هنعمل دالة بسيطة على السريع ، عشان نطبقها في النافذة الفورية : Function MyName() As String MyName = "YasserKhalil" End Function نكتب ايه في النافذة الفورية ؟؟ في حالة الإجراء الفرعي من شوية كتبنا الأمر Call متبوع بمسافة وبعدين اسم الإجراء الفرعي عشان أقدر أنفذ الكود داخل النافذة الفورية ، أما بالنسبة للدالة Function فبنستخدم علامة استفهام في البداية ? MyName جرب الأمر Call قبل MyName وجرب تشيله مرة ، هتلاقي مفيش نتيجة تظهر لك .. الشكل الصحيح في السطر اللي فات وبس يبقا نخلي بالنا في حالة استدعاء الإجراء الفرعي بنستخدم Call ، أما في حالة الدوال فبنستخدم علامة استفهام قبل اسم الدالة .. نرجع تاني للكائن Debug هل الكائن الخرافي ده مرتبط بالأخطاء فقط ؟؟ الإجابة لا ، هو بييجي وراه كلمة Print لطباعة أي نتائج .. وكمثال أخير عشان الحلقة طولت : Sub PrintX() For X = 1 To 5 Debug.Print X Next X End Sub في الكود الموجود يا عبد الودود فيه حاجة في الـ VBA اسمها الحلقة التكرارية ، ودي مش هشرحها ، لأن فيه موضوع في توقيعي خاص بالحلقة التكرارية For.. Next ، ومرفق بالموضوع ملف فيديو في المشاركات (يرجى الرجوع إليه ..) ما بين سطرين الحلقة التكرارية الأمر اللي بيقوم بطباعة قيمة المتغير X في النافذة الفورية .. ركز في النافذة السحرية هتلاقي النتايج الفورية ، على ما خلصت الحلقة ديا أنا طلعت عينيا .. يارب تكونوا استفدتوا بنسبة 100% ، وإلى لقاء مع حلقة مفيدة ومجدية ، أترككم في حفظ الله . مثال آخر : لمزيد من التوضيح (مثال بدون شرح) >> حلقة تكرارية لأوراق العمل الموجودة داخل المصنف << (الواجب تنفيذ الكود وشرحه) Sub List_Sheets() Dim WS As Worksheet For Each WS In Worksheets Debug.Print WS.Name Next WS End Sub كان معكم المحقق أبو البراء من نيابة أوفيسنا .. والسلام حسن الختام ...
    1 point
  18. بارك الله فيك أستاذي القدير جزاك الله كل الخير وزادك الله من علمه
    1 point
  19. سلمت يداك أخى الأستاذ الفاضل / ياسر خليل أكرمك الله وزادك الله من العلم الكثير والكثير أسلوبك رائع فى الشرح إستمر ونحن معك إسمح لى لقد جمعت الدروس كلها حتى الأن فى ملف واحد وقد قام الأخوة الأعضاء الكرام بتجميعها أيضا جزاهم الله خير من البداية حتى الأن.pdf
    1 point
  20. السلام عليكم يكفي ان تضع هذا الكود في الفورم Private Sub UserForm_Activate() Dim i As Integer, j As Integer For i = 1 To 100 For j = 1 To 1000 DoEvents Next j Me.Text.Caption = i & "% Completed" Me.Bar.Width = i * 2 Next i End Sub تحياتي
    1 point
  21. أخى الفاضل السلام عليكم ورحمة الله وبركاته تفضل الملف المرفق، تم التعديل في الكود ليناسب طلبك فلن يتم مسح اى بيانات من الورقة المضافة يدويا بشرط ان يكون اسمها ليس بنفس اسم اى رقم من الأكواد المكتوبة في Sheet1 تحياتي office.rar
    1 point
  22. احسن واحد يعملك الي بدك هو الاخ الفاضل احمد هذا ibn_egypt
    1 point
  23. السلام عليكم ستم الترحيل وفقا للشرط الآتي : 1/ إذا كانت القيمة في العمود (Q) أو العمود (T) سالبة يتم ترحيل البيانات إلى ورقة (مطالبات البنك) 2/ إذا كانت القيمة في العمود (Q) أو العمود (T) موجبة يتم ترحيل البيانات إلى ورقة (أخطاء بالحساب) اصغط على زر ترحيل إما من ورقة (مطالبات البنك) أو من ورقة (أخطاء بالحساب) أرجو أن يكون هذا هو مطلوبك تفضل مطلوب ترحيل.rar
    1 point
  24. أخى الفاضل السلام عليكم ورحمة الله وبركاته الكود سليم مليووووووووووووووووون في الميه ولا توجد به أى أخطاء طب هو بيعمل صفحة فاضية ليه بعد كل عملية ترحيل هات ودنك ... روح للخلية B904 في Sheet1 انت مش كاتب فيها اى كود "" فاضية "" فالكود بيعملك صفحة فاضية يعني الراجل عداه العيب انت اللى غلطان مش هو اكتب الكود الخاص بها .. ولن يتم انشاء اى صفحات فارغة تحياتي
    1 point
  25. الحلقة السابعة *********** السلام عليكم ورحمة الله وبركاته عنوان حلقة اليوم (هيا بنا نلعب ونبني !) النهاردة هنشتغل في البناء .. والبناء هنا هيكون بناء دالة Function .. ممكن يكون الدرس اللي زي كدا مرحلة متقدمة بس أنا تعمدت أشتغل فيها عشان نسبق ونتسابق للمراحل المتقدمة وإحنا في البدايات ، وعشان الناس اللي مستواها متقدم تشارك معانا ، ومتحسش بالملل من البدايات اللي هما شايفينها سخيفة. ** كلنا عارفين إن برنامج الإكسيل بيوفر لنا عدد كبير جدا من الدوال الجاهزة اللي نقدر نستفيد بيها بشكل كبير ، وكمان فيه إضافات Addins بتكون فيها دوال يمكن استخدامها .. لكن مع الوقت هتلاقي نفسك محتاج تعمل دالة (تبني دالة ) بحيث توفر لك الوقت والجهد .. النوع ده من الدوال اللي بتبنيه بنفسك بيطلق عليه (الدوال المعرفة UDF ودي اختصار لـ User Defined Function ) ، وممكن نقول عليها (دوال مخصوصة .. يعني بالبلدي كدا دوال تفصيل .. بنفصلها بحيث تناسب احتياجتنا) هناخد مثال بسيط عشان نفهم إزاي نتعامل مع بناء الدوال : أول شيء لازم يكون عندك المعطيات اللي هتشتغل بيها .. لو قلنا مثلا عايزين نعمل دالة نحسب بيها مساحة المستطيل ..يبقا الأول نعرف معادلة مساحة المستطيل Area = (الطول * العرض) (محدش يكون نظره ضعيف ويقرا العرض من غير نقطة ، لأحسن تودونا في داهية) يبقا المعطيات عندي : الطول والعرض ، هنقول الطول Length والعرض Width .. دي طبعا هتكون متغيرات لأننا مش عارفين قيمتهم كام ، ولأن قيمتهم مش ثابتة ؛ فنطلق عليهم (المتغيرات) ممكن نعملها على شكل معادلة ونقول : Area = Length * Width خطوات البناء : هنفتح محرر الأكواد وندرج موديول جديد ونستعد لعملية البناء ..ركزوا معايا يا أحباب Function Area() End Function أول شيء نكتب كلمة Function مش Sub يا صالح .. إحنا هنشتغل على دالة يبقا نكتب Function أما كلمة Sub فدي بتكون للإجراء الفرعي ..وبعدين نترك مسافة (بالمسطرة أكيد) ونكتب اسم للدالة .. هنسميها هنا اسم معبر Area لأننا عايزين نحسب المساحة وبعدين لما تضغط Enter هتلاقي محرر الأكواد عمل قوسين بعد اسم الدالة وقفل بالجملة End Function (ومننساش دايما القفلة مطلوبة ..لازم يكون تقفيلك مظبوط) ما بين السطرين اللي اتكتبوا دول هتبدأ تكتب الأكواد المطلوبة لتنفيذ العملية الحسابية لحساب مساحة المستطيل ... بس قبل ما نبدأ يا ريت نحط مؤشر الماوس بين القوسين (ايه ده هما القوسين دول طلعلهم لازمة .. أنا كنت مفكرهم زينة وشكل .. حاجة تحلي شكل المحرر زي غترة كدا !) .. القوسين دول بنستخدمهم لتحديد متغيرات الدالة ودي بنسميها arguments ، زي المتغيرات Variables بس دي بيتم الإعلان عنها داخل الأقواس دي ..( يعني هيا متغيرات بس ممكن نقول إنها متغيرات من فصيلة الذوات .. بمعنى إنها مهمة وليها برستيج ، فأول ما نعلن عنها نعلن عنها في الأول قبل ما نبدأ نشتغل عليها). هنكتب اسم المتغير ونوعه زي كدا Function Area(Length As Double, Width As Double) End Function وإحنا بنكتب المتغير وبعديه كلمة As أول ما ناخد مسافة ، هنلاقي فيه قايمة ظهرت لي عشان أختار منها (ممكن نطنشها ..نتجاهلها) أو ممكن نستفيد منها إننا نشوف الكلمة اللي عايزينها ولما نلاقيها نضغط عليها Double Click يعني دبل كليك (شفتوا الترجمة دي .. مش أي حد يترجم خلوا بالكم) ، لما نضغط دبل كليك عليها هنلاقيها اتكتبت ، يا إما نضغط Tab من لوحة المفاتيح .. أول متغير اسمه Length اللي هو خاص بالطول ، وحددنا نوعه بـ Double ودا زي ما عرفنا بيستخدم مع الأرقام العشرية الطويلة . تاني متغير اسمه Width وبردو حددناه نفس النوع .. ومننساش عشان الأمور تكون صحيحة بنضع فاصلة بين المتغيرين ..عشان عمنا المحرر ميحصلش عنده لبس !! بكدا نكون انتهينا الحمد لله .. عندك لسه مخلصناش ..دي كانت البداية والنهاية .. نيجي بقا للجد اللي هو هزار نكتب السطر اللي جاي ده ما بين البداية والنهاية Area = Length * Width يا ريت بعد إذنكم بلاش كسل - محدش ياخد السطر كوبي ويروح يعمل Paste - لا أنا عايز أتعبكم - ما أنا تعبان من الكتابة - اتعبوا شوية انتو كمان .. كله يكتب (اكتب يا حسين .. سجل كل كلمة بيقولها !!) .. الفايدة من الكتابة إننا أول ما نكتب كلمة Area وناخد مسافة ، نلاحظ مستطيل أصفر ظهر لي بيشرح لي متغيرات الدالة .. حلوة ولا ملهاش فايدة .. الفايدة إنها تعتبر زي وسيلة مساعدة ، عشان لما نحب نستخدم الدالة دي في كود تاني أو دالة تانية .. (معنى الكلام اللي بقوله إننا ممكن نبني دالة ونستخدمها في دالة تانية أو كود أو خلافه ..كنوع من التيسير) لو كتبنا أول حرف في كلمة length أو width بحرف small ، هتلاقي المحرر بعد ما تخلص بيحول الحروف الأولى دي لحروف Capital ، ودي سببها إن الكلمات دي متعرف عليها قبل كدا في أول الدالة. كدا تمام تم بناء الدالة (بالسهولة دي ! أيوا بالسهولة دي .. الفكرة مش معقدة .. كلنا اللي إحنا عايزينه مساحة المستطيل والمساحة = الطول * العرض (بس خلاص على رأي شعبولة) نيجي بقا نشوف نتيجة الكلام اللي إحنا عملناه في ورقة العمل .. واحد يقول هنضغط Run (هقوله لا دا مش إجراء فرعي .. دي دالة ، ودلوقتي طالما كتبتها عندك في ملفك أصبح زيها زي أي دالة ، يعني زيها زي الدوال الموجودة في الإكسيل ..وببساطة شديدة تقدر تستعملها ..) تطبيق على الدالة : قم بوضع القيمة 9 في الخلية A1 والقيمة 6.5 في الخلية B1 ، وبعدين في الخلية C1 قم بعمل معادلة للدالة اللي إنت بنيتها: =area(A1,B1) نخلي بالنا ..لما نستخدم الدالة بنستخدمها بنفس الشكل اللي بنيناها بيه ، يعني المتغير Length بييجي بعديه فاصلة ثم المتغير Width ..نشوف الناتج هنلاقية 58.5 .. وبكدا عرفنا مساحة المستطيل بدلالة الطول والعرض .. نجرب نمسح الخليةB1 ونشوف الناتج ، هنلاقي الناتج صفر ، ودا طبيعي لأن أي رقم * فراغ = صفر بس أنا عايز أحط شروط مختلفة ، أنا عايز الناتج ميكونش صفر .. لما يكون العرض مش موجود يضرب الطول في نفسه ..(ايه الكلام الصعب ده ) نرجع تاني للدالة ونبدأ نشوف ايه اللي ممكن نعمله ..؟ في الحالة دي طالما إن إنت عايز تخلي العرض اختياري وليس إجباري ، يبقا هتحدد الكلام ده للمحرر ، وتقوله Optional (اختياري) Function Area(Length As Double, Optional Width As Variant) Area = Length * Width End Function هنا غيرنا نوع المتغير إلى Variant، تحسبا إنك ممكن تترك الخلية اللي فيها العرض فارغة .. واحد هيقول : خلااص ، هرد أقوله : لسه ! طالما إننا خلينا العرض اختياري ، يبقا لازم نحط شرط ، ونشوف الشرط إذا تحقق يعمل ايه ، ولو الشرط متحققش يعمل ايه ..!! نرجع لمرحلة الإعدادي لما كنا بناخد قاعدة IF بمعنى إذا أو لو (وعرفنا أيامها إن لو حرف شعلقة في الجو) .. جملة IF في البرمجة : بييجي وراها شرط ، ولو الشرط اتحقق ايه اللي يحصل ، ولو متحققش ايه اللي يحصل . الشرط اللي هنحطه .. في حالة عدم وجود العرض يعمل ايه ؟ يضرب الطول في نفسه (الطول * الطول) ، طيب لو كان موجود العرض ، يبقا يضرب الطول * العرض Function Area(Length As Double, Optional Width As Variant) If IsMissing(Width) Then Area = Length * Length Else Area = Length * Width End If End Function ما هذا ؟؟ هذا ماذا ؟ هذا هو شكل الدالة بلغة البرمجة ، زي ما فهمناها نترجمها .. بعد كلمة If بييجي الشرط ، والشرط نخلي بالنا يا إما True يا إما False .. لو True ينفذ السطر اللي بعد كلمة Then مباشرة ، لو False ينفذ السطر اللي بعد سطر Else وجملة If الشكل العام ليها زي كدا If الشرط Then الكود في حالة تحقق الشرط Else الكود في حالة عدم تحقق الشرط End If محدش ياخد الكود ده في محرر الأكواد (دا للتوضيح .. واحد مش معبرني وبردو بياخد الشكل ده كوبي ورايح على محرر الأكود ..سيبوه يتصدم !!) أعتقد الصورة كدا بقت واضحة .. استعملنا في الشرط كلمة IsMissing ، الترجمة الحرفية ليها هل مفقود ؟ هل مفقود العرض ؟ -- يعني هل المتغير المسمى العرض مفقود ؟ لو كان مفقود هيتم حساب المساحة بضرب الطول * الطول ، ولو كان موجود يطنش الجزء الأول وينفذ الجزء التاني ، ويضرب الطول * العرض نرجع لورقة العمل ونعدل المعادلة ونخليها : =area(A1) كدا مفيش المتغير الخاص بالعرض ، فتقوم الدالة تضرب الطول * الطول ، ويطلع الناتج 81 لو فضلت المعادلة زي ما كانت في الأول هيكون الناتج صفر .. طيب دا هيكون واجب : عايزين نضيف شرط وهنستخدم فيه معامل الشرط OR ..بحيث لو كان العرض = 0 يضرب الطول * الطول ... سامع واحد من اللي بيقروا بيدعي عليا ، وبيقول حرام عليك طلعت عنينا عشان نعرف مساحة المستطيل ، دا أنا أرحم لي إن أحسبها بايدي وأريح بالي .. معلش استحملوني ! دا كان مجرد مثال عشان نفهم إزاي نقدر نبني دالة .. واجب تاني غير الأولاني (مش هرحمكم!) : قم ببناء دالة بسيطة ، بحيث لو قيمة معينة أكبر من أو يساوي 100 يكتب ممتاز ، لو أقل من 100 يكتب جيد وإلى لقاء مع حلقة جديدة من حلقات افتح الباب واجري ورايا كان معكم البنا أبو البراء من شركة مؤسسة أوفيسنا لأعمال البناء .. إلى أن ألقاكم بخير .. دمتم في حفظ الله
    1 point
  26. أخى الفاصل أ.عبد الباري "من لا يشكر الناس لا يشكر الله " بجد من القلب الف مليون شكر على هذا العمل الرائع، مبذول فيه جهد كبير، جعله الله في ميزان حسناتك وزادك الله علما وفضلا تحياتى
    1 point
  27. اخي الكريم شوف هذا المرفق لك يمكن يفي بالغرض 3333.rar
    1 point
  28. انا لما فكيت الضغط كان121ميجا وقعد يفتح حوالي15دقيقة جربت اعمله حفض بصيغة Microsoft Office Excel Binary بدون ما اجريت عليه اي تغيير...بقى بعد الحفظ بالصيغه المذكوره(الحجم5ميجاء) والملف كان بهذا الصيغة Microsoft Office Excel Macro-Enabled مسودة الصف الرابع.rar
    1 point
  29. استاذي العزيز..ابراهيم ابوليلة طبعا الي سويته قام بالغرض المطلوب..بس في شي بسيط ضهر بعد الي سويته وهو..عندماء اكون في ورقة سند قبض اضغط على اضافة سند...بيضهر الفرم مع الانتقال الى ورقة دليل الحسابات..ما يقعد في ورقة سند قبض..ارجو منك افادتي عن السبب ولو ثقلت عليك..ولك جزيل الشكر
    1 point
×
×
  • اضف...

Important Information