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

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

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

    ياسر العربى

    الخبراء


    • نقاط

      11

    • Posts

      1510


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

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

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


    • نقاط

      11

    • Posts

      13165


  3. الصـقر

    الصـقر

    الخبراء


    • نقاط

      7

    • Posts

      1836


  4. خالد الرشيدى

    خالد الرشيدى

    الخبراء


    • نقاط

      6

    • Posts

      889


Popular Content

Showing content with the highest reputation on 10/26/15 in all areas

  1. إخواني وأحبابي في الله تتقدم إدارة الموقع بالتهنئة لكلٍ من العضوين الكريمين :: خالد الرشيدي *** ياسر العربي فنتقدم لهما بالتهنئة الحارة من قلوبنا ، ونتمنى لهما مزيد من التفوق والتميز .. مع تحيات أخوكم أبو البراء
    4 points
  2. الأخ العزي الأز / خالد الرشيدي والأخ العزيز/ ياسر العربي الف ألف مبروك ترقية مستحقة عن جدارة والكل يشهد لكم بذلك فإلى مزيد من التقدم والترقي في كافة مجالات حياتكم تقبللا تحياتي واحترامي والشكر موصول لأستاذنا القدير صاحب الهم الكبير ودواء العليل في هذا المنتدى حبيبنا ياسر خليل
    2 points
  3. أسعد الله أوقاتكم بكل خير فيما يلي الدرس العاشر من دورة "إكسيل 2013 المستوى المتقدم" بعنوان دوال قواعد البيانات- الجزء الثاني الدرس العاشر - دوال قواعد البيانات 2 أتمنى لكم مشاهدة ممتعة ومفيدة يمكنكم تحميل ملفات التمارين الخاصة بهذه الدورة من خلال الرابط التالي: http://www.4shared.com/rar/QvwJQLddce/_-__.html لمتابعة الموضوع الرئيسي للدورة يمكنكم فتح الرابط التالي حيث جميع الدروس موجودة: دورة اكسيل 2013 المستوى المتقدم دمتم بخير أخوكم م/نضال الشامي Google+
    2 points
  4. استاذ صقر هتنزل الاختبارات امتى عشان الحق اذاكر اصلي بقالي فترة مش براجع وشكلي هشيل المادة وبعدين بابا بيقولك راجعلي كويس عشان مش بفهم بسرعه يالهوي علي الحسد
    2 points
  5. أستاذ ياسر والأستاذ أبو البراء والأستاذ الصقر اذا بالإمكان تنزيل SQL وهو برنامج مجاني من مايكروسوفت وانشاء الله ستاتي الدروس لاحقا ------ انا اكثر اشي فادني بهاي المواضيع، انه بشغلي برنامج محاسبة ضخم أساسه sql وانا مش كثير راضي عن التقارير اللي بعطيني إياها البرنامج المحاسبي اضطريت اشبك البرنامج المحاسبي مع الاكسل عن طريق ربط الاكسل بجداول اس كيو ال وحاليا بكسبة زر ببني كل التقارير اللي بدي إياها مع رسوم بيانية بدون ادخال أي قيمة يدوية ------- ومع التجرية اقدرت ابني برامج بواجهة اكسل وبدون أي وجود للبيانات فيها، فقط برامج للتقارير وأيضا برامج اكسل تكون فقط بها شاشات ادخال وتخزن البيانات بقواعد بيانات اس كيو ال --------
    2 points
  6. يا ابو البراء ياسر ده خط كبير اسالنى انا محدش عارفه غيرى ده بحر وبحوره غويطه يبان قدامك انه غلبان وكدا وهو بقولك يا ياسر انا مش عايزك تبطل هرش فى دماغك طلع اللى عندك ومتخفش ولو عايز بخاخ على حسابى
    2 points
  7. الطريقه التاسعه :- تعبئه الكمبوبوكس بدون تكرار وبناء على شرط باستخدام الحلقه التكراريه For Each و المتغير Collection وداله If (طريقه احترافيه) لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر ولكن دون تكرار وبناء على اسم المعرض شاهد الصوره كما هو مبين بالصوره انا عايز اقوم بتعبئة الكمبوبوكس ولكن حسب عملاء معينه مثلا وليكن الجزائر ( عبدالعزيز البسكرى و شوقى ربيع ) فقط نعمل ايه؟ هو نفس الكود السابق اللى بالطريقه الثامنه مع تعديل بسيط تعالو نشوف الكود كان ايه ؟ وما هو التعديلات اللى هتم عليه ؟ Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With End Sub اللى هيتم تغييره بالكود 1- هذا السطر للحلقه For Each For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) هنا بدل الحلقه ما بتلف على خلايا العمود A هخليها تلف على خلايا العمود B زى كدا For Each data In Sheet1.Range("b2:b" & Sheet1.Cells(Rows.Count, "b").End(xlUp).Row) 2- بعد سطر الحلقه التكراريه هعمل شرط لجلب البيانات وذالك من خلال قاعدة If انا عايز اجيب عملاء الجزائر فقط If data.Offset(0, -1).Value = "الجزائر" Then group1.Add data, data.Text group2.Add data.Offset(0, 1).Value, data.Text End If زى ما احنا شايفين سطر الكود استخدمنا If لعمل شرط ما هو الشرط ؟ الشرط ان data اللى بتمثل كل خلية فى العمود B يبص على الخليه اللى قبلها يعنى مثلا لما يكون data قيمتها B2 يبص على الخلية اللى قبلها اللى هى A2 ( طبعا دا تم من خلال offset ) طيب هو لما يبص على الخلية اللى قبلها A2 هيختبر ايه ؟ عايزه يشوف هل مكتوب بها الجزائر أو لا ؟ اذا كانت بها الجزائر ينفذذ الاسطر التالية ثم انهاء If وطبعا شرحنا معنى هذه الاسطر قبل كدا وبعد هذه التعديلات البسيطه على الكود هيكون شكله النهائى كدا فى حدث فتح الفورم Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("b2:b" & Sheet1.Cells(Rows.Count, "b").End(xlUp).Row) If data.Offset(0, -1).Value = "الجزائر" Then group1.Add data, data.Text group2.Add data.Offset(0, 1).Value, data.Text End If Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End with End Sub شاهد الصوره عند فتح الفورم ************************************************************************************** واحد فنان هيسئلنى سؤال فنى ************************************************************************************** هو انا لو عايز مصر مثلا مش الجزائر لازم ادخل كل مره على الكود واغير فى هذا السطر If data.Offset(0, -1).Value = "الجزائر" Then هغير بدل من الجزائر اعملها مصر If data.Offset(0, -1).Value = "مصر" Then هقوله الاجابه ايوا لكن انا عارف قصدك انت عايز طريقه احترافيه وهى تعبئة الكمبوبوكس بناء على اخر فى الحاله دى لازم اعمل كمبوبوكس جديد فى الفورم اتبع معى الخطوات التالية الخطوه الاولى :- هنصمم كمبوبوكس جديد شاهد الصوره الخطوه الثانيه : عمل كود فى حدث فتح الفورم هنعمل كود ليقوم بتعبئة الكمبوبوكس 2 بالبيانات فى العمود A الخاصه باسماء المعارض ولكن دون تكرار امامك طريقتين 1- اذا كان الاسماء للمعارض ثابته ممكن تعملها من خلال المصفوفه زى ماعرفنا قبل كدا زى كدا Private Sub UserForm_Initialize() Dim a As Variant a = Array("اليمن", "مصر", "سوريا", "الجزائر") ComboBox2.List = a End Sub 2- اذا كان الاسماء للمعارض متغيره اذن هنستخدم كود المجموعات مع شرط عدم التكرار فهيكون الكود كدا كما تعلمنا من قبل Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Set group1 = New Collection For Each data In Sheet1.Range("a2:a" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text Next data With Me.ComboBox2 For i = 1 To group1.Count .AddItem group1(i) Next i End With End Sub وعند تشغيل الفورم سيكون كالتالى الخطوه الثالثه :- انا عايز عند الاختيار من الكمبوبوكس 2 يتم تعبئة الكمبوبوكس 1 بالاسماء التابعه له تلقائيا اذن هعمل كود فى حدث تغيير الكمبوبوكس 2 ( يعنى كل ما يتم تغيير قيمة الكمبوبوكس 2 تتغير تعبئة الكمبوبوكس 1) هجيب نفس الكود اللى كان فى بداية الدرس اللى هو التعبئة بناء على شرط مع تغيرات بسيطه واحطه فى حدث تغيير الكمبوبوكس 2 كالتالى Private Sub ComboBox2_Change() ComboBox1.Clear On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("b2:b" & Sheet1.Cells(Rows.Count, "b").End(xlUp).Row) If data.Offset(0, -1).Value = ComboBox2.Value Then group1.Add data, data.Text group2.Add data.Offset(0, 1).Value, data.Text End If Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With End Sub اللى تم تغييره فى هذا الكود هو اضافه السطر الاول يعنى تنظيف ومسح محتوى قائمة الكمبوبوكس 1 لاستضافه البيانات الجديده حسب التعديل فى الكمبوبوكس 2 وايضا استبدال هذا السطر If data.Offset(0, -1).Value = "الجزائر" Then بالسطر التالى If data.Offset(0, -1).Value = ComboBox2.Value Then جعل الشرط حسب محتوى الكمبوبوكس 2 شاهد الصوره التالية عند اختيار مصر من الكمبوبوكس 2 سيظهر القائمة فى الكمبوبوكس 1 باسماء عملاء مصر فقط شاهد الصوره التالية عند اختيار سوريا من الكمبوبوكس 2 سيظهر القائمة فى الكمبوبوكس 1 باسماء عملاء سوريا فقط **** كدا عرفنا ازاى نقوم بتعبئة الكمبوبوكس بناء على شرط **** وكمان عرفنا ازاى نقوم بتعبئة الكمبوبوكس بناء على كمبوبوكس اخر( وطبعا فى طرق اخرى كتير جدا لتعبئة كمبوبوكس بناء على كمبوبوكس اخر ) يعنى درس النهارده دسم ومحتاج تركيز ولازم تجربو الكلام ده عملى ارجوا يارب ان اكون وفقت بالشرح والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس انتظرونا تقبلوا تحياتى
    2 points
  8. أخى أنس مشكور على الأكواد الجميلة دى واثراء للموضوع ده كود تغيير المستخدم SwitchUser Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Sub SwitchUser() Dim su su = ExitWindowsEx(EWX_REBOOT, 0) End Sub تحياتى
    2 points
  9. السّلام عليكم و رحمة الله و بركاته هل تعلم أستاذي القدير مختار حسين محمود أنّي من هُواة أعمالك .. جزاك الله خيرًا و زادها بميزان حسناتك .. متعة حقيقيّة بروائع أكوادك فائق إحتراماتي
    2 points
  10. اخي واستاذي الفاضل نضال الشامي بجد مجهود رائع وعمل متقن وجزيت خيرا علي هذه الدروس القيمة لي نصيحة صغيرة جدا دروس الميديا اقل تصفحا في اوقات العمل لذا انا واحد من الاشخاص هروح علي الدرس المشروح كتابة وصور ومثال توضيحي للوصول الى ما احتاجه بسرعه ولكن موضوع الشرح فيديو هذا سأقوم بتصفحه عند العودة من العمل فعملك المتقن يسقط منه فئة من الناس عن مشاهدة وخصوصا اصحاب السرعات الضعيفة ايضا واللي معندهمش وقت فاقترح اضافة شرح ولو بسيط بالصور والكتابة ومثال الحل والتمارين تحت دروس الميديا يبقي كدا وصلنا علمنا لمعظم الشرائح مجرد فكرة تقبل مروري الرخم صح ياسر العربي
    2 points
  11. دائما رائع أخى الغالى / مختار جزاك الله كل الخير على كل ما تقدمه تقبل منى خالص تحياتى وتقديرى
    2 points
  12. دائما اخوانا هنا سباقين بالحلول او انا اللي دايما بتأخر مش عارف المهم مشكور اخي العيدروس واسمحلي لازم احط التاتش المصري بردو دا عند غلق الملف مثل ما قال اخي الغالي Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.CommandBars("Ply").Enabled = True End Sub اما لو من شيت لاخر فا تبقي كدا Private Sub Worksheet_Activate() Application.CommandBars("Ply").Enabled = False End Sub Private Sub Worksheet_Deactivate() Application.CommandBars("Ply").Enabled = True End Sub تقبل مروري المتواضع ياسر العربي
    2 points
  13. حط في حدث اغلاق الملف Application.CommandBars("Ply").Enabled = true
    2 points
  14. - بداية نحن الآن فى اجازة آخر العام .. لذلك احببت أن أستعرض معكم هذا الموضوع للعمل عليه فترة 5 شهور بحيث يكون مكتملا كما نرغب بحلول شهر 11 ان شاء الله الفكرة * تصميم برنامج كنترول مدرسي متكامل لمراحل النقل بواسطة الأكسيس * البداية المرحلة الإعدادية - ثم تليها الابتدائية ثم الثانوية * سأقوم برفع البرنامج للتجربة وأخذ الملاحظات تباعا والتعديل عليها حتى اصدار النسخة النهائية بحلول شهر 11 كما ذكرت . * أرجو من الله أن يوفقنى في عرض البرنامج عليكم كما اتمنى أن يشاركنى اكبر قدر من الزملاء فى هذا العمل بالملاحظة والمشورة .... http://www.mediafire.com/download/0y923e29eote974/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D8%AC+%D9%83%D9%86%D8%AA%D8%B1%D9%88%D9%84+%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF%D9%8A.rar
    1 point
  15. ADO Connectionاستخدام الاكسيل كقاعدة بيانات عن طريق وسيلة الاتصال اعتقد ان هذا الموضوع سيعطيكم معلومة جديدة في كيفية التعامل مع الاكسل كقاعدة بيانات في البداية الطريقة تعتمد على وسيلة الاتصال Active Data Object ADO وهي وسيلة اتصال بين برنامج كتابة الاكواد و قاعدة البيانات مثلا VB.net and SQL Visual Basic and Access وهي حصرية لبرامج مايكروسوفت فقط ولكي يكون لدينا اتصال كامل يجب ان يكون لدينا Connection String وهو عنوان قاعدة البيانات التي سيتم الاتصال بها، والذي من خلاله سيكون التالي: * فتح اتصال* * جملة الاستعلام* * انهاء الاتصال* وهنا تكمن الميزة بهذه الطريقة، فجملة الاستعلام يجب كتابتها بطريقة SQL dataBase وهنا تنطبق معظم جمل SQL امثلة على الجمل select * from [data] Select Count(Customer) from [data] Select Sum(Customers) from [data] where city ='Ramallah' تعلم كتابة جمل جديدة وغيرها من الجمل التي يعرفها جيدا المبرمجون باستخدام قواعد البيانات SQL,MYSQL,Oracle اكبر فائدة لهذه الطريقة انه يمكن من خلالها تصميم واجهة برنامج على الاكسل او تصميم فورم على الاكسل وحفظ البيانات على ملف اكسل اخر بدون الحاجة الى فتحه ولاستخدام هذه الطريقة يجب تفعيل التالي Tools-References بالمرفق ملف اكسل يحتوي مثال على ما تم ذكره سابقا database.zip
    1 point
  16. هذا البرنامج البسيط الذي أسميته "خير جليس" هي ثمرة فكرة بدرت في ذهني حينما رأيت تراكم الكتب في منزلي ففكرت أنه لابد لكل واحد لديه نفس المشكلة في بيته فارتأيت إنجاز هذا العمل المتواضع ليسهل البحث عن الكتاب وكذلكك تنظيم الكتب وعدم اتلافها أوضياعها، ثم بعد ذلك تطورت الفكرة فرأيت أن أجعلها حتى لغير المنزل بل للمكتبات العامة ...وغيرها إن أمكن ذلك وأرجو أن ينال إعجابكم ورضاكم وأن ينفع الجميع إنشاء الله فقط لاتنسونا بأرائكم واقتراحاتكم بعد التفحيص والتمحيص في البرنامج ولا تنسونا من خالص دعائكم أيضا، وكذلك دون أن أنسى شكري الخالص لكل من ساندوني في كل اشكالاتي واستفساراتي التي كنت عالقا فيها من الإخوة الأعضاء والمشرفين لهذا المنتدى وكذلك التجارب والخبرات الكثيرة التي أخذتها، وهذا وإن أصبت فبتوفيق من الله عز وجل وإن أخطأت فمن تقصيري و من الشيطان. وفي الأخير تقبلوا مني فائق التقدير والإحترام . وشكرا المرفق بحجم كبير لذلك رفعته على رابط خارجي: http://www.up-gulf.com/do.php?id=2614
    1 point
  17. السلام عليكم ورحمة الله وبركاته بالكلمات لا يمكننى ان اعبر عن سعادتى بهذه التهنئة الرائعة ويعجز اللسان عن تقديم الشكر بالقدر اللائق بحضراتكم الاستاذ / ابو عبد الاله الاستاذ /ابو عبد الرحمن البغدادى الاستاذ القدير / عادل حنفى الاستاذ / محى الدين ابو البشر الاخ الحبيب أ/ الشهابي لكم جزيل الشكر والتقدير اخوتى واساتذتى الكرام ... وفقنا الله جميعا لما فيه الخير الاستاذ الكبير / أبو البراء .. صاحب التشجيع والدعم المستمر .. والله انى احبك فى الله .. .. لك منى خالص التحية والاحترام لشخصكم الكريم
    1 point
  18. مبارك ستاذ خالد الراشدي لمست تجاوبك الجميل وحلولك الذكية بارك الله بك وسدد خطاك
    1 point
  19. ألف مبروك ويستحقان هذه الترقية جهودهما واضحة وبارزة نسأل الله تعالى لهما التوفيق ومن تقدم لتقدم إن شاء الله .
    1 point
  20. السلام عليكم إستكمالاً لما بدأه الاستاذ / يــاسر العربى ... جزاه الله خيراً اليك الطلب الثانى اليك المرفق 2ترحيل.rar
    1 point
  21. الله يرحم لما كنا بنطفيه من الفيشة دلوقتي ما شاء الله بنطفيه من الاكسيل
    1 point
  22. هذا التعديل غير متاح حاليا و بإذن الله سنتابع الاصدارات الجديدة اولا باول و ستحمل باذن الله تحسينات و اضافات كثيرة
    1 point
  23. السلام عليكم عند الدخول على الصفحة الشخصية اضغط على عرض المحتوى
    1 point
  24. يرجى طرح الموضوع من بداياته أخي الكريم مازن بدايةً من بدء تنصييب البرنامج .. في انتظار دروسك على أحر من الجمر ستجدني إن شاء الله أول الطلبة المتقدمين في صف التعلم أخي ياسر العربي شكلك طالب مشاكس ..ابقا اقعد في التختة اللي جنبي عشان أستفيد منك
    1 point
  25. أخى الغالى زيزو أشكرك عظيم الشكر على كلامك بحقى ودعاءك الطيب والحمد لله الذى وفقنى لتحقيق متعة شخص ما - ولو أنت فقط - بعلم نافع تحياتى وتقديرى لكل أهل بسكرة الجزائرية
    1 point
  26. برافو أهو كده يبقى التاتش المصرى
    1 point
  27. أخى الغالى ياسر فتحى بارك الله فيك و مشكور على مرورك والله فى أيام كثر فيها (اخطف واجري قبل ما صاحب الموضوع يدري ... )
    1 point
  28. ااستاذي الغالي مختار حسين محمود شكلك عاوز تزنقني عشان حطيت التاتش بتاعي بس انا ههرب باي كود يجدع الواحد كدا يخاف يحط تاتشات تاني book.rar
    1 point
  29. أخى العزيز / ياسر العربى تحية طيبة وبعد ،،،،،، لا عليك إطلاقاً وليس هنالك أى داعى للإعتذار بل أنا الذى أعتذر لك إن كنت قد أسأت الظن بك أو بأحد. خالص شكرى وتقديرى أخوك عيد مصطفى
    1 point
  30. زي ما اخويا وحبيبي الغالي ابو البراء قال توضح لينا الفكرة ولو بمثال وطريقة الربط انا بصراحة دخلت هرشت في دماغي وخرجت كل اللي عرفته لاني بردو وحش وبيري غويط والمصري ميبقاش مصري لو محطش التاتش بتاعة ومينفعشي يقول معرفشي ان دا زي ما انا كنت بعمل منتديات ومواقع وارفعها علي اي استضافة بحتاج اني اربطها بقاعدة بيانات DataBaseName = "------" ServerName = "------" UserId = "------" Password = "------" بعرف اسم القاعدة وعنوان السيرفر واسم المستخدم وكلمة المرور عشان يقدر المنتدى او الموقع ايا كان يقدر يتواصل مع قاعدة بيانات الsql في انشاء الجداول ووضع البيانات المراد العمل عليها من ادخال واستعلامات زي اسماء المستخدمين وكلمات المرور والمواضيع والكلام دا فا هنا ربطنا الاكسيل بقاعدة اس كيو ال وبعدين استخرجنا قيمة من احد الجداول داخل القاعدة واخرجناها في الخلية Range("a3").CopyFromRecordset rs ياترى اكمل هرش في دماغي ولا ابطل
    1 point
  31. استاذى الفاضل نضال الشامى جزاكم الله خيرا وجعل اعمالكم فى ميزان حسناتكم تقبل منى وافر الاحترام والتقدير
    1 point
  32. بضغطة زر واحدة : يتم تعديل المراحل فقط بغض النظر عن الشعب وذلك باستخدام استعلام التحديث تبدأ بالمراحل العليا ثم الدنيا زيادة في الايضاح : لنفرض ان المرحلة هي المتوسطة فقط وهي ثلاث صفوف 1- اولا يتم حذف الطلاب المتخرجين في الصف الثالث 2- نعمل استعلام تحديث للصف الثاني ( تحديث الى : "الصف الثالث" ) وفي حقل المعايير نضع : "الصف الثاني" ثم نشغل الاستعلام يتم من خلال العملية السابقة استبدال الكلمة الصف الثاني بالكلمة الصف الثالث ثم نكرر هذه العملية لتحديث الصف الاول
    1 point
  33. اخي وليد لقد جهزت لك الملف للرفع الورقة محمية لذا لم استطع اضافة زر للماكرو اليك الكزد لهذاالغرض يمكنك نسخه في موديل جديد و تعيين زر له او تشغيل الماكرومن الملف المرفق Sub split_in_tow_columns1() Dim ws1, ws2 As Worksheet Dim Myrange As Range Dim lr, My_nb_rows As Integer Dim c, k As Integer k = 5 c = 3 Set ws1 = Sheets("ATTENDANCE"): Set ws2 = Sheets("Number trades in the project") lr = ws1.Cells(Rows.Count, "f").End(3).Row Set Myrange = ws1.Range("f9:f" & lr) ws2.Range("c5:c26").ClearContents ws2.Range("f5:f26").ClearContents For i = 9 To lr t = Application.CountIf(ws1.Range("f5:f" & i), Range("f" & i)) If t = 1 Then Cells(i, 6).Copy ws2.Cells(k, c) k = k + 1 If k > 26 Then k = 5: c = 6 End If Next End Sub برنامج حظور وانصراف salim.zip
    1 point
  34. السلام عليكم الاخ خالد الرشيدي اشكرك جزيل الشكر جزاكم الله خيرا على مجهودكم الطيب
    1 point
  35. الاخ والاستاذ الحبيب / ياسر العربى شكراً جزيلاً على مرور حضرتك العطر .. وفقنا الله وإياكم لما فيه الخير .. ربنا يبارك فى حضرتك .. خالص تحياتى وتقديرى واحترامى
    1 point
  36. أخي الحبيب عيد مصطفى رويدك رويدك .. لا تغضب .. لا تغضب واتق الله في إخوانك وأحسن الظن بهم لست أنت المقصود على الإطلاق من الحوار ... الحوار في عموم الأمر .. ولك مني اعتذار إذا كنا قد أسأنا إليك تقبل وافر ودي واحترامي
    1 point
  37. أخي الحبيب خالد الرشيدي عمل رائع ومتميز كعادتك دائماً .. تقبل وافر تقديري واحترامي
    1 point
  38. الطريقه الثامنه :- تعبئه الكمبوبوكس بدون تكرار باستخدام الحلقه التكراريه For Each و المتغير Collection (طريقه احترافيه) هذه الطريقه طريقه احترافيه من حيث فكرة الكود وكتابته ولكنها غير عملية ومفيده فى البيانات ذات النطاق الكبير نظرا لاعتمادها على عدد 2 حلقه تكراريه مما يسبب البطئ فى ادخال البيانات لو كان نطاق العمل كبير لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر ولكن دون تكرارشاهد الصوره انا كل مره بالشرح بكتب الكود وبعدين اشرحه بالتفصيل المره دى انا هشرحه قبل ما اكتبه تعالو نشوف ايه اللى بيحصل ببساطه ايه المطلوب ؟ المطلوب هو ادخال البيانات اللى بالشيت المظلله باللون الاخضر ( A2:B7) اذن لازم اعمل متغير يعبر عن كل خلية بالنطاق فنعمل ايه ؟ Dim data As Range انا دلوقتى عايز العمودين دول يدخلوا فى الكمبوبوكس برضوا فى عمودين انا هعمل ان كل بيانات عمود عباره عن مجموعه بمعنى ايه الخلايا من A2 الى اخر خلية بها بيانات فى العمود A ( دى تكون مجموعه اولى ) والخلايا من B2 الى اخر خلية بالعمود A ( دى تكون مجموعه تانية ) طيب علشان اعلن عن مجموعه يبقى لازم اعمل كدا Dim data As Range Dim group1 As Collection Dim group2 As Collection عرفت متغير وسميته group1 وقلت ان المتغير ده من النوع Collection ( وCollection تعنى مجموعه ) طبعا زى ما اتفقنا انى عايز اعرض عمودين يبقى لازم اعرف كل عمود فى مجموعه فأنا محتاج اعرف متغير لكل مجموعه لذالك عملت group1 و group2 طيب group1 و group2 عباره عن ايه ؟ عباره عن مجموعات جديده اذن لازم استخدم set لتحويل قيمة المتغير الى كائن طيب أزاى ؟ بالشكل ده شوف الكود Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection حولت قيمة المتغير group1 الى كائن يساوى مجموعه جديده وايضا حولت قيمة المتغير group2 الى كائن يساوى مجموعه جديده ********************************************************************************************* محلوظه مهمه جدا انا عملت مجموعتين لاننا عايزين نقوم بتعبئة الكمبوبوكس ببيانات العمودين A و B لكن لو حضرتك عايز عمود A فقط اذن تعرف مجموعه وحده فقط يعنى على حسب عدد الاعمده هتعرف مجموعات *********************************************************************************************** طيب دلوقتى عملنا بالكود مجموعتين عايزين ندخل فيهم البيانات بقى اللى بالشيت فنعمل ايه ؟ هنستخدم الحلقه التكراريه For Each ونسمى الحلقه باسم Data ونقول ان الحلقه تبدأ من A2: الى اخر خليه بها بيانات وطبعا اتكلمنا بالتفصيل قبل كدا عن الحلقه For Each راجع الدرس السابق تعالو نشوف الكود وصل لوين ؟ Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) Next data كدا عملنا الحلقه والحلقه هتلف من خلال Next بس كدا هتلف على الفاضى مجرد بس هتمر على الخلايا اللى بالنطاق وتقولها السلام عليكم ان مش عايز سلامات وطيبون دلوقتى انا عايز استفيد من لفتها ومن عملها عايز اقولها ان group1 المجموعه الاولى تساوى العمود A اللى هو Data وعايز ان group2 المجموعه الثانيه تساوى العمود B اللى هو بجوار الـ Data ( من خلال offset) فالكود هنضيف فيه ايه ؟ شوف الكود Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data group2.Add data.Offset(0, 1).Value Next data قلنا ان group1 قم بأضافه data ( اللى هى خلايا العمود A) من خلال Add وكذالك group2 قم بأضافه خلايا العمود B واحد هيقولى بس كدا هياخد كل البيانات اللى بالنطاق حتى وان كانت مكرره وانت قلتلى ان الطريقه دى مش هيكرر البيانات فى الكمبوبوكس هو انت بتضحك عليا هقوله يا عم اصبر شوية انا عايز اديك الطريقتين لو عايز البيانات زى ما هى حتى وان كانت مكررة يبقى الكود السابق كدا تمام ولكن لو مش عايز تكرار بسيطه جدا هنعمل اضافه صغيره جدا جدا جدا شوف الكود On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data اللى مركز معايا وصاحى هيعرف ايه اللى تم اضافته تم اضافه السطر الاول وهو عباره On Error Resume Next وتعنى عند حدوث اى خطا انتقل الى السطر التالى واحد هيقولى طيب وهو هيحصل خطأ ليه هو مش الكود مكتوب صح هقوله لان انت طلبت عدم تكرار الاسماء فالكود عندما يصادف اسم مكرر هيتوقف ليتم تبليغ حضرتك فعلشان كدا كتبتله هذه العباره انه مش عايزه يبلغنى وينتقل الى السطر التالى ويكمل الحلقه بتاعته دون توقف وتم اضافه هذا الجزء البسيط فى السطر group1.Add data, data.Text الجزء المظلل باللون الاحمر هى الاضافه البسيطه اللى تمنع التكرار طيب كدا حلو قوى لحد دلوقتى تم تعبئة كل مجموعه المجموعه الاولى بالعمود A والمجموعه الثانيه بالعمود B ازاى بقى ندخل بيانات كل مجموعه فى اعمدة الكمبوبوكس اذن هستخدم الخاصيه With واقفالها بــ End with للاشاره الى الكمبوبوكس المراد تعبئته With Me.ComboBox1 End With هنا ياتى دور الحلقه التكراريه التانيه اللى مهمتها تلف على كل محتويات المجموعه ودخلها فى اعمدة الكمبوبوكس الحلقه هى For Next للمرور على كل عناصر المجموعه من رقم 1 اللى هو اول عنصر بالمجموعه الاولى الى اخر عنصر بالمجموعه الاولى On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With AddItem. يشير الى العمود الاولى للكمبوبوكس وقمنا بتعبئة عناصر المجموعه group1 (List(.ListCount - 1, 1. يشير الى العمود الثانى للكمبوبوكس وقمنا بتعبئة عناصر المجموعه group2 يبقى تحديد وقت تنفيذ الكود وزى ما اتفقنا قبل كدا ان وقت تنفيذ الكود انت اللى بتحدده ولكن على سبيل المثال فى حدث فتح الفورم Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With End Sub والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس انتظرونا تقبلوا تحياتى
    1 point
  39. السلام عليكم هذا حل بالإكواد اضغط الزر وانتظر قليلا ثم لاحظ النتيجة في العمودين الأصفرين تحياتي متوسط الإقفال لكل شهر.rar
    1 point
  40. السلام عليكم جميعا ورحمته الله وبركاته أخى الفاضل الاستاذ // رضا راغب أهلا وسهلا بك أخى الكريم بين إخوانك المتميزين خلقا وعلما وأدبا وبعد إذن اخى الحبيب // ياسر خليل " أبو البراء " وإثراءا للموضوع إليك هذا الكود وبإذن الله تعالى ستجد حلا للموضوع جزاكم الله خيرا وبارك فيكم Private Const cRunWhat = "Tarhil_Values" Private RunWhen As Double, Arr() As Range, CurIndex As Long Public Sub StartTimer() Dim A As Areas, I As Long If RunWhen > 0 Then MsgBox "The Process Is Already Running" Exit Sub End If Set A = Sheets("Sheet1").Columns("A").SpecialCells(2, 1).Areas ReDim Arr(1 To A.Count) For I = 1 To A.Count Set Arr(I) = A(I).CurrentRegion Next I CurIndex = 0 RunWhen = Now + TimeSerial(0, 0, 10) Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, Schedule:=True End Sub Public Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, Schedule:=False RunWhen = -1 MsgBox "Transferring Data Will Be Turned Off" End Sub Private Sub Tarhil_Values() CurIndex = CurIndex + 1 If CurIndex > UBound(Arr) Then StopTimer Exit Sub End If Arr(CurIndex).Copy Sheets("Sheet2").Cells(Arr(CurIndex).Row, "C") Application.CutCopyMode = False RunWhen = Now + TimeSerial(0, 0, 10) Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, Schedule:=True End Sub
    1 point
  41. أسعد الله أوقاتكم بكل خير فيما يلي الدرس الثامن من دورة "إكسيل 2013 المستوى المتقدم" بعنوان المصفوفات في اكسيل 2013 الجزء الرابع الدرس الثامن - المصفوفات الجزء الرابع أتمنى لكم مشاهدة ممتعة ومفيدة يمكنكم تحميل ملفات التمارين الخاصة بهذه الدورة من خلال الرابط التالي: http://www.4shared.com/rar/QvwJQLddce/_-__.html دمتم بخير أخوكم م/نضال الشامي Google+
    1 point
  42. مرفق ملف للتوضيح Dملف باسم داتا يوضع مثلا على قرص كمبيوتر والملف الثاني لا يشترط وضعه في مكان وبالامكان تغير مساق الداتا كما يمكن تغير قيم الادخال وإدخال من خلايا الاكسل او من مربع نص بالفورم Input And Query From DB.zip
    1 point
  43. السلام عليكم ورحمة الله وبركاته بارك الله بجهودكم الطيبة أستاذ نضال الشامي..اللهم اجعله علماً نافعاً شاملاً والسلام عليكم.
    1 point
  44. الاستاذ الفاضل نضال الشامى جزاكم الله خيرا وجعل ما تقدمه فى ميزان حسناتك باذن الله وفقك الله لما يحبه ويرضاه استمر ونحن معك تقبل تحياتى
    1 point
  45. عرفت هذه المعلومة من زميل ، و لم اكن اعرفها سابقا و يبدو أن الاوفيس مازال يخبىء لنا الكثير فى دهاليزه عند كتابة تاريخ في نهاية السطر قد يأتي منقسما فيأتي اليوم فى سطر و باقي الشهر و السنة فى الشهر التالي ، و هذا و ان كان مقبولا ، الا انه ليس وضعا مثاليا و الحل المعتاد قد يكون التغيير فى المسافات او المحاذاة او حجم الخط او خليط بينها و لكن الحل السليم هو اختيار المسافة التالية لمحل الفصل ( بعد ال 28 فى هذه الحالة) ثم ضغط مايلي Ctr+Shift+Space فيصبح الوضع كالتالي:
    1 point
  46. السلام عليكم في أحد المواقع وجدت مشاركة منقولة عن موقع Microsoft وقد أذهلتني المعلومات والطرق والحيل الموجودة في هذا الملف أرجو أن لا نفتقد مشاركاتكم بعد تنزيل هذه الأمثلة شاهدوا المرفقات
    1 point
  47. السلام عليكم و رحمة الله و بركاته فى هذا المقال سنعرض لشرح دالة الاستبدال الغير مباشر فى الاكسيل يعني ايه ؟ يعني تفتح ملف الاكسيل تلاقي فيه قامتين منسدلتين ، احداهما تتأثر بالأخري يعني المعلومات التي تعرض فى الثانية تتأثر بما يتم اختياره فى الاولي مثلا لو اخترت من الاولي البلد مصر تجد المدن المصرية فى الثانية ،و لو اخترت الامارات تجد مدن الامارات و هكذا مر علي ملف وجدت به شيء مثل هذا الموصوف اعلاه ، و تفتح محرر الكود فلا تجد شيء و كان الملف به شيئ غير عادي و طبعا المعلومات فى جزئية ال ال Validation او التحقق من صحة البيانات و لو كان الملف محمي لن تظهر لك ، و لو كان مفتوح حتشوف فى قيمة ال data validation القائمة الثانية معادلة غريبة =INDIRECT(SUBSTITUTE(A11," ","_")) يطلع ايه بقي ده ؟ كثير من الاخوة لم يصادف هذا الموضوع من قبل ، و طبعا البعض يعرفه لذا نشرح الموضوع من الاول المشكلة : عندنا قائمة منسدلة بها معلومة اساسية ، مثلا اسماء القطاعات او المؤسسات و فى المثال سنسميها agency و قائمة أخرى بها أسماء الادارات و المطلوب هو أن تظهر فى قائمة الادارات فقط الادارات الخاصة بالمؤسسة التي يتم اختيارها فى القائمة الاولي اي يتم فلترة القائمة الثانية بناء على ما تم اختياره فى القائمة الاولى ب و اليوم سنشرح شرح مصور لكيفية عمل ذلك بدون كود خطوة خطوة و الشرح يبدأ من هنا أولا ندخل قائمتين للمعلومات الاولي بها قائمة المؤسسات و الثانية بها قائمة الادارات الخاصة بكل مؤسسة كما يلي ثم نختار قائمة المؤسسات (اللون البرتقالي) ثم formula define name و نسميها باسم ، و اول اسم خطر ببالي طبعا هو ..... officena ثم نذهب للخلية التي نريد ان تكون بها القائمة المنسدلة الخاصة بالمؤسسات الخلية الزرقاء A11 ثم Data Validation و نختار link =officena و لا تنسي علامة ال = بعد ذلك نختار قائمة البيانات الثانية باللون الااخضر ثم Formula defined names create from selection و نختار top فقط الخطوة الأخيرة نروح على الخلية الصفراء التي نهدف لوضع القائمة الثانية فيها أي الخلية A12 و نختار data validation link =INDIRECT(SUBSTITUTE(A11," ","_")) بس خلاص و عادة ما نفقوم بتغيير لون خط البيانات الاساسي و او اخفاء الاسطر التي بها البيانات ثم لانك فى الغالب تستخدم هذه النوعية من البيانات لتجميع المعلومات ، فستقوم بحماية ورقة العمل اولا نختار الخلايا المطلوب الا تكون محمية ثم من القائمة المختصرة Properties ثم نزيل خيار أن تشملها الحماية كما فى الصورة ثم نحمي ورقة العمل من قائمة review protect sheet و ذلك بالطبع بعد استثناء الخلايا التي تريد أن تسمح للمستخدم بتغييرها مثل القائمتان او اية بيانات اخري مطلوب منه ادخالها و المقصود بخطوات الحماية هو طبعا الوضيح و ليس حماية الملف كلمة السر www.officena.net و أخيرا ما يعيب عدم استخدام الكود هو ان الخلية الصفراء تبقي بها اخر قيمة مختارة بعد تحديث الخلية الزرقاء و قد لا تتناسب معها لذا اضفت رسالة للتذكير ضمن التحقق و الملف فى مكتبة الموقع قسم الاكسيل لتنزيل الملف http://www.officena....ds&showfile=113 موضوع الحوار http://www.officena....showtopic=38653 فى انتظار اضافاتكم و تحسيناتكم على الملف ============ مواضيع ذات صلة إنشاء قوائم منسدلة مرتبطة متعددة المستويات قائمة متعددة المستويات
    1 point
×
×
  • اضف...

Important Information