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

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

  1. الصـقر

    الصـقر

    الخبراء


    • نقاط

      14

    • Posts

      1,836


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

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

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


    • نقاط

      11

    • Posts

      13,165


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

    • نقاط

      8

    • Posts

      1,352


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

    ياسر العربى

    الخبراء


    • نقاط

      7

    • Posts

      1,510


Popular Content

Showing content with the highest reputation on 24 نوف, 2015 in all areas

  1. مثال رقم 3 :- فى المثال رقم 2 كان الشرح على نفس الصوره السابقه فورم فى مرحلة التصميم وصممت عليه Frame والفريم لا يوجد به اى عناصر تحكم تم تصميمها وكان المثال برقم 2 انى اعمل كود عند فتح الفورم يكون هناك عدد 10 صفوف من العناصر كل صف به ليبل وتكست بوكس وكمبوبوكس المثال بتاعنا اليومعايز اعرف ازاى اضيف عناصر تحكم اثناء فتح الفورم من شيت اكسيل وعدد الصفوف بالشيت غير معروف عددها فى زياده او نقصان شاهد الصوره هتعرف اكتر المثال بتاعنا بكل بساطه نفس الكود اللى بالمثال 2 مع تعديلات فنيه بسيطه جدا دا كان الكود اللى بالمثال 2 Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer Top = 5 For i = 1 To 10 With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i) .Left = 20 .Top = Top .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a End With With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label" & i) .Left = 340 .Top = Top .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = "الصقر" & i End With Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub ايه المطلوب تعديله بالكود لكى يتناسب مع المطلوب بتاعنا رفع الخلايا من الشيت الى الفريم المثال كان على ان عدد الصفوف 10 لذالك استخدمنا الحلقه For next كالتالى For i = 1 To 10 فدلوقتى انا عايز اجيب الخلايا بالشيت رقم 1 النطاق من A2 الى اخر صف هيكون به اخر طالب اذن بداية الحلقه هى اول صف بالجدول وهو الخليه A2 ورقم الصف لها هو 2 اذن الحلقه هتبدأ من رقم 2 الى ؟ الى اخر صف به بيانات فى العمود A اذن لازم احدد اخر صف به بيانات من خلال السطر التالى واحنا شرحناه قبل كدا lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row عملت متغير واسمه Lr وتقدر تسميه اى اسم كيفما شئت وقلت ان المتغير Lr يساوى كتبت اسم الشيت المراد العمل عليه واستخدمت Cells لتحديد عدد الخلايا الممتلئه بالبيانات فى العمود 1 كدا انا عرفت الحلقه من اين تبدأ واين تنتهى ( تبدأ من الصف 2 الى اخر صف به بيانات ) For i = 2 To lr شاهد الكود بعد تعديل الحلقه For Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row Top = 5 For i = 2 To lr With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i) .Left = 20 .Top = Top .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a .Text = Sheet1.Cells(i, 3).Text End With With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label" & i) .Left = 340 .Top = Top .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = Sheet1.Cells(i, 1).Text End With Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub اللى مركز معايا هيلاقى 1- تم تعديل بداية ونهاية الحلقه For 2- فى سطر تم اضافته فى خصائص كل عنصر فى عنصر الكمبوبوكس تم اضافه السطر التالى .Text = Sheet1.Cells(i, 3).Text قيمة الكمبوبوكس هى كتبت اسم الشيت وهو بمثالنا الشيت 1 ثم الخلية المطلوبه Cells عباره عن (رقم العمود, رقم الصف)Cells ( Cells( i , 3 i هنا هى رقم الصف اللى هيتغير كل مره بالحلقه For والعمود هو رقم 3 الخاص بالحاله --------------------------------- فى عنصر التكست بوكستم اضافه السطر التالى .Text = Sheet1.Cells(i, 2).Text نفس الكمبوبوكس ولكن تم تغيير رقم العمود هو 2 الخاص بالدرجه ---------------------------------- فى عنصر الليبل تم اضافه السطر التالى .Caption = Sheet1.Cells(i, 1).Text نفس الكمبوبوكس والتكست بوكس ولكن تم تغيير رقم العمود هو 1 الخاص باسم الطالب ----------------------------------------------------------------------------------------------------------------------- ملحوظه اخيره لمن يريد درجة الاحترافيه فى الكود لما كنا بنعمل خصائص العنصر كان الخاصيه Left & Top & Width& Height لكل عنصر كان بيتم كتابتهم بالشكل التالى كلا منهم على حد فى سطر مختلف على سبيل المثال خصائص التكست بوكس With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With ممكن اكتب الاربع خصائص فى سطر واحد من خلال Move القاعدة الخاصه بــ Move Move Left, Top, Width, Height. ويكون شكل الكود كالتالى بالخصائص With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Move 180, Top, 150, 40 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With تم استبدال الاربع صفوف بسطر واحد من خلال Move -------------------------------------------------------------------------------------------------------- جرب الكود بنفسك هتثبت المعلومه اكتر الى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد ان شاء الله هيكون عن كيفية التحكم فى العناصر الموجوده داخل الفريم سوء كانت مصممه اثناء عملية التصميم او تم انشائها بكود انتظرونا تقبلوا تحياتى
    3 points
  2. كلمة شكر وعرفان الى صاحب القلب الطيب الى صاحب النفس الابيه الى صحاب الابتسامه الفريده استاذى الفاضل السيد المهندس المحترم محمد طاهر مدير جامعه اوفيسنا اتقدم لحضرتك بخالص الشكر والتقدير على تثبيتكم لموضوع سلسلة علمنى كيف اصطاد شروحات الفورم ان قلت شكرى فشكرى لن يوفيكم حقا سعيتم للخير فكان جزاء السعى من رب العالمين لكم مشكورا أسال الله تعالى ان تكون هذه الشروحات علما نافعا ينتفع به
    2 points
  3. السّلام عليكم و رحمة الله و بركاته هل فكّرْتَ يومًا أخي الكريم .. في إيقاف التّواصل و ترك الجهاز تحت الضغط لِلَحظات .. من خلال اليوزرفورم و أنتَ تشتغل عليه .. هل فكّرْتَ يومًا أخي الفاضل .. و قد اضطررتَ لعمل ريسْتارْت و إعادة تشغيل جهازك .. في القيام بذلك فقط من خلال اليوزرفورم .. هل فكّرْتَ أخي الغالي .. في إطفاء جهازك نهائيًّا بزر أمر فقط من خلال اليوزرفورم .. هل فكّرْتَ أخي العزيز .. أنْ تضبطَ توقيت نظام الويندوز أو ضبط بعض الاعدادات الاقليمية .. فقط من خلال اليوزرفورم .. تفضّلْ سيّدي المحترم .. و جرّبْ فضلاً لا أمرًا ذلك بنفسك من خلال الملف رقم 1 المرفق أدناه .. و إذا كنتَ لستَ من هُواة اليوزرفورم و أردتَ القيام بذلك من خلال شيت الاكسل .. عليكَ فقط بتقسيمِ فَيْلق " الباشْمارْكة " من داخل اليوزرفورم إلى كتائب صغيرة من الموديلات و ربطها بأزرار أمر .. تمامًا مثلما هو موضّح بالملف رقم 2 المرفق أدناه .. فائق إحتراماتي عبد العزيز البسكري الملف 1.rar الملف 2.rar
    2 points
  4. السلام عليكم السطر التالي cel.SpecialCells(xlCellTypeConstants).ClearContents استبدله بهذا cel.Delete Shift:=xlUp
    2 points
  5. السّلام عليكم و رحمة الله و بركاته بسم الله الرّحمن الرّحيم وَمَنْ يَتَّقِ اللَّهَ يَجْعَلْ لَهُ مَخْرَجًا وَيَرْزُقْهُ مِنْ حَيْثُ لا يَحْتَسِبُ صدق الله العظيم بارك الله فيك أخي الغالي و أستاذي القدير "حسام " فعلاً الواحد المتعلّم منّا يجد أكثر من ضالّته مع سلسلة دروسك تصدّق بالله .. موضوع شاغلني أكثر من 10 أشهر ..بحثت هنا و هناك و هنالك ..حتّى فقدتُ الأمل في العثور على النتيجة و على المفهوم الصّحيح ..و بقي الموضوع " اللّغز" عالقًا بذهني .. و جاء الفرج أخيرًا بفضل الله ثم بفضلك أخي العزيز " الصّقر " ..من خلال سلسلة دروسك .. الحمد لله أوّلاً و أخيرًا هذا الموضوع العفريت الذي سكن دماغي هو .. عند رؤيتي لأحد ملفّات الأستاذ العلامة عبد الله باقشير ..أفتح اليوزرفورم من خلال محرّر الأكواد فلا أجد فيها شيء ..لا فريم و لا تاكسات بوكس ولا .. و لا .. أقوم بتشغيل الملف فتظهر لي حاجات و حاجات .. مرّة أخرى : الحمد لله أوّلا و أخيرا بارك الله فيك .. جزاك الله خيرًا و زادك من علمه و فضله فائق إحتراماتي و إعجاباتي
    2 points
  6. السّلام عليكم و رحمة الله و بركاته ألف شكر أستاذي القدير " ياسر العربي " على الرّوابط و العناوين الممتازة و المثمرة و المفيدة الدّال على الخير كفاعله .. و أنتَ جمعْتَهما الاثنين معًا .. تدلّ دومًا على فعل الخير و تعمله بارك الله فيك .. جزاك الله خيرًا و زادها بميزان حسناتك وددت مشاركتك بقائمة عناوينك المميّزة بإضافة ملفًا آخرًا بعدّة أسماء للمستخدمين .. كلمات المرور على التّوالي :111-222-333-444-555 فائق إحتراماتي و إعجاباتي أسماء عدة مستخدمين.rar
    2 points
  7. السلام عليكم ورحمة الله وبركاته إخوتي الكرام .أخي الصقر .أخي عبد العزيز اللذين أكن لهما كل محبة وتقدير لفتة كريمة من إخوة كرام ..عندما نشكر أستاذنا الجليل محمد طاهر عرفاناً منا بالجميل الذي قدمه ويقدمه وهذا التفاني في العطاء.. حيث جمع شمل الكثيرين من التواقين لخدمة الناس بما آتاهم الله من فضله من العلوم والآداب وخصوصاً في مجال البرمجيات ... فالحمد لله أولا وأخيرا ثم الشكر الجزيل له لأنه يبقي أثراً طويل المدى يستقطب الكفاءات. ولا أنسى بجزيل الشكر لمن سانده وساعده ووقف معه ولا يزال من الرواد الذين يبلّغون العلم النافع ليبلغوا بذلك شأنا عظيما في قلوب محبيهم وتتردد دروسهم وأفكارهم عبر الأفق والزمن للأجيال المتلاحقة ليصبح تراثا عظيما في هذا الوطن الكبير والسلام عليكم
    2 points
  8. بسم الله الرحمن الرحيم اليوم هنعرف ازاي نعمل صلاحيات للوصول لشيتات معينه داخل ملف الاكسيل ولكن اولا نقوم بمراجعه درس اعمل شاشة دخول برنامجك بنفسك وسيبك من التقليد http://www.officena.net/ib/topic/64832-اعمل-شاشة-دخول-برنامجك-بنفسك-وسيبك-من-التقليد/ بعد ما راجعنا الدرس السابق نبدأ من حيث انتهينا الأساسيات الشاشة الرئيسية الصفحات الأخرى وأخيرا صفحة معلومات الدخول والصلاحيات ودي أسماء الصفحات داخل الشيتات وبرمجيا نقوم بتصميم نفس الصفحات السابقة أظن سهلة العملية لحد دلوقتي حان دور الاكواد نبدأ بالاكواد السهلة في كل صفحة غير الرئيسية بها زر رجوع نضع الاكواد كالاتي صفحة ادخال البيانات في زر الرجوع Sub yasser1() index.Activate sheet1.Visible = xlSheetVeryHidden End Sub السطر الاول للرجوع للصفحة الرئيسية السطر الثاني لاخفاء صفحة ادخال البيانات وهي شيت1 وتكرر في الصفحات المتبقية صفحة الاستعلام Sub yasser2() index.Activate sheet2.Visible = xlSheetVeryHidden End Sub صفحة قاعدة البيانات Sub yasser3() index.Activate sheet3.Visible = xlSheetVeryHidden End Sub صفحة المستخدمون users Sub mohamed1() index.Select users.Visible = xlSheetVeryHidden End Sub وقبل ان نترك صفحة اليوزرز نضع هذه المعادلات =IF(J2="";"";VLOOKUP(J2;A2:E8;3;FALSE)) =IF(J2="";"";VLOOKUP(J2;A2:E8;4;FALSE)) =IF(J2="";"";VLOOKUP(J2;A2:E8;5;FALSE)) هذه الدوال تجلب بيانات المستخدم من جدول المستخدمين ومنها نقوم بالتحكم في صلاحياته الآن حان دور الصفحة الرئيسية نضع في اول زر وهو زر ادخال البيانات الكود التالي Sub aseel1() If users.Range("k2") = "yes" Then Application.ScreenUpdating = False sheet1.Visible = xlSheetVisible sheet1.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الثانية صفحة الاستعلام Sub aseel2() If users.Range("L2") = "yes" Then Application.ScreenUpdating = False sheet2.Visible = xlSheetVisible sheet2.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الثالثة صفحة قاعدة البيانات Sub aseel3() If users.Range("m2") = "yes" Then Application.ScreenUpdating = False sheet3.Visible = xlSheetVisible sheet3.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الرابعة صفحة صلاحيات اليوزرز وهنا سنغير الكود سنعطى لهذه الصفحة كلمة مرور خاصة غير باقي الصفحات Sub mohamed() Dim x x = InputBox("يرجى ادخال كلمة المرور.", "Password Required") If x = "123" Then users.Visible = xlSheetVisible users.Select Else MsgBox "كلمة المرور خطأ يرجى اعداة المحاولة" End If End Sub اكواد الصفحات تعتمد علي اول سطر يقوم بمقارنة الخلية الخاصة بالصفحة اذا كانت بها كلمة yes فيسمح بالدخول اما غير ذلك لا يمكن الدخول والجزء الثان من الكود يقوم باظهار الصفحة عند تحقق الشرط والذهاب اليها ينقصنا سطر صغير لاتمام الموضوع نسخ اسم المستخدم عند الدخول الى الخلية المحددة ليتم جلب بيانته عن طريق اسمه وتتم كالاتي يتم وضع الكود في حدث زر الدخول users.Range("j2") = ComboBox1.Value وبكدا يكون انتهى الدرس تقبلوا تحياتي ياسر العربي لو مكسلين تطبقوا احط ليكم مرفق وخلاص وادي مرفق الشرح PDF صلاحيات.rar
    2 points
  9. مهندس ياسر فتحى جزاك الله كل خير استاذ ياسر العربى منور الدنيا كله نجم النجوم معلمى استاذ ياسر خليل كدة الموضوع هبيقى زى السيلفى بس لعشاق الاكسل وكل واحد يكتب اسم واى حاجة عاوز بالدالة دى Book1.rar
    2 points
  10. برنامج الاكسيل: هو أحد البرامج الموفرة ضمن حزمة أوفيس وهو مخصص للعمليات الحسابية حيث انه عبارة عن أوراق افتراضية يمكن أضافة معادلات حسابية عليها ومن ثم إضافة الارقام حبت يقوم البرنامج بالعمليات الحسابية بشكل آلي وفي نفس الوقت يمكن ان تستخدم لتخزين البيانات إليكترونية حيث يمكن الاحتفاظ بها أو طبعها على اوراق. وهو البرنامج الأشهر في العالم وذلك لقدرته على انجاز العمليات المستحيلة بواسطة الصيغ والتي لا توجد في اغلب برامج الانتشار او صفحات العمل الأخرى. ومن وجهة نظري الشخصية ان الصيغ تشكل مالا يقل عن 75% من إمكانيات الاكسيل. لا تزيد نسبة مستخدمي الصيغ بشكل احترافي عن 10% فقط ولذلك ندعوك للانضمام الى هذه النخبة فهل تستعد لذلك؟ . مر الاكسيل بالعديد من التحديثات والتطوير على مر السنين في العناصر وفى الشكل العام له . ولكن ماذا كان يتم العمل قبل ظهور الاكسيل وماذا حدث بعد ذلك . قبل ظهور الاكسيل كان الناس يقضون ساعات طويله جدا في حساب وتجميع كشف حساب على الاله الحاسبة ولكن مع استخدام الاكسيل فان الأمور اصبح يستغرق دقائق او ربما ثواني معدودة . في نهاية السبعينات ظهر برنامج VISI CALAC ثم جاء برنامج LOTS (1.2.3) في الثمانينات ثم دخلت ميكروسوفت في 1982 ببرنامج MULTIPALNE وأخيرا وصل ما يسمى بالاكسيل وكانت النسخة الأولى عام 1987 وحتى وصل الى الإصدار الحالي 2013 وهو الإصدار رقم 12 لشركة وكانت الإصدارات كالتالي ( EXCEL 2 EXCEL3 EXCEL4 EXCEL5 EXCEL95 EXCEL97 EXCEL2000 EXCEL2002 EXCEL2007 EXCEL2003 EXCEL2010 EXCEL2013 EXCEL2016 ) وننوه انه تم اصدار النسخة التجريبي 2016 في يوليو 2015 . بالرغم من ذلك قد تجد تسميات ميكروسوفت مختلفة ومربكة فتجد انها تسمى 2007 الإصدار رقم 12 و 2010 الإصدار رقم 14 و 2013 رقم 15 و 2016رقم 16 وهكذا............ المصدر https://en.wikipedia.org/wiki/Microsoft_Excel#Early_history
    2 points
  11. أخي الكريم أبو يوسف لم يتم الرد للآن وتأكيد الطلب (ورغم أنني من أنصار عدم تقديم المساعدة إلا إذا توافر الشرح الكافي للطلب بالتفصيل ولكن ما باليد حيلة) سأقوم بطرح ما قام به أخونا الحبيب مختار عن طريق الأكواد بعيداً عن معادلات الصفيف .. الآن تم دمج الطلبات بشكل مبدئي ..الجزء الأول تحدد الملفات المراد تجميعها ثم يتم تجميعها كل ملف أو مصنف في ورقة عمل ، ثم الجزء الثاني يتم استخراج مكاتب التربية الغير مكررة في العمود M وفي العمود المقابل له عدد هذه المكاتب ... إذا كان للطلب بقية فأفضل أن يكون في كود منفصل .. حتى لا نتوه بين أسطر الأكواد .. إليك الكود بالشكل النهائي له Sub CollectDataFromMultipleWorkbooks() Dim OpenFiles Dim crntfile As Workbook Set crntfile = Application.ActiveWorkbook Dim X As Integer Dim SH As Worksheet Dim Arr, Temp, I As Long, J As Long, P As Long Dim Rng As Range, ColFound Dim Data As Variant Dim Obj As Object On Error GoTo ErrHandler Application.ScreenUpdating = False OpenFiles = Application.GetOpenFilename(FileFilter:="Microsoft Excel Files (*.csv;*.xlsx;.xlsm),*.csv;*.xlsx;*.xlsm", MultiSelect:=True, Title:="Select Excel File To Merge!") If TypeName(OpenFiles) = "Boolean" Then MsgBox "You Need To Select At Least One File" GoTo ExitHandler End If X = 1 While X <= UBound(OpenFiles) Workbooks.Open Filename:=OpenFiles(X) Sheets().Move After:=crntfile.Sheets(crntfile.Sheets.Count) X = X + 1 Wend For Each SH In ThisWorkbook.Sheets With SH If .Name <> "Master" Then Arr = .Range("A1").CurrentRegion.Value For I = 1 To UBound(Arr) Temp = Split(Arr(I, 1), ";") For J = 1 To UBound(Temp) .Cells(I, J) = Temp(J) Next J Next I .Range("A1").CurrentRegion.Columns.EntireColumn.AutoFit ColFound = Application.Match("*مكتب التربية*", .Rows(1), 0) If IsNumeric(ColFound) Then With .Columns("M:N") .ClearContents .Borders.LineStyle = xlNone .Interior.Color = xlNone End With .Range("M2:N2") = Array("مكتب التربية", "العدد") Set Rng = .Range(.Cells(2, ColFound), .Cells(.Cells(Rows.Count, ColFound).End(xlUp).Row, ColFound)) Set Obj = CreateObject("scripting.dictionary") Data = Rng For P = 1 To UBound(Data) Obj(Data(P, 1) & "") = "" Next .Range("M3:M1000").ClearContents .Range("M3").Resize(Obj.Count, 1) = Application.Transpose(Obj.keys) With .Range("N3:N" & .Cells(Rows.Count, "M").End(xlUp).Row) .Formula = "=COUNTIF(" & Rng.Address & ",M3)" .Value = .Value End With With .Range("M2").CurrentRegion .Range("A1:B1").Interior.Color = vbYellow .Borders.Weight = xlThin .BorderAround Weight:=xlThick .Columns.AutoFit End With End If End If End With Next SH ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub تقبل تحياتي Collect Data From Multiple CSV Workbooks Mokhtar V2.rar
    2 points
  12. السلام عليكم ورحمة الله وبركاته أستاذ جديد ودرس مفيد ...نكن كل احترامنا وتقديرنا لأساتذتنا الذين ينقبون عن النفائس من أمهات الكتب يبحثون بين السطور ليغرسوها في الصدور نبتات رائعة الجمال يسقونها بمداد المحبة التي تغشى القلوب .. أخي الحبيب الصقر برعت وواظبت ببرنامج شرح الفورم .. جزاك الله خيرا أخي الحبيب ياسر برعت كذلك بشرح صلاحيات الدخول وسندخل معك في رحاب دروسك وأنت مضياف ....ماذا بعد الدخول؟ بمعنى ننتظر دروسا أخرى هامة فوطن نفسك على العطاء . لا تؤاخذني على خطأي لأنه ليس على المريض حرج تقبل تحياتي والسلام عليكم.
    2 points
  13. اخى الحبيب والغالى ياسر والله موضوع Pdf ده بقى مهمة اللى لازمه الشرح انا والله ماعندى نسخه من الشرح انا بشرح مباشرة على الموقع فى مره النور قطع بدون حفظ ورجعت عملت اعاده للشرح مره اخرة كله والله وعلى قلبى زى العسل لان اللى عايز يعمل شئ وعند اصرار هيعمله وانا عايز اقدم شئ واللى عايز يتعلم هيعرف ازاى يحتفظ بالدرس ويستفيد منه دا لو كان لازمه لكن اوعدك ان شاء الله بعد الانتهاء من الشروحات نعمله كتاب الكترونى بأذن الله وطبعا ده مش هيكون لوحدى هيكون بهمتكم معانا تقبل تحياتى
    2 points
  14. السلام عليكم ورحمة الله وبركاته اخواني الاعزاء هنا ملف كامل لكيفية استخدام الUserForm وكيفية التعامل معه وبجميع أدواته المستخدمة مع شرح الخصائص المتعلقة به وبادواته كذلك تم شرح الاكواد الخاصة به وبادواته وتم استخدام الصور والامثلة العملية في الشرح وبصورة ميسرة وبسيطة حتى يتم استيعابها بالصورة المطلوبة وتم تقسيم العمل الى ستة ملفات وبصورة تسلسلية اخوكم عماد الحسامي الدرس الأول UserForm.rar الدرس الثاني.rar الدرس الثالث textbox.rar الدرس الرابع.rar الدرس الخامس.rar الدرس السادس.rar الدروس السته مجمعه.zip
    1 point
  15.  خواطر إكسيلية أساتذتي الكرام إخوتي الأحبة السلام عليكم ورحمة الله وبركاته: بدا لي أن أكتب موضوعاً لا يقف حكراً على أحد – بل بإمكان كلٍّ منا أن يجود بما يخطر له من مواضيع الإكسيل التي يريد أن يفيد بها - وهنا أنطلق من كلمة إكسل التي تعني البراعة أو كما يحلو لنا أن نسميها في بلدي المكلوم "برنامج الجداول الإلكترونية" : ولذلك فإنني سأنطلق من خاطرة أولى تتحدث عن بعض اختصارات برنامج الإكسيل التي نصادفها بشكل يومي كما يلي: اختصارات لوحة المفاتيح في الإكسيل: إظهار(عرض) الصيغ في الخلايا بدلاً من نتائجها المحتسبة CTRL + ~ سابقة أثر(الخلايا التي أثرت في قيمة الخلية الحالية CTRL + [ تاريخ اليوم CTRL+ ; اختيار(تحديد كل) الجدول الحالي CTRL+ * الوقت الحالي CTRL+SHIFT+ ; نسخ من الخلية المجاورة بالأعلى CTRL+ ' هذا ما استطعت عرضه في عجالة من أمري وسيتبع إن شاء الله تعالى بمواضيع أخرى والسلام عليكم خواطر إكسيلية.rar
    1 point
  16. رجاء خاص من الاخوة الكرام يرجى عدم اضافه اى رد على الموضوع لحين الانتهاء من كل الشروحات والسبب فى ذالك والله ما هو غير ان يكون الحلقات كلها متسلسله ورا بعض حتى يسهل لمن يريد المتابعه ان يستفيد منها ويرجى الاكتفاء بالاعجاب فقط أما ان وجد ملاحظة او خطا ما او احد يريد استفسار عن شئ ما بيكتبها بموضوع مستقل وانها ساقوم بالرد عليه تقبلوا منى وافر الاحترام والتقدير ************************************************************************************************************* بسم الله الرحمن الرحيم الاخوه الكرام بعد فترة انقطاع عن تقديم سلسلة علمنى كيف اصطاد بسبب الانشغال من الانتهاء ببرنامج EMA بشكله الجديد وبعد ان انتهيت منه بحمد لله أقدم لكم اليوم بمشيئة الله شروحات عن الفورم Form من البدايه حتى الاحتراف بأذن الله الدرس الاول 1- الدخول الى محرر الاكواد ( Visual Basic ) بالضغط على Alt+ f11 سيظهر معك الصوره التاليه 2- لو نظرنا الى الصوره السابقه سنجد كلمة Insert عليها دائره حمرا قم بالضغط على كلمة Insert ستظهر لك الصوره التاليه 3 - اضغط على UserForm كما هو مبين بالصوره اعلاه سيظهر لك الصوره التاليه 4- فى الصوره السابقه لو نظرنا لها سنجد شريط الادوات كما هو موضح بالصوره التاليه 5-صندوق ادوات التحكم ToolBox كما هو موضح بالصوره التاليه كما هو موضح بالصوره عاليه سوف نكتب نبذه صغيره عن كل عنصر من عناصر التحكم (طبعا الكلام هيكون نظرى وانا شخصيا لا اقتنع بالنظرى ) ولكن هى مجرد نبذه صغيره وبعد ذالك سوف نقوم بسرد كل عنصر فى درس مخصص بشرح وافى وكافى وبالصور والامثله العملية والتطبيقيه بأذن الله تعالى اولا :- المؤشر ( Pointer ) *** استعمال هذة الاداة ليتيح لك الانتقال الى مود الاختيار ما بين عناصر التحكم الموجودة على الفورم لتحريكها او التحكم فى حجمها .. هناك بعض اصدارات من الاكسيل عندما تختار ان تضيف زر مثلا ... يبقى المؤشر على الفورم فى وضع الاضافة/ فكلما ضغطت على الفورم بعد ذلك يضيف زر جديد وهكذا .... والحل عندها الضغط على المؤشر للهروب من هذة الدائرة المفرغة ( المرجع الاستاذ /اسامه البراوى ) ثانيا :- العنوان ( Lable ) *** هى أداه تستخدم لكتابه عنوان ثالثا :- صندوق النص ( Text Box ) *** وهى اداه تسمح للمستخدم بكتابة نص او رقم أو اى شئ بداخلها رابعا:- أداة السرد والحوار ( ComboBox) *** وهى أداه يمكن اضافة لها قائمة محدد يسمح للمستخدم الاختيار منها وهى مثل القائمة المنسدله بالاكسيل خامسا :- صندوق القوائم ( ListBox ) *** وهى اداه تشبه وعاء يحتوى على بيانات يمكن اضافه هذا المحتوى من Text Box او ComboBox ثم ترحيل هذا المحتوى الى شيت الاكسيل أو رفع محتوى من شيت الاكسيل وعرضه بـ ListBox سادسا :- صندوق الفحص (Check Box) *** تستخدم لعمل عدة صناديق فحص واختيار واحد او اكثر منهما سابعا:- زر الاختيار (Option Box ) *** تستخدم هذه الاداه فى عرض عدة بدائل امام المستخدم لاختيار احدهما فقط ثامنا:- زر التبديل (Toggle Button) *** هى اداه تشبه المفتاح الكهربائى له خيارين أما on أو Off ولكن بالاكسيل هذه الاداه لها خيارين أما true وأما false تاسعا:-الاطار (Frame) *** ويستخدم لعمل اطار لمجموعه عناصر عاشرا:- زر الامر (Command Button) *** هو زر يتم من خلال تنفيذ الكثير من الاكواد او التعليمات البرمجيه احدى عشر :- شريط التبويب ( Tab Strip) *** تتيح للمستخدم من عرض ادواته على شكل صفحات عرض اثنى عشر :- شريط الصفحات (Multi Page)*** تتيح للمستخدم من عرض ادواته على شكل صفحات عرض ثلاثة عشر :- شريط الانزلاق (Scroll Bar) *** هى اداه لها شكلان شكل عمودى واخر افقى وهى تشبه بحد كبير الاداه Spin Button اربعة عشر :- زر التدوير ( Spin Button) *** هى اداه تستخدم لزياده قيمة معينه او نقصانها ويتم تحديد قيمة عليا وقيمة سلفه ومقدار هذه القيم خامس عشر :- صوره( Image) *** وهى اداه تتيح للمستخدم من ادراج صوره بداخلها وان شاء الله كما قلت سوف نقوم بشرح كل جزء بدرس خاص **************************************************************************************************** 5- خصائص الفورم ( Properties Window) انظر للصوره التاليه هل يمكن اضافة ادوات تحكم جديدة ؟ نعم بالضغط على الزر الايمن فى اى مكان فاضى او مليان فى التول بوكس سيظهر لك Additional Controls كما هو مبين بالصوره التاليه وعند الضغط على Additional Controls ستجد الصوره التاليه فى الصوره السابقه ستجد على اليسار فى الاسفل Show وتحتها مربع به علامه صح لو قمت بحذف علامة صح من المربع ستجد القائمة على اليمين ظاهر بها كل عناصر التحكم انظر للصور التاليه بعد االه علامه الصح فى الصوره السابقه خامس خيار ضع علامه صح Calendar Control 12.0 ثم اضغط اوك ستجد ان عنصر التحكم Calendar Control 12.0 موجود بصندوق عناصر التحكم كم هو موضح بالصوره فى الصوره السابقه لو نظرت الى صندوق التحكم ستجد ان عنصر Calendar Control 12.0 ظاهر كما هو موضح بالدائره الحمراء الصغيره اضغط على هذه الايقونه ثم اذهب الى الفورم وقم بالرسم التقويم ستجده كما هو محاط بالدائره الاحمراء الكبيره فى الصوره السابقه وبكدا يبقى عرفنا ازاى نضيف عنصر تحكم جديد الى صندوق التحكم والى لقاء اخر بأذن الله فى سلسه علمنى كيف اصطاد تقبلوا تحياتى ************************************************************** اليوم بمشيئة الله هنتكلم عن اول عنصر تحكم وهو اللـ Label هنتناول الموضوع على ثلاث مراحل 1-كيفية انشاء وتصميم الـ Label على الفورم 2-كيفية التعامل والتحكم بخصائص الـ Label من شاشة الخصائص فى مرحلة التصميم 3- كيفية التعامل والتحكم بخصائص الـ Label من شاشة الخصائص فى لغة البرمجه وكتابة الاكواد أولاً :- كيفية انشاء وتصميم الـ Label على الفورم بختصار شديد شاهد الصوره والتبع الخطوات اضغط على العلامه A الموجوده فى التول بوكس واذهب بالماوس الى الفورم وقم برسم الـ Label بالابعاد التى تريدها من عرض وارتفاع 2-كيفية التعامل والتحكم بخصائص الـ Label من شاشة الخصائص فى مرحلة التصميم لو نظرنا للصورة السابقه ستجد خصائص الفورم هى رقم 3 على يسار الصورة فعند تحديد الـ Label بالماوس ( يعنى الوقوف عليه وتحديده ) ستجد خصائصه على اليسار كما هو بالصوره عاليه على اليسار وهذه هى الخصائص اللى هنقوم بشرحها اليوم انا رقمت كل الخصائص كما هو مبين بالصوره و هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل 1-الخاصيه ( Name) :- Name هو اسم الـ Label المستخدم فى الاكواد عند انشاء اى Label يقوم الفيجوال بيسك بأعطاء اسم افتراضى له Label 1 اذا قمنا بعمل Label ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى Label 2 وانا افضل عدم تغيير اسماء Label الافتراضيه التى عرفها الفيجوال بيسك فعندما نريد كتابه كود خاص بالعنصر Label 1 فى حدث Click على سبيل المثال يكون بداية الكود كالتالى Private Sub Label1_Click() فأذا قمنا بتغيير اسم Label 1 كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name وليكن مثلا غيرناه الى (Nomber ) فهنا عند كتابة كود فى حدث Click يكون كالتالى Private Sub Nomber_Click() ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error لذالك انصح باستخدام الاسماء الافتراضيه للعناصر كما عرفها الفيجوال بيسك ************************************************************************************************************ 3 - الخاصيه Auto size :- هى خاصيه تحمل خيارين true و False عن اختيارك true فأن عرض الـ Label سوف يكون تلقائى حسب محتوى النص بداخله وعند اختيارك False فأنه يتم توقف خاصيه عمل عرض تلقائى حسب طول النص للـ Label وبالتالى لابد من تحديد العرض اثناء التصميم او من خلال البرمجه كما سنرى لاحقا *********************************************************************************************************** 4- الخاصيه ( Back Color):- هذه الخاصيه تتيح للمستخدم تغيير لون خلفية للـ Label على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك أنظر الصوره التاليه 5- الخاصيه ( Back Style):- هذه الخاصيه تحمل خيارين هما Fm Back Style Opague - 0 ( عند الاختيار سيتوقف عمل الخاصيه Back Color حتى ولو كان تم اختيار لون بها وليكن خلفية حمراء سيظهر الـ Label بخلفية ساده ) Fm Back Style TransParent - 1 ( عند الاختيار سيتم عمل الخاصيه Back Color وهيكون الـ Label بخلفية حسب الاختيارك من Back Color ) لذالك هذه الخاصيه مرتبطه بالخاصيه Back Color ************************************************************************************************************************** 6- الخاصيه ( Border Color):- هذه الخاصيه تتيح للمستخدم تغيير لون حدود اللـ Label على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك 7- الخاصيه ( Border Style):- هذه الخاصيه تحمل خيارين هما Fm BorderStyle none - 0 ( عند الاختيار سيتوقف عمل الخاصيه Border Color حتى ولو كان تم اختيار لون بها وليكن لون حد أحمر سيظهر الـ Label بلون حد ساده ) Fm BorderStyle Single - 1 ( عند الاختيار سيتم عمل الخاصيه Border Color وهيكون حدود الـ Label بخلفية حسب الاختيارك من Border Color) لذالك هذه الخاصيه مرتبطه بالخاصيه Border Color مثال لو اختارنا لون خلفيه للـ Label لون رمادى ولون حدود احمر شاهد الصورة ولاحظ ان الخاصيه Back Color اختيارها 1 وايضا الخاصيه Border Color اختيارها 1 شاهد الصوره ******************************************************************************************************************************************** 8- الخاصيه ( Caption):- هذه الخاصيه تتيح للمستخدم كتابة نص او رقم او اى شئ ليكون هو عنوان الـ Label الظاهر على الفورم وهى من اهم الخصائص على الاطلاق ان لم يكن الوحيده لان الليبل ما هو الا عنوان لعنصر على الفورم والخاصيه Caption هى التى يكتب بها العنوان المراد مثال لو كتبنا بسم الله الرحمن الرحيم ستجد اللـ Label على الفورم عنوانه " بسم الله الرحمن الرحيم شاهد الصوره ******************************************************************************************************************** 9- الخاصيه ( Control Tip Text ):- هذه الخاصيه عند كتابة اى شئ بداخلها فأنها تعرض النص كتلميح عند وقوف الماوس على الـ Label ****************************************************************************************************** 11- الخاصيه ( Font ):- وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل اللـ Label الافتراضى فى الفيجوال بيسك نوع الخط هو ( Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8) يوجد على يسار الخاصيه مربع صغير به ثلاث نقاط عند الضغط عليه ستجد شاشة الFont كما هو بالصوره عاليه اختر منها نوع وسماكة وحجم الخط للنص ثم اضغط اوك ************************************************************************************************ 12- الخاصيه ( Fore Color ):- وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ Label مثال لو اخترنا لون الاخط اصفر شاهد الصورة ************************************************************************************************************ 13- الخاصيه ( Height ) وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ Label فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ Label أو كتابة رقم للارتفاع فى الخاصيه Height **************************************************************************************************************************** 15- الخاصيه (Left) :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ Label عن الضلع الايسر للفورم 25-الخاصيه (Top) :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ Label عن الضلع الاعلى للفورم مثال لو وضعنا قيمة Left 150 *** وقيمة Top 100 ستجد الصوره التالية ************************************************************************************************************************************************* 27-الخاصيه ( Width) هذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ Label كما يمكن ايضا التحكم فى عرض الـ Label من خلال التصميم على الفورم بالماوس ************************************************************************************************* 24-الخاصيه (Text Align) :- وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه النص ( محاذاه النص ) داخل الـ Label هل يكون يميناً أو يساراً أو وسط Label لو ذهبت للخصائص وعند الخاصيه Text Align ستجد سهم اضغط عليه ستجد 3 خيارات امامك وهى fm Text Align Left -1 عند الاختيار ستجد ان اتجاه النص داخل Label يبداء من اليسار fm Text Align Center -2 عند الاختيار ستجد ان اتجاه النص داخل Label فى المنتصف fm Text Align Right -3 عند الاختيار ستجد ان اتجاه النص داخل Label يبداء من اليمين مثال عند اختيار رقم 2 شاهد الصورة ************************************************************************************************************************** 26-الخاصيه (Visible ) وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور Label عند عرض الفورم وعند الضغط على السهم المجاور لها ستجد لها خيارين True و False عندد اختيار True سوف يظهر الـ Label على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) وعند اختيار False ٍسوف يختفى الـ Label على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم *********************************************************************************************************** 20- الخاصيه ( ٍِSpecial Effect ) هذه الخاصيه من الخصائص الهامه للـ Label وهى تعطى اشكال مبهره ومميزه للـ Label ولها خمس اشكال شاهد الصوره التاليه *********************************************************************************************************** 3- كيفية التعامل والتحكم بخصائص الـ Label من شاشة الخصائص فى لغة البرمجه وكتابة الاكواد هنجرب بمثال عملى لكيفية التحكم بخصائص اللـ Label فى لغة البرمجه وهنوضع هذه الاكواد فى حدث فتح الفورم اضغط دبل كليك على الفورم وهنعمل كود فى حدث فتح الفورم اتبع الصوره التالية فبعد تنفيذ الخطوات كما هو موضح بالصوره السابقه ستجد التالى شاهد الصوره فى الصوره السابقه المربع الاحمر هو مكان كتابه الاكواد أول شئ عايزين نجعل Label Back color لونه اصفر هنكتب التالى label1.b مجرد كتابة ليبل 1 وبعدها نقطه ( تكتب من خلال جعل لغه الكيبورد انجليزى ثم الضغط على حرف ز ) ستظهر لك قائمة عند كتابة حرف B سوف يتم فلترة القائمه طبقا للحرف المكتوب شاهد الصوره ثم نقوم باختيار BackColor Label1.BackColor = 65535 كتبنا اسم الـ Label1 وبعدها (.) ثم اسم الخاصيه ثم (=) ثم النتيجة المطلوبه 255 تشير الى جعل خلفية الـLabel لونه اصفر اليك صوره بارقام الالوان فى الفيجوال بيسك ------------------------------------------------------------------------------------------------------------------------------------------------------ ولو عايزين نعمل نص للـ Label هيكون كالتالى Label1.Caption = "بسم الله الرحمن الرحيم" لو لاحظنا جعلنا النص بين علامتى تنصيص وتكتب من خلال (shift+حرف ط ) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولو حابين نحدد حجم الخط هيكون كالتالى Label1.Font = 20 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولوحابين نحدد سماكة الخط هيكون كالتالى بعد يساوى ستجد خيارين أما True أو False على سبيل المثال هنختار True لجعل سماكه الخط ثخين Label1.Font.Bold = True ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولو حابين نجعل تاثر للـLabel بشكل خاص ممكن كالتالى Label1.SpecialEffect = fmSpecialEffectRaised ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولو حابين نخلى النص داخل اللـLabel فى المنتصف كالتالى (تحديد محازاة النص داخل الـ Label ) Label1.TextAlign = fmTextAlignCenter ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولتحديد ارتفاع الـlabel كالتالى Label1.Height = 50 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ولو حابين نحدد عرض الـ label كالتالى Label1.Width = 150 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- هذا هو الكود بشكله النهائى Private Sub UserForm_Initialize() Label1.BackColor = 65535 Label1.Caption = "بسم الله الرحمن الرحيم" Label1.Font = 20 Label1.Font.Bold = True Label1.SpecialEffect = fmSpecialEffectRaised Label1.TextAlign = fmTextAlignCenter Label1.Height = 50 Label1.Width = 150 End Sub اضغط Run أو اضغط F5 شاهد الفورم وشوف الـ label ازاى شكله ستجده كالتالى هل يوجد طريقه اخرى لكتابه الكود بشكل ابسط نعم يوجد طريقه اخرى من خلال استخدام With شاهد الكود كالتالى Private Sub UserForm_Initialize() With Label1 .BackColor = 65535 .Caption = "بسم الله الرحمن الرحيم" .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised .TextAlign = fmTextAlignCenter .Height = 50 .Width = 150 End With End Sub هنا استخدمنا with وطبعا لازم نقفل with ب End with ثم تكتب ( . ) وبعدها اسم الخاصيه ثم (=) جرب بنفسك وحاول اكتب الكود واى استفسار انا تحت امرك والى لقاء اخر مع درس جديد من دروس علمنى كيف اصطاد ( TextBox) انتظرونا تقبلوا تحياتى ********************************************* بسم الله الرحمن الرحيم الاخوه الكرام اليوم موعدنا بمشئية الله عن شرح TextBox كما قلنا من قبل ان TextBox هو صندوق ادخال يتم ادخال فيه نص او رقم من المستخدم اثناء العمل على الفورم أن شاء الله هيتم تناول الموضوع على اربع مراحل 1- كيفية انشاء TextBox على الفورم اثناء عملية التصميم 2- التعرف على خصائص الفورم من شاشة الخصائص اثناء عملية التصميم 3-وقت تنفيذ الكود الخاص بالـ TextBox 4-التعامل مع الـ TextBox فى لغة البرمجه 5-كيفية عمل تنسيقات للقيم المدخله نبدأ بسم الله أولا :- كيفية انشاء TextBox على الفورم اثناء عملية التصميم من صندوق التحكم أضغط على الايقونه المشار لها بحرف ِabl ثم اذهب الى الفورم وقم برسم TextBoxعلى الفورم بالابعاد اللى المناسبه لك من عرض وارتفاع شاهد الصوره التاليه توضح لك الامر فى الصوره السابقه يوجد Label1 و textBox1 هذه هى العناصر اللى موجوده على الفورم لو حابين نعمل Label و textBox ممكن يكون من خلال الطريقه السابقه وهى اضغط على العنصر المراد اضافته الى الفورم من صندوق التحكم ثم قم برسمه على الفورم وممكن من خلال الوقوف على العنصر يعنى تحديده ثم كليك يمين ستظهر قائمه اختر منها Copy دلوقتى انا عايز اعمل Label و textBox قم بتحديد Label1 واضغط على زر Ctrl من الكيبورد واستمر بالضغط عليه ثم بالماوس حدد textBox1 ثم اضغط كليك يمين بالماوس ستظهر قائمه اختر Copy ثم اذهب الى اى مكان فاضى فى الفورم واعمل كليك يمين واختر Paste او من خلال الكيبورد الضغط على زر Ctrl +زر حرف V ستجد انه تم انشاء Label2 و textBox2 وطبعا هيكون بنفس تنسيق خصائص Label1 و textBox1 شاهد الصوره --------------------------------------------------------------------------------------------------------------------------------------------- ثانياً :- التعرف على خصائص الـ TextBox من شاشة الخصائص اثناء عملية التصميم شاهد الصوره التالية لخصائص الـ TextBox هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل الخاصيه (Name) :- Name هو اسم الـ TextBox المستخدم فى الاكواد وعند انشاء اى TextBox يقوم الفيجوال بيسك بأعطاء اسم افتراضى له TextBox1 واذا قمنا بعمل TextBox ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى TextBox2 وانا افضل عدم تغيير اسماء TextBox الافتراضيه التى عرفها الفيجوال بيسك فعندما نريد كتابه كود خاص بالعنصر TextBox1 فى حدث Change على سبيل المثال يكون بداية الكود كالتالى Private Sub TextBox1_Change() فأذا قمنا بتغيير اسم TextBox1 كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name وليكن مثلا غيرناه الى (Nomber ) فهنا عند كتابة كود فى حدث Change يكون كالتالى Private Sub Nomber_Change() ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error ------------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Back Color) هذه الخاصيه تتيح للمستخدم تغيير لون خلفية TextBox1 على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك أنظر الصوره التاليه --------------------------------------------------------------------------------------------------------------------------------------------- الخاصيه ( Control Source) وهذه الخاصيه تتيح للمستخدم تحديد خلية محدده تظهر محتواها فى TextBox1 عند عرض الفورم والعكس صحيح بمعنى ان اى ادخال فى TextBox1 يظهر مباشره فى الخليه التى قمت بكتابتها فى الخاصيه Control Source فعلى سبيل المثال لو كتبنا ان Control Source هو محتوى الخليه A1 فعند عرض الفورم ستجد ان محتوى الخليه ظاهر فى الـ TextBox1 ولو قمت بتعديل المحتوى الموجود فى TextBox1 وضغط انتر سوف يتغير مباشره فى الخليه A1 الخلاصه انه يجعل خلية محدده مربوطه بالـ TextBox1 شاهد الصوره --------------------------------------------------------------------------------------------------------------------------------------- الخاصيه ( Enabled ) هذه الخاصيه تحمل خيارين true و False عند اختيار true سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 وعند اختيار False لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 شاهد الصوره عند اختيار False ---------------------------------------------------------------------------------------------------------------------------------------- الخاصيه (Font) :- وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل الـ TextBox1 الافتراضى فى الفيجوال بيسك نوع الخط هو ( Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8) الخاصيه (Font Color) :- وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ TextBox1 مثال عند اختيار نوع الخط (Traditional Arabic) والسماكه ( Bold ) وحجم الخط (18) شاهد الصوره ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Height ) وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ TextBox1 فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ TextBox1 أو كتابة رقم للارتفاع فى الخاصيه Height ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Width) هذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ TextBox1 كما يمكن ايضا التحكم فى عرض الـ TextBox1 من خلال التصميم على الفورم بالماوس ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه (Left) :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ TextBox1 عن الضلع الايسر للفورم الخاصيه (Top) :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ TextBox1 عن الضلع الاعلى للفورم مثال لو وضعنا قيمة Left 126 *** وقيمة Top 90 ستجد الصوره التالية ----------------------------------------------------------------------------------------------------------------------------------------------- الخاصيه ( Locked ) هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 وعند اختيار True لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 يعنى هيكون فى حمايه على TextBox1 ---------------------------------------------------------------------------------------------------------------------------------------- الخاصيه ( Maxlenght ) هذه الخاصيه يمكن من خلالها التحكم فى عدد الاحرف او الارقام المدخله بالـ TextBox1 لو حضرتك عايز تجبر المستخدم على ادخال وليكن عدد 8 أحرف فقط اكتب فى خاصيه Maxlenght رقم 8 فلو حب المستخدم يكتب ( محمد خالد ) فأنه لا يستطيع الا كتابة (محمد خال) لماذا لانه تم تحديد عدد الادخال 8 فقط واحد هيقولى محمد خالد عددها 8 حروف هقوله ان الفيجول هيقوم بعد الفاصله اللى بين محمد وبين خالد وبالتالى (محمد 4 حروف + 1 فاصله + خال 3 حروف كدا =8) شاهد الصوره ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Multiline ) هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1 على سطر واحد فقط وعند اختيار True سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1 على عدة اسطر ويجب مراعاة تعديل ارتفاع TextBox1 ليظهر اكثر من سطر شاهد الصوره ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( Password char ) هذه الخاصيه يمكن من خلالها التحكم فى طريقة أظهار القيم المدخله بالـ TextBox1 لو حضرتك عايز تجعل القيم المدخله فى TextBox1 على شكل ( * ) مثلا شاهد الصوره التالية ------------------------------------------------------------------------------------------------------------------------------------------ الخاصيه ( ScrollBars ) هذه الخاصيه تحمل اربع خيارات ويبدأ العدد من 0 الى 3 0- FMScrollBarsNone ( هذا يعنى الغاء خاصيه ScrollBars ) 1-FMScrollBarsHorizontal ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل أوفقى ) 2-FMScrollBarsVertical ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل رأسى ) 3-FMScrollBarsBoth ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل أفقى و رأسى مع بعض ) *** الاختيار رقم 1 وهو عمل ScrollBars للـ TextBox1 بشكل أوفقى لابد من جعل خاصيه Multiline تكون False يعنى يكون الكتابه على سطر واحد وبكدا يعمل سكرول بار افقى للوصول الى اخر السطر **** الاختيار رقم 2 وهو عمل ScrollBars للـ TextBox1 بشكل رأسى لابد من جعل خاصيه Multiline تكون True يعنى يكون الكتابه على عدة أسطر وبكدا يعمل سكرول بار رأسى للوصول الى اخر السطر **** الاختيار رقم 3 وهو عمل ScrollBars للـ TextBox1 بشكل رأسى واخر افقى بصراحه حاولت استخدمه لكن لم يظهر معى بشكل افقى وراسى وتفسير ذالك هى الخاصيه Multiline لانها تحمل خيارين اما الادخال يكون على سطر واحد وبالتالى فان الاسكرول بار الرأسى لا يوجد له فائده وأما الادخال على عدة اسطر متتاليه وبالتالى ان الاسكرول بار الافقى لي له فائده هذا والله اعلم ( مش عايز افتى فى شئ لا اعلمه واترك الامر للخبراء ) شاهد الصوره -------------------------------------------------------------------------------------------------------------------------- الخاصيه (Visible ) وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور TextBox1 عند عرض الفورم وعند الضغط على السهم المجاور لها ستجد لها خيارين True و False عندد اختيار True سوف يظهر الـ TextBox1 على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) وعند اختيار False ٍسوف يختفى الـ TextBox1 على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم -------------------------------------------------------------------------------------------------------------------------- الخاصيه (Tab index ) وهذه الخاصيه تتيح للمستخدم ترتيب التنقل بين الازرار على الفورم بعد الخروج منها من خلال الزر انتر ويمكن تعطيل هذه الخاصيه من خلال استخدام الخاصيه Tab stop = True الخاصيه (Tab Stop ) وهذه الخاصيه تحمل خيارين True و False عندد اختيار True يتم تعطيل خاصيه Tab index وعند اختيار False ٍسوف تفعل خاصيه Tab index للتنقل بين الازرار حسب الترتيب الذى ترغب فيه ------------------------------------------------------------------------------------------------ الخاصيه (Text Align) :- وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه بداية النص داخل الـ TextBox1 هل يكون يميناً أو يساراً أو وسط TextBox1 لو ذهبت للخصائص وعند الخاصيه Text Align ستجد سهم اضغط عليه ستجد 3 خيارات امامك وهى fm Text Align Left -1 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 يبداء من اليسار fm Text Align Center -2 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 فى المنتصف fm Text Align Right -3 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 يبداء من اليمين ------------------------------------------------------------------------------------------------------------------------- رقم 20 الخاصيه ( ٍِSpecial Effect ) هذه الخاصيه من الخصائص الهامه للـ TextBox1 وهى تعطى اشكال مبهره ومميزه للـ TextBox1 ولها خمس اشكال شاهد الصوره التاليه كما تشاهدون فى الصوره على اليسار دائره حمرا وبداخلها سهم يمكنك الضغط على السهم سيظهر لك قائمة الخيارات للاشكال اخترمنها الشكل المناسب لك جرب كل الاشكال واطلع علىها واختر ما يناسب زوقك ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- كدا الحمد لله انتهينا من المحور الاول وهو عملية التصميم ورسم TextBox وايضا انتهينا من المحور الثانى وهو اهم خصائص الـ TextBox ان شاء الله المره القادمه نتكلم عن المحور الثالث وهو وقت تنفيذ الكود الخاص بـ TextBox ارجوا من الله ان اكون وفقت بالشرح واى استفسار انا تحت امر الجميع تقبلوا تحياتى ********************************************* ثالثاُ:- وقت تنفيذ الكود الخاص بالـ TextBox قبل أن نتحدث عن وقت تنفيذ الكود لازم نعرف أولا أزاى بيكون كتابة ألاعلان عن الكود للـ TextBox Private Sub TextBox1_Change() هنا يتم كتابة الكود المراد تنفيذه End Sub السطر الاول هو بداية الاعلان عن الكود فنقوم بكتابة Private Sub ستجد لونها بالكود أزرق ( وهو بداية لاى كود خاص لأى عنصر تحكم داخل الفورم ) ثم نقوم بكتابة اسم العنصر المراد عمل الكود له وهو بمثالنا TextBox1 ثم نقوم بكتابة _ ( تكتب من خلال الضغط على Shift+زر الطرح الموجود بالاعلى بجوار زر + ) ثم نقوم بكتابة وقت تنفيذ الكود (اللى هو موضوعنا اليوم) ثم كتابة () قوسين بهذا الشكل وبمجرد الضغط انتر ستجد الكود عمل سطر تانى فيه End sub يوجد طريقه اخرى وهى اتبع الصوره التالية توضح لك قم بالضغط على اى مكان فاضى بالفورم وادخل لمحرر الاكواد الخاص بالفورم دلوقتى هنتكلم عن أهم طرق وقت تنفيذ الكود واكثرها شيوعا فى الاستخدام 1- Afterupdate :- هنا يتم تنفيذ الكود بمجرد الانتهاء من الادخال فى TextBox1 والانتقال الى اى عنصر اخر ( وهو يشبه كثير طريقة Exit) 2-EXit :- هنا يتم تنفيذ الكود بمجرد الخروج من TextBox1 والانتقال الى اى عنصر اخر ( يشبه كثير طريقه Afterupdate ) 3-Change :- هنا يتم تنفيذ الكود عند حدوث اى تغيير فى TextBox1 4-DblClick :- هنا يتم تنفيذ الكود عند الضغط دبل كليك بالماوس داخل TextBox1 5-Enter :- هنا يتم تنفيذ الكود بمجرد وضع مؤشر الماوس داخل صندوق TextBox1 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- كدا الحمد لله انتهينا من المحور الثالث وقت تنفيذ الكود الخاص بالـ TextBox ان شاء الله المره القادمه نتكلم عن المحور الرابع وهو التعامل مع TextBox فى لغة البرمجه ارجوا من الله ان اكون وفقت بالشرح واى استفسار انا تحت امر الجميع تقبلوا تحياتى رابعاً:- التعامل مع خصائص الـ TextBox فى لغة البرمجه فى الدرس قبل السابق عرفنا ازاى نتحكم فى خصائص الفورم من شاشة الخصائص اثناء عملية التصميم فماذا لو حبينا نتحكم فى خصائص الفورم ولكن من خلال الاكواد وليس من شاشة الخصائص فى مرحله التصميم هنبدأ على طول بمثال عملى ونشرح عليه اضغط دبل كليك على اى مكان فاضى فى الفورم وهندخل محرر اكواد الفورم ونعمل كود فى حدث فتح الفورم اتبع الصوره فى المكان المظلل باللون الاحمر هنا موضوع كتابه الاكواد 1-خاصيه BackColor :- الرقم 15849925 لجعل خلفية التكست بوكس لونها سماوى فاتح ( راجع ارقام الالوان فى الدروس الخاصه بالـ Label ) TextBox1.BackColor = 15849925 **************************************************************************************************************************************** 2-خاصيه Enabled :- TextBox1.Enabled = True أو TextBox1.Enabled = False هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 وعند اختيار True لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 يعنى هيكون فى حمايه على TextBox1 *************************************************************************************************************************** 3-خاصيه Height :- للتحكم بارتفاع التكست بوكس وليكن جعل الارتفاع 35 TextBox1.Height = 35 ************************************************************************************************************************************ 4-خاصيه Left :- للتحكم فى بعد التكست بوكس عن الضلع الايسر للفورم وليكن جعل البعد 80 TextBox1.Left = 80 ********************************************************************************************************************************************* 5-خاصيه Locked :- هذه الخاصيه تحمل خيارين true و False TextBox1.Locked = False أو TextBox1.Locked = True عند اختيار False سوف يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 وعند اختيار True لا يكون بأمكان المستخدم ادخال او تعديل محتوى TextBox1 يعنى هيكون فى حمايه على TextBox1 *********************************************************************************************************************** 6-خاصيه MaXLength :- هذه الخاصيه يمكن من خلالها التحكم فى عدد الاحرف او الارقام المدخله بالـ TextBox1 لو حضرتك عايز تجبر المستخدم على ادخال وليكن عدد 8 أحرف فقط اكتب فى خاصيه Maxlenght رقم 8 فلو حب المستخدم يكتب ( محمد خالد ) فأنه لا يستطيع الا كتابة (محمد خال) لماذا لانه تم تحديد عدد الادخال 8 فقط واحد هيقولى محمد خالد عددها 8 حروف هقوله ان الفيجول هيقوم بعد الفاصله اللى بين محمد وبين خالد وبالتالى (محمد 4 حروف + 1 فاصله + خال 3 حروف كدا =8) TextBox1.MaxLength = 8 **************************************************************************************************************************** 7-خاصيه Multline :- هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1 على سطر واحد فقط وعند اختيار True سوف يكون عرض المحتوى اللى بيتم ادخاله او تعديل فى محتوى TextBox1 على عدة اسطر ويجب مراعاة تعديل ارتفاع TextBox1 ليظهر اكثر من سطر TextBox1.MultiLine = False أو TextBox1.MultiLine = True ******************************************************************************************************** 8-خاصيه Passwordchar :- هذه الخاصيه يمكن من خلالها التحكم فى طريقة أظهار القيم المدخله بالـ TextBox1 لو حضرتك عايز تجعل القيم المدخله فى TextBox1 على شكل ( * ) مثلا شاهد الصوره التالية نلاحظ بالكود تم كتابة العلامه * بين اقواس تنصيص " * " ( وهى تكتب من خلال shift+حرف ط ) TextBox1.PasswordChar = "*" **************************************************************************************************************************** 9-خاصيه ScorollBars :- هذه الخاصيه تحمل اربع خيارات ويبدأ العدد من 0 الى 3 0- FMScrollBarsNone ( هذا يعنى الغاء خاصيه ScrollBars ) شاهد الكود التالى -- بمجرد كتابة = ستجد قائمة تظهر لك بالاربع خيارات TextBox1.ScrollBars = fmScrollBarsNone 1-FMScrollBarsHorizontal ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل أوفقى ) TextBox1.ScrollBars = fmScrollBarsHorizontal 2-FMScrollBarsVertical ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل رأسى ) TextBox1.ScrollBars = fmScrollBarsVertical 3-FMScrollBarsBoth ( هذا يعنى عمل ScrollBars للـ TextBox1 بشكل أفقى و رأسى مع بعض ) TextBox1.ScrollBars = fmScrollBarsBoth *********************************************************************************************************************** 10-خاصيه Visible :- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور TextBox1 عند عرض الفورم عندد اختيار True سوف يظهر الـ TextBox1 على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) TextBox1.Visible = True وعند اختيار False ٍسوف يختفى الـ TextBox1 على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم TextBox1.Visible = False *********************************************************************************************************************** 11-خاصيه Top :- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ TextBox1 عن الضلع الاعلى للفورم TextBox1.Top = 90 ************************************************************************************************************************************ 12-خاصيه Width :- هذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ TextBox1 لو فرضنا نريد جعل العرض 100 TextBox1.Width = 100 ******************************************************************************************************************************** 13-خاصيه Text Align :- وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه بداية النص داخل الـ TextBox1 هل يكون يميناً أو يساراً أو وسط TextBox1 بمجرد كتابة = ستجد الفيجوال بيسك يعرض لك قائمة بها 3 خيارات fm Text Align Left -1 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 يبداء من اليسار TextBox1.TextAlign = fmTextAlignLeft fm Text Align Center -2 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 فى المنتصف TextBox1.TextAlign = fmTextAlignCenter fm Text Align Right -3 عند الاختيار ستجد ان اتجاه النص داخل TextBox1 يبداء من اليمين TextBox1.TextAlign = fmTextAlignRight **************************************************************************************************************************** 14-خاصيه Special Effect :- هذه الخاصيه من الخصائص الهامه للـ TextBox1 وهى تعطى اشكال مبهره ومميزه للـ TextBox1 ولها خمس اشكال بمجرد كتابة = ستجد الفيجوال بيسك يعرض لك قائمه بها 5 خيارات على سبيل المثال منها TextBox1.SpecialEffect = fmSpecialEffectBump جرب كل الخيارات واختار منها ما يناسب زوقك ************************************************************************************************************************************** الكود بشكله النهائى هيكون كدا Private Sub UserForm_Initialize() TextBox1.BackColor = 15849925 TextBox1.Enabled = True TextBox1.Height = 35 TextBox1.Left = 80 TextBox1.Locked = False TextBox1.MaxLength = 8 TextBox1.MultiLine = True TextBox1.PasswordChar = "*" TextBox1.ScrollBars = fmScrollBarsBoth TextBox1.Visible = True TextBox1.Top = 90 TextBox1.Width = 100 TextBox1.TextAlign = fmTextAlignRight TextBox1.SpecialEffect = fmSpecialEffectBump End Sub *************************************************************************************************************** كدا الحمد لله انتهينا من المحور الرابع وهو التعامل مه خصائص ال TextBox فى لغة البرمجه ان شاء الله المره القادمه نتكلم عن المحور الخامس والاخير وهو كيفية عمل تنسيقات للقيم المدخله بـ TextBox ارجوا من الله ان اكون وفقت بالشرح واى استفسار انا تحت امر الجميع تقبلوا تحياتى
    1 point
  17. السلام عليكم هل من طريقة او كود لمعاينة تقرير في الأكسس على هيئة pdf دون المطالبة بحفظ ملف pdf وشكراً
    1 point
  18. لقد كررت عليك الفكرة في ثلاثة مشاركات مختلفة .. الحمد لله أن انتهيت من المشكلة الأولى التي لم تكن مشكلة في الأساس !!!!! غير الخاصية المسماة PasswordChar الخاصة بـ TextBox2 ضع بها القيمة * لتظهر لك كلمة السر على شكل نجوم ..............
    1 point
  19. مش عارف فين المشكلة الملف شغال زي الفل وبيرحل وكل حاجه انا شغال اوفيس 2010
    1 point
  20. أخى ياسر أحبك الله الذى أحببتنى فيه نعم هناك العديد والعديد من الموضوعات المتعلقه بشاشات الدخول وكلمات المرور وقد وقع إختيارى على تلك الشاشة التى يمكن تغييرها بعد ذلك ولكن الاهم منها الان هو تظبيط بعض الامور الطفيفية المتعلقة بالبرنامج سأنوه عنها تباعا وخاصة أننى اريد بعد ذلك إضافة فوروم أخر لادخال البيانات والحذف والاضافة والتعديل والاستعلام ومن ثم سيتم بإذن الله رفع البرنامج بصورنه النهائية بكافة أكواده ومعادلاته والتى تعد من المعادلات المعقدة لتتم الفائدة لجميع الاخوة بالمنتدى وليكن اولى هذه التظبيطات تصويب خلل عدم إستدعاء الماكرو كما أشرت عاليه شاكر فضلك **** تقبل وافر تقديرى واحترامى
    1 point
  21. أمزح معك فقط أستاذي الغالي " ياسر خليل أبو البراء "
    1 point
  22. أخي الحبيب زيزو أضحك الله سنك ..كيف يقلب الورقة ؟؟! خايف بدل ما يقلب الورقة يقلب دماغة عشان يشوف الطباعة بالعكس
    1 point
  23. أخي الكريم أحمد ولا محمد فؤاد الحمد لله أن تم المطلوب على خير .. هذا بفضل الله ثم بفضل الله أن يسر لك شخصاً يقوم بذلك الأمر فاحمد الله أولاً وأخيراً بالنسبة لطلبك الثاني غريب شوية ومش منطقي ..هتفرق ايه الطباعة من الآخر للأول أو من الأول للآخر .مجرد تساؤل عموماً جرب التعديل في هذا السطر ..قم باستبدال السطر التالي For I = (LBound(Arr) + 1) To UBound(Arr) بهذا السطر For I = UBound(Arr) To (LBound(Arr) + 1) Step -1
    1 point
  24. غايه في الروعه والبساطه اخي عبدالعزيز
    1 point
  25. الأخ الفاضل omarahmed1424 إن احتلت لي المشكلة وانتهيت من البرنامج فلن أبخل عليك وأبشر بما طلبت يا الغالي إن شاء الله
    1 point
  26. السلام عليكم لم تسن قوانين المنتدى الا لمصلحة الجميع للسائل والمعلم ولمن يأتي بعدهم الاولى والافضل ان تكون كل مسألة في عنوان وموضوع جديد يخصها تعدد العناوين حتى لو كان ضمن موضوع واحد هو علامة صحية نجني ثمارها مستقبلا عند عملية البحث سأغلق الموضوع من اجلك
    1 point
  27. السلام عليكم شاهد المرفق Book2_Arb.rar
    1 point
  28. السلام عليكم ورحمة الله وبركاته تحياتى وتقديرى لجميع أحبائى أعضاء وأساتذة هذا الصرح العلمى الهائل أدخل المعادلة الأتية بأى خلية داخل الإكسيل وشاهد النتيجة بنفسك تحياتى =CHAR(225)&CHAR(199)&CHAR(32)&CHAR(197)&CHAR(225)&CHAR(229)&CHAR(32)&CHAR(197)&CHAR(225)&CHAR(199)&CHAR(32)&CHAR(199)&CHAR(225)&CHAR(225)&CHAR(229)&CHAR(32)&CHAR(227)&CHAR(205)&CHAR(227)&CHAR(207)&CHAR(32)&CHAR(209)&CHAR(211)&CHAR(230)&CHAR(225)&CHAR(32)&CHAR(199)&CHAR(225)&CHAR(225)&CHAR(229)
    1 point
  29. بسم الله ما شاء الله عليك أستاذى الغالى ايه الجمال ده و لا أروع أستاذى الغالى ربنا يزيدك من علمه و فضله ولا حرمنا الله منك ولا من هداياك القيمة أستاذى الحبيب الغالى
    1 point
  30. السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً على هذا العرض الطيب لا إله إلا الله محمّد رسول الله عليها نحيا وعليها نموت وعليها نبعث يوم الحشر أما الأخ ياسر العربي فقد ذكرتنا بخاصية جميلة من خصائص الإكسل جزاكم الله خيراً جميعاً.. والسلام عليكم.
    1 point
  31. تسلملي حبيبي ابو انس كل الشكر والتقدير لمروركم الكريم
    1 point
  32. قسما بالله قسما بالله انت ملكش حل ربنا يجعلو فى ميزان حسناتك انت متعرفش ساعدتنى اد ايه الموضوع الى فات محلش الطلب بتاعى اسف انى كررت الموضوع اخر طلب بس عايزو يبدا طباعه من الاخر للاول يعنى لو الشيت فيه 11 صفحه يبدا بالورقه رقم 11 من الاخر للاول
    1 point
  33. اخي العزيز في البداية قلت ان رقم القيد لا يتكرر وفي نهاية كلامك يتبين ان رقم القيد يمكن ان يتكرر لكن حسب الحالة او انك تقصد ان هناك ثلاثة حقول حقل لرقم القيد وهو لا يتكرر لجميع الحالات وحقل اخر شبيه بالتسلسل ولكن لكل الحالة وهو الذي يكون ترقيمه ترقيما اليا وحقل ثالث للحالات
    1 point
  34. أخي الكريم ياسر العربي ايه علاقة ملفك الجميل والرائع بالموضوع .. صحيح الملف جميل وفكرته جميلة .. لكن ملوش علاقة بالموضوع دي نقطة نقطة تانية (وشكلي كدا هجيب لك النقطة بنقدي) ..اللي يحضر عفريت يصرفه يعني دلوقتي اللي هيفتح ملفك ساعتها هيتم إضافة قائمة مخصصة لديه في أي مصنف يفتحه يعني بقا عفريت ياسر العربي موجود في كل المصنفات ..سواء تحتوي على الكود أو لا ... يبقا اللي يحضر عفريت يصرفه ..يعني تيجي زي الشاطر في حدث إغلاق المصنف وقبل الإغلاق تضع كود يحذف القائمة المخصصة ... لو تحب أساعدك قولي
    1 point
  35. وعليكم السلام ورحمة الله أهلا بك أخي الفاضل انظر مبدأياً هذا الجدول Test.rar
    1 point
  36. حته نص كم كدا بقي yasser.rar معلش بقي هي هتطبق علي الاكسيل عموما يعني حد يطول اسمي يبقي عنده لو حد عاوز يلغيها ماشي
    1 point
  37. وعليكم السلام أخي طارق عملت وحدة نمطية fget_User_ID : Option Compare Database Public u_ID As Integer ' Function get_User_ID() get_User_ID = u_ID End Function . في نموذج دخول المستخدمين ، ارسلت قيمة u_ID الى الوحدة النمطية اعلاه: Private Sub Command5_Click() If [n2] = [كلمة السر] Then 'assign this value to a Global variable in module fget_User_ID u_ID = Me.iduser DoCmd.OpenForm "واجهة البرنامج", acNormal [Forms]![واجهة البرنامج]![n1] = [Forms]![دخول المستخدمين]![الاسم الكامل] DoCmd.Close acForm, "دخول المستخدمين" Else ms$ = "كلمة السر غير مطابقة" ti$ = "كلمة السر خطأ" re = MsgBox(ms$, 0, ti$) End If End Sub . فمن الآن وصاعدا ، كلما اردنا قيمة createuser ، فما علينا إلا ان ننادي الوحدة النمطية الاولى ، لهذا وفي نموذج الادخال barcodeir ، اصبح حقل createuser هكذا: . وفي حدث الحقل barcode ، الحدث On Lost Focus ، استدعيت قيمة createuser من الوحدة النمطية fget_Used_ID ، هكذا: Private Sub barcode_LostFocus() 'only split is nfous is empty If Len(Me.nfousi & "") <> 0 Then Exit Sub Dim x() As String Dim p As Integer If Me.barcode <> "" Then 'get the userID Me.createuser = get_User_ID() x1 = Replace(Me.barcode, "*", "") Debug.Print x1 x = Split(x1, "-") Debug.Print x(2) Me.nfousi = DLookup("[NoufousName]", "NoufousTable", "[Field]='" & x(0) & "'") ' Me.nfous_ID = DLookup("[NoufousID]", "NoufousTable", "[Field1]='" & x(0) & "'") Me.irsalieh = x(2) Me.createdate = Date Me.[a1] = x(1) ' Me.[000000] = x(2) ' Me.[000] = x(3) Me.[101] = x(3) End If End Sub . جعفر 276.tito.accdb.zip
    1 point
  38. أخي الحبيب مختار يمكن استخدام الدالة Match لمعرفة رقم العمود الخاص بمكتب التربية دون اللجوء إلى الحلقات التكرارية التي من شأنها أن تبطيء عمل الأكواد بشكل ملحوظ Sub CountIf() Dim SH As Worksheet Dim ColFound Application.ScreenUpdating = False For Each SH In ThisWorkbook.Sheets If SH.Name <> "Master" Then ColFound = Application.Match("*مكتب التربية*", SH.Rows(1), 0) If IsNumeric(ColFound) Then MsgBox ColFound End If Next SH Application.ScreenUpdating = True End Sub
    1 point
  39. Sub PrintSpecificPagesInActiveSheet() Dim Arr, SH As Worksheet, Rng As Range, Cell As Range, I As Long Set SH = ActiveSheet With SH ReDim Arr(0 To .HPageBreaks.Count + 1) If Len(.PageSetup.PrintTitleRows) Then Set Rng = .Range(.PageSetup.PrintTitleRows) Arr(0) = Rng.Rows(Rng.Row + Rng.Rows.Count).Row Else Arr(0) = 1 End If For I = 1 To .HPageBreaks.Count Arr(I) = .HPageBreaks(I).Location.Row Next I Arr(UBound(Arr)) = .Cells.SpecialCells(xlCellTypeLastCell).Row + 1 For I = (LBound(Arr) + 1) To UBound(Arr) Set Rng = Intersect(.Rows(Arr(I - 1) & ":" & (Arr(I) - 1)), .UsedRange, .Columns("G")) If Not Rng Is Nothing Then Debug.Print Rng.Address For Each Cell In Rng If Cell.Value > 0 Then .PrintOut From:=I, To:=I Exit For End If Next Cell End If Next I End With End Sub أخي الكريم محمد فؤاد أعتقد أن الموضوع قد تم طرحه من قبل من فترة .. وها أنت تعيد طرحه مرة أخرى (مخالفة لتوجيهات المنتدى) عموماً لا عليك .. جرب الكود التالي عله يفي بالغرض Print Specific Pages On Condition Column G Has Value YasserKhalil.rar
    1 point
  40. السّلام عليكم و رحمة الله و بركاته دمتم أساتذنا الأفاضل المحترمين .. الصّقر محمّد طاهر و كل من ساهم و يساهم من بعيد أو من قريب في بناء هذا الصّرح التّعليمي الكبير ..جامعة "أوفيسنا" دمتم جميعًا سنْدًا متينًا لنا .. في سبيل إنارة دربنا و منهجنا التّعليمي الجاد و المثمر و المفيد بارك الله فيكم أجمعين .. بارك الله فيكم و لكم .. بارك الله في أولادكم و عائلاتكم و صحّتكم و أوقاتكم جزاكم الله خيرًا لما تبذلونه أساتذتنا الأفاضل .. فائق إحتراماتي
    1 point
  41. بس ان شاء الله اخونا العود ابو خليل ما يشوف هذا الرد ، لأني بكون مخالف (لأن قوانين المنتدى لا تسمح بأكثر من سؤال في موضوع واحد ) . لا فرق ، ولكن تأكد انك ممكن تضيف للاستعلام (يعني افتح الاستعلام وحاول تغير احد البيانات او تضيف سجل جديد ، فإذا صار التعديل ، فالنموذج يمكنه التعديل والاضافة ، واذا الاستعلام ما قبل التعديل والاضافة ، فلا تلوم النموذج ) جعفر
    1 point
  42. أشكرك أخى و أستاذى الكبير ياسر خليل مشكور على التعديل اللى ما جاش على بالى ده
    1 point
  43. Sub CollectDataFromMultipleWorkbooks() Dim OpenFiles Dim crntfile As Workbook Set crntfile = Application.ActiveWorkbook Dim X As Integer Dim SH As Worksheet Dim Arr, Temp, I As Long, J As Long On Error GoTo ErrHandler Application.ScreenUpdating = False OpenFiles = Application.GetOpenFilename(FileFilter:="Microsoft Excel Files (*.csv;*.xlsx;.xlsm),*.csv;*.xlsx;*.xlsm", MultiSelect:=True, Title:="Select Excel File To Merge!") If TypeName(OpenFiles) = "Boolean" Then MsgBox "You Need To Select At Least One File" GoTo ExitHandler End If X = 1 While X <= UBound(OpenFiles) Workbooks.Open Filename:=OpenFiles(X) Sheets().Move After:=crntfile.Sheets(crntfile.Sheets.Count) X = X + 1 Wend Sheets("Master").Activate For Each SH In ThisWorkbook.Sheets With SH If .Name <> "Master" Then Arr = .Range("A1").CurrentRegion.Value For I = 1 To UBound(Arr) Temp = Split(Arr(I, 1), ";") For J = 1 To UBound(Temp) .Cells(I, J) = Temp(J) Next J Next I .Range("A1").CurrentRegion.Columns.EntireColumn.AutoFit End If End With Next SH ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub أخي الحبيب مختار بارك الله فيك على الكود الرائع الذي قدمته لنا على طبق من ذهب أخي الكريم صاحب الموضوع ..يرجى تغيير اسم الظهور للغة العربية (راجع التوجيهات في الموضوعات المثبتة في المنتدى) جرب الملف التالي بعد إضافة بسيطة لكود الأخ المتميز مختار ليقوم بفصل العمود الواحد لعدة أعمدة تقبل تحياتي Collect Data From Multiple CSV Workbooks Mokhtar V1.rar
    1 point
  44. الطريقه الٍسادسه :- تعبئه الكمبوبوكس باستخدام الحلقه التكراريه For Each (طريقه احترافيه) لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر شاهد الصوره مثال :- مطلوب تعبئة الكمبوبوكس 1 بالبيانات المظلله باللون الاخضر هنعمل الكود التالى With ComboBox1 For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value Next End With نشرح الكود ونمشى وحده وحده ونشوف ازى تم كتابته بالسطر الاول استخدمنا With ComboBox1 يعنى بنقول للكود الشغل بتاعنا هيكون مع الكمبوبوكس 1 ( الكمبوبوكس المطلوب تعبئته ) وطبعا طالما فتحنا With يبقى لازم نقفلها بــ End With زى كدا With ComboBox1 End With السطر التانى استخدمنا الحلقه التكرارية For Each وسميت الحلقه بأسم Data (وممكن تسميها اى اسم او احرف اخرى كما يحلو لك ) Data موجوده فى اى نطاق قلتله موجود فى النطاق من A2 الى اخر خلية بها بيانات فى العمود A ( وطبعا عرفنا ازاى قبل كدا نعرف اخر صف به بيانات فى اى شيت وفى اى عمود ) وكدا الحلقه التكرارية هتبدأ تلف على كل خليه فى النطاق المذكور بدأ من الخلية A2 وطبعا لازم نقفل الحلقه بـ Next For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) Next فلحلقه لما تبدأ هيكون Data = A2 Next الكود هيروح للخليه اللى بعدها Data = A3 Next الكود هيروح للخليه اللى بعدها Data = A4 Next الكود هيروح للخليه اللى بعدها وهكذا حتى يصل الى اخر خليه بها بيانات بالعمود وهى A11 كدا الحلقه بتلف بدون فائده او بالادق بدون مهمه تنفذها مجرد فقط انه بيلف انا عايز استفيد من الفه بتاعته دى فنعمل ايه هقوله وانت بتلف اعمل حاجتين خلى Data اللى هى فى اول لفه هتكون قيمتها A2 دخلها فى العمود الاول للكمبوبوكس ( ملحوظه العمود الاول فى الكمبوبوكس بيكون رقمه 0 والخليه المجاورة لها بالعمود B اللى هى B2 دخلها بالعمود الثانى بالكمبوبوكس ( ملحوظه العمود الثانى بيكون رقمه 1 ) وهكذا وهو بيمر على كل خليه بالنطاق هيعمل كدا .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value ترتيب الاعمده فى الكمبوبوكس بيدأ من 0 وكذالك ترتيب الصفوف بيدأ من 0 AddItem هى العمود رقم 0 فى الكمبوبوكس والعمود ده يساوى Data اللى هى كل خليه هتمر فيها الحلقه اللى هى اسماء العملاء بالعمود A والعمود رقم 1 فى الكمبوبوكس هو (List(.ListCount - 1, 1. هيظهر فيه كود العميل اللى بالعمود B (رقم العمود , صفوف الكمبوبوكس)List. صفوف الكمبوبوكس بتبدأ من 0 زى ما قلت علشان كدا قلت ان صفوف الكمبوبوكس - 1 **** ListCount - 1. طيب العمود رقم 1 عايزين نظهر فيه الكود اللى بالعمود B بالشيت فنعمل ايه Data.Offset(0, 1).Value= هنا استخدمنا الداله offset فى اول لفه للحلقه هيكون Data = A2 فأنا بقوله انتقل من A2 بمقدار صف 0 والعمود 1 ( يعنى ايه صف 0 يعنى نفس الصف والعمود واحد يعنى تحرك وروح للعمود B اخر شئ طبعا الكود ده وقت تنفيذه انت اللى بتحدده ولكن على سبيل المثال انا عايز اكتبه فى حدث تشغيل الفورم فيكون كالتالى Private Sub UserForm_Initialize() With ComboBox1 For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value Next End With End Sub والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس الطريقه القادمه هنعرف ازاى نجلب البيانات بالكمبوبوكس دون تكرار انتظرونا تقبلوا تحياتى
    1 point
  45. الطريقه الثالثه :- استخدام النطاقات المعرفه بدالة Offset فى عمل نطاق ديناميكى متغير اليكم الرابط التالى للقدير واستاذى الفاضل / محمد نصرى يشرح فيه الداله offset بطريقه رائعه http://www.officena.net/ib/topic/56588-سلسلة-تعلم-اكسل-معي-بالصوت-والصورة/?do=findComment&comment=358921 تحديدا الفيديو الثانى هو اللى مرتبط بموضوعنا وبعد ما تشاهد الفيديو ارجع لشرحى المتواضع وهتعرف ليه قلتلك افهم الداله Offset وهذا شرحى المتواضع عن الداله offset الداله Offset هى من اهم الدوال فى الاكسيل انا شخصيا لما بتعامل معها بحس انى مهندس مساحه دلوقتى هنعرف ما هى داله offset وازاى نستفيد بيها فى عمل نطاق ديناميكى معرف يتم استخدامه فى تعبئة الكمبوبوكس بالبيانات هقولك ما هى الداله offset بلغة المصطبه واحنا قاعدين كدا نشرب كوباية شاى فى الخمسينه ازاى بقى نطبق الكلام ده فى الاكسيل شوف الصوره دى الاول وبعدين نكمل زى ما شايفين بالصوره وقفت بالخلية G8 وعملت الداله offset فهى مكونه من خمس اقسام 1- reference : - وهو مرجع العمل يعنى تحديد مركز انطلاق العمل وهو كما بالصوره A2 لانها اول خلية بالجدول المظلل باللون الاخضر فأنا حدد A2 لتكون مركز انطلاق العمل 2- rows : - وهى تعنى الصفوف ومن خلالها يتم تحديد صف بداية العمل يعنى اتحرك كم صف من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى صف من الخلية A2 3- Cols: - وهى اختصار كلمة Colmuns تعنى العمود ومن خلالها يتم تحديد عمود بدابة العمل يعنى اتحرك كم عمود من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى عمود من الخلية A2 ) 2 و 3 يتم من خلالهم تحديد نقطة بداية العمل 4- height: - وهى تعنى ارتفاع ومن خلالها يتم تحديد كم صف نريده للاستخدام ( هنا بالمعادله كتبت 6 يعنى اجلب لى 6 صفوف بدأ من الخلية A2 ) 5- width: - وهى تعنى عرض ومن خلالها يتم تحديد كم عمود نريده للاستخدام ( هنا بالمعادله كتبت 1يعنى اجلب لى عمود واحد بدأ من الخلية A2 ) 4 و 5 يتم من خلالهم تحديد كم صف وكم عمود نريده للاستخدام الكلام ده هيتضح لك اكتر لانه اذا عرف السبب بطل العجب انسخ المعادله اللى كتبناه بالخلية G8 واتبع التعليمات اللى بالصوره وبكدا عرفنا نطاق شوف الخطوه اللى بعد كدا شاهد الصوره وبكدا عند عرض الفورم شاهد النتيجة واحد هيقولى وليه يا عم اللفه الطويله دى انا مش شايف فرق بينها وبين الطريقه التانية اللى شرحتها قبل كدا هى نفس الفكره فى تعريف النطاق ومن ثم كتابته فى Rowsource يعنى دلوقتى لو حبينا نضيف اسم جديد فى الخلية A8 مش هيظهر فى الكمبوبوكس وانت قلتلى انه نطاق ديناميكى يكبر ويصغر حسب الادخالات فى العمود A هقوله برافو عليك انك صاحى معايا تعالى بقى اقولك ايه الفرق بينها وبين الطريقه التانية هو انى بدل ما انا محدد عدد 6 صفوف فى المعادله offset هستعين بداله Count A وهى تعمل على عد الخلايا اللى بها كتابه فى نطاق معين =COUNTA(A2:A10000) لو عملنا المعادله دى فى اى خليه هيقوم بعد الخلايا اللى بها بيانات فى النطاق من A2 الى الخلية A10000 مثلا طبعا النتيجة طبقا للصوره السابقه هتكون 6 ولكن لو قمت باضافه اسم جديد هتكون النتيجة 7 أذن اروح للداله Offset واتحكم فى عدد الصفوف من خلال Count A هتكون المعادله كدا =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) لاحظ الفرق بينها وبين المعادله السابقه استبدلنا رقم 6 بالمعادله هننسخ المعادله دى ونروح نعدل النطاق اللى عرفناه قبل كدا وبكدا ضيف اى اسماء عملاء جديده او احذف اى اسماء موجوده وشاهد الكمبوبوكس سوف يتم عرض الاسماء الموجوده فقط دون زياده او نقصان شاهد الصوره واحد هيقولى انت كدا علمتنى ازاى اتحكم فى عدد الصفوف لتكون تلقائيه حسب عددها بالشيت طيب ازاى اتحكم فى عدد الاعمده انا شايف الكمبوبوكس بيظهر عمود 1 انا عايزه يظهر عمودين ازاى التحكم فى المعادله دى المعادله اللى موجوده دلوقتى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) وعلشان تتحكم فى عدد الاعمده غيرها الى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);2) اللى مركز معايا هيلاحظ الفرق بين المعادلتين فى اخر جزء من المعادله وهو عدد الاعمده غيرت بدل من عرض عمود 1 الى عمودين 2 طبعا علشان تغيرها لازم تروح الى قائمة Name Manager وتعمل تحرير للنطاق وتغير المعادله بدل من عمود واحد الى عمودين وطالما عايز تعرض عمودين متنساش زى ما قلنا قبل كدا تكتب 2 فى الخاصيه Column Count شاهد الصوره عند تغيير المعادله علشان تثبت المعلومه فى راسك لازم تجرب الكلام ده عملى بنفسك اتمنى يارب اكون وفقت بالشرح واتمنى لكم التوفيق والى لقاء اخر فى طريقه جديده من طرق تعبئة الكمبوبوكس بالبيانات
    1 point
  46. بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن شروحات الكمبوبوكس ( ComboBox) كما قلنا من قبل ان ComboBox هو عباره عن وعاء يتم تعبئته ببيانات محدده لتظهر للمستخدم ليختار منها اثناء العمل على الفورم أن شاء الله هيتم تناول الموضوع على خمس مراحل 1- كيفية انشاء ComboBox على الفورم اثناء عملية التصميم 2- التعرف على خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم 3-وقت تنفيذ الكود الخاص بالـ ComboBox 4-التعامل مع الـ ComboBox فى لغة البرمجه 5-معرفة مهارات تعبئة وتغذية ComboBox باكثر من طريقه التقليديه والاحترافيه منها 6-كيفية اجبار المستخدم على الاختيار من الـ ComboBox نبدأ بسم الله أولا :- كيفية انشاء ComboBox على الفورم اثناء عملية التصميم لأضافه كمبوبوكس جديد على الفورم يوجد طريقتين الطريقه الاولى الطريقه الثانية هذه الطريقه يتم من خلالها نسخ اى عنصر او اكثر من العناصر على الفورم ولصقها لعمل عناصر جديده وسوف يكون لها نفس الخصائص للعناصر الذى تم اخذ النسخ منها وفيما يعد يمكنك تغيير الخصائص للعناصر الجديد كما يحلو لك ******************************************************************************************** ثانيا:- التعرف على خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم فى الصورة قبل السابقه على اليسار يوجد خصائص الكمبوبوكس محاطه بمستطيل احمر وهذه صوره مكبره لخصائص الكمبوبوكس هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل 1- الخاصيه (Name) :- Name هو اسم الـ ComboBox المستخدم فى الاكواد وعند انشاء اى ComboBox يقوم الفيجوال بيسك بأعطاء اسم افتراضى له ComboBox1 واذا قمنا بعمل ComboBox ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى ComboBox2 وانا افضل عدم تغيير اسماء ComboBox الافتراضيه التى عرفها الفيجوال بيسك فعندما نريد كتابه كود خاص بالعنصر ComboBox1 فى حدث Change على سبيل المثال يكون بداية الكود كالتالى Private Sub ComboBox1_Change() فأذا قمنا بتغيير اسم ComboBox1 كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name وليكن مثلا غيرناه الى (Customers ) فهنا عند كتابة كود فى حدث Change يكون كالتالى Private Sub Customers_Change() ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error ------------------------------------------------------------------------------------------------------------------------------------------------ 2- الخاصيه ( Back Color):- هذه الخاصيه تتيح للمستخدم تغيير لون خلفية للـ ComboBox على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك أنظر الصوره التاليه 3- الخاصيه ( Back Style):- هذه الخاصيه تحمل خيارين هما Fm Back Style TransParent - 0 ( عند الاختيار سيتوقف عمل الخاصيه Back Color حتى ولو كان تم اختيار لون بها وليكن خلفية سماوية كما هو بالمثال السابق سيظهر الـ ComboBox بخلفية ساده ) Fm Back Style Opague - 1 ( عند الاختيار سيتم عمل الخاصيه Back Color وهيكون الـ ComboBox بخلفية حسب الاختيارك من Back Color ) لذالك هذه الخاصيه مرتبطه بالخاصيه Back Color ********************************************************************************************************************** 4- الخاصيه ( Border Color):- هذه الخاصيه تتيح للمستخدم تغيير لون حدود اللـ ComboBox على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك 5- الخاصيه ( Border Style):- هذه الخاصيه تحمل خيارين هما Fm BorderStyle none - 0 ( عند الاختيار سيتوقف عمل الخاصيه Border Color حتى ولو كان تم اختيار لون بها وليكن لون حد أحمر سيظهر الـ ComboBox بلون حد ساده ) Fm BorderStyle Single - 1 ( عند الاختيار سيتم عمل الخاصيه Border Color وهيكون حدود الـ ComboBox بخلفية حسب الاختيارك من Border Color) لذالك هذه الخاصيه مرتبطه بالخاصيه Border Color مثال لو اختارنا لون خلفيه للـ ComboBox لون سماوى ولون حدود احمر شاهد الصورة ولاحظ ان الخاصيه Back Color اختيارها 1 وايضا الخاصيه Border Color اختيارها 1 شاهد الصوره التالية ولكن لو كان الخاصيه Back Color اختيارها 0 وايضا الخاصيه Border Color اختيارها 0 سوف يكون لون الخلفية ساده والحدود بدون لون **************************************************************************************************************** 6- الخاصيه ( Bound Column):- هذه الخاصيه تتيح للمستخدم تحديد العمود الذى سيظهر فى عنصر اخر عند الاختيار من الكمبوبوكس سنرى لاحقا مثال عملى ************************************************************************************************* 7- الخاصيه ( Column Count):- هذه الخاصيه تتيح للمستخدم تحديد كم عدد الاعمده التى ستظهر فى اللـ ComboBox بمعنى ادق يمكن عرض اكثر من عمود فى الكمبوبوكس سنرى لاحقا مثال عملى ************************************************************************************************* 8- الخاصيه ( Row Source ):- هذه الخاصيه هى اولى الطرق التقليدية لتعبئة الكمبوبوكس بالبيانات مثال عام على الخاصيه ( Bound Column) و الخاصيه ( Column Count) و الخاصيه ( Row Source ) لدينا شيت به بيانات افتراضيه كما هو ظاهر بالصوره التالية وعندى فورم بصممه شاهد الصورة أنا دلوقتى عايز اظهر اسماء العملاء من الخلية A2 : A5 فى الكمبوبوكس اللى فى الفورم من شاشة الخصائص اروح للخاصيه Row Source واكتب المدى A2:A5 شاهد الصورة شاهد النتيجة عن تشغيل الفورم طيب لو عايزين نظهر عدد 2 عمود بمعنى اظعر عمود اسماء العملاء وايضا عمود كود العميل اذن لازم اغير المدى فى الخاصيه Row Source واكتب المدى A2:B5 وايضا لازم احدد عدد الاعمده فى الكمبوبوكس يكون 2 من الخاصيه Column Count شاهد الصورة ستجد النتيجة عند تشغيل الفورم طبعا عند الاختيار من الكمبوبوكس سيظهر اسم العميل (اللى هى تعتبر العمود رقم واحد فى الكمبوبوكس ) فى الكمبوبوكس وتختفى قائمة العملاء فلو انا عايز عند الاختيار ايضا يظهر كود العميل فى التكست بوكس رقم 1 ( اللى هو باللون الاصفر فوق) اذن لازم نروح للخاصيه Bound Column واكتب 2 ( أى العمود رقم 2 هو القيمة التى ستظهر فى التكست بوكس رقم 1 ) شاهد الصورة باقى خطوة تانية وهى عمل كود فى حدث تغيير الكمبوبوكس كالتالى Private Sub ComboBox1_Change() TextBox1.Value = ComboBox1.Value End Sub هذا الكود كتبنا فيه ان التكست بوكس 1 يساوى الكمبوبوكس ( واحد هيقولى مش الكمبوبوكس فى عمودين اذن التكست بوكس هيكون اى عمود عند الاختيار هقوله ان الخاصيه Bound Column كتبنا فيها العمود رقم 2 اذن القيمة التى ستظهر فى التكست بوكس 1 هى العمود 2 ) وبكدا عند التشغيل الفورم والاختيار من الكمبوبوكس سيظهر قيمة العمود رقم 1 وهو اسم العميل فى الكمبوبوكس وسيظهر قيمة العمود رقم 2 وهو كود العميل فى التكست بوكس 1 ( بناء على تحديد الخاصيه Bound Column كتبنا فيها العمود رقم 2 وايضا الكود بحدث تغيير الكمبوبوكس ) وعند تشغيل الفورم واختيار من الكمبوبوكس شاهد النتيجة كدا اخدنا مثال عملى على الثلاث خصائص وهما الخاصيه ( Bound Column) و الخاصيه ( Column Count) و الخاصيه ( Row Source ) ************************************************************************************************************************** 9- الخاصيه ( Column Heads ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور رؤوس للاعمده او عدم ظهورها وهى تحمل خيارين أما True أو False عندد اختيار False وهو الاختيار الافتراضى بالفيجوال لا يظهر رؤوس للاعمده بـ ComboBox1 على الفورم عند فتحه شاهد الصوره عندد اختيار True يظهر رؤوس للاعمده بـ ComboBox1 على الفورم عند فتحه شاهد الصوره كما هو مبين بالصورة ان رؤوس الاعمده هى الخلية A1 والخلية B1 وذالك لان المدى للكمبوبوكس هو من A2:B5 فالفيجوال بيسك يقوم بشكل تلقائى بقراءة اول خلية تسبق المدى *********************************************************************************** 10- الخاصيه ( Column Widths ):- وهذه الخاصيه تتيح للمستخدم التحكم فى عرض الاعمده التى ستظهر فى الكمبوبوكس فى سبيل المثال عرض العمود رقم 1 هو 200 وعرض العمود رقم 2 هو 100 اذن لازم تتكتب كالتالى 200Pt;100Pt ( بينهم فاصله ; تكتب من خلال جعل لغة الكيبورد انجلش ثم اضغط على حرف ك بالعربى) شاهد الصوره واحد شاطر هيقولى هو لازم علشان اظهر العمود الثانى اتحرك بالاسكرول بار هقوله لا يوجد طريقه حلوة وهى الخاصيه ( List Width ) هنشرحها ونعرف ازاى نخليها تحل لنا المشكله وتظهر الاعمده بدون الاسكرول بار 11- الخاصيه ( List Width ):- عرض List الافتراضى هو عرض الكمبوبوكس مجموع عرض الاعمده كتبنا فى المثال السابق فى الخاصيه Column Widths ان عرض الاعمده هو 200Pt;100Pt اذن لابد من جعل عرض List مجموع عرض الاعمده 200Pt;100Pt يعنى هيساوى 300Pt وبكدا مش هيكون فى اسكرول بار والاعمده كلها ظاهر عند تشغيل الفورم شاهد الصوره ************************************************************************************************************** 12- الخاصيه ( DropButtonStyle ):- هذه الخاصيه تتيح للمستخدم التحكم فى شكل الكمبوبوكس شاهد الصوره اختر أى من الاشكال فى الصورة التى تناسب ذوقك ********************************************************************************** 13- الخاصيه ( Enabled ):- هذه الخاصيه تحمل خيارين true و False عند اختيار true سوف يكون بأمكان المستخدم الاختيارمن محتوى ComboBox وهو الاختيار الافتراضى بالفيجوال وعند اختيار False لا يكون بأمكان المستخدم الاختيارمن محتوى ComboBox ويكون الشكل باهت ********************************************************************************************** 14- الخاصيه ( Locked ):- هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون بأمكان المستخدم الاختيارمن محتوى ComboBox وهو الاختيار الافتراضى بالفيجوال وعند اختيار True لا يكون بأمكان المستخدم الاختيارمن محتوى ComboBox يعنى هيكون فى حمايه على ComboBox وهذه الخاصيه تشبه تماما الخاصيه Enabled الفرق الوحيد بينهم هو فى شكل التنسيق للكمبوبوكس ********************************************************************** 15- الخاصيه ( Font ):- وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل الـ ComboBox الافتراضى فى الفيجوال بيسك نوع الخط هو ( Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8) ********************************************************************************************************** 16- الخاصيه ( Font Color ):- وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ ComboBox ********************************************************************************************* 17- الخاصيه ( Height ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ ComboBox فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ ComboBox أو كتابة رقم للارتفاع فى الخاصيه Height ********************************************************************************************* 18- الخاصيه ( Left ):- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ ComboBox عن الضلع الايسر للفورم **************************************************************************** 19- الخاصيه ( Top ):- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ ComboBox عن الضلع الاعلى للفورم مثال لو وضعنا قيمة Left 78 *** وقيمة Top 138 ستجد الصوره التالية *********************************************************************************************************************** 20- الخاصيه ( List Row ):- هذه الخاصيه من الخصائص المهمه لانها تتيح للمستخدم التحكم فى عدد الصفوف التى يتم عرضها عند فتح الـ ComboBox شاهد الصوره لو عايزين اظهار عدد 3 صفوف فقط شاهد الصوره التالية ************************************************************************************************************ 20- الخاصيه ( List Style ):- شاهد الصوره تتضح لك اهميه الاداه فمن خلالها يمكن التحكم فى طريقه عرض البيانات عن فتح الكمبوبوكس **************************************************************************************************************** 21- الخاصيه ( Width ):- وهذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ ComboBox فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد العرض للـ ComboBox أو كتابة رقم للعرض فى الخاصيه Width **************************************************************************************************************** 22- الخاصيه ( Visible ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور ComboBox عند عرض الفورم وعند الضغط على السهم المجاور لها ستجد لها خيارين True و False عندد اختيار True سوف يظهر الـ ComboBox على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) وعند اختيار False ٍسوف يختفى الـ ComboBox على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم ****************************************************************************************************************
    1 point
  47. السلام عليكم اسمحوا لي بالمشاركة معكم هذا الكود كامل بالمطلوب ويمكنكم تسمية النسخة واللاحقة بما تريدون يتم اخذ النسخة عند اغلاق النموذج / انظر المرفق Dim DBOld As String Dim DBNew As String Private Sub Form_Load() DBOld = CurrentProject.Path & "\Data.mdb" 'اختيار قاعدة بيانات الجداول DBNew = CurrentProject.Path & "\Backup" 'اختيار مكان حفظ النسخة End Sub Private Sub Form_Close() On Error Resume Next Shell "cmd.exe /C copy " & """" & DBOld & """" & " " & """" & DBNew & "\" & "Data.mdb" & """", 0 End Sub xxxx.rar
    1 point
  48. اعتقد ان هناك من سأل عن كيفية الحماية والتفعيل من خلال الهارديسك إليكم اخوانى الاعضاء برنامجى الخاص بكيفية التفعيل من خلال رقم الهارديسك ارجو ان ينال اعجاب ورضا الجميع تحياتى ،،، Serial_No.rar
    1 point
  49. السلام عليكم بعد اذن اخي الحبيب عادل حيث انني بدات بالحل قبل ان ارى الرد فارفق الملف كمتمم لاخي عادل مع الشكر ابو خالد EEEEE.rar
    1 point
  50. بسم الله الرحمن الرحيمكود صغير وبسيط للترحيل الى كم ماتريد من اوراق العمل بدون تغيير في الكود التغيير يتم في ورقة الترحيل التي تاخذ اسم الورقة من اسم الحساب بمعنى انك تسمي اي حساب باسم الورقة حقه من هنا عند اختيارك لاي حساب يتعرف الكود على الورقة التي تريد الترحيل اليها وممكن في العمود المعني بالتسميات في كود الترحيل تختار ما شئت من اوراق العمل ( اسماء الحسابات) وبضغطة زر تتطاير البيانات كلا الى موقعة في اوراق العمل . وفي التجربة برهان ...... طالبين الدعاء منكم لاغير تحياتي وسلامي اخوكم/ خبور ____________________1.rar
    1 point
×
×
  • اضف...

Important Information