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

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

  1. الصـقر

    الصـقر

    الخبراء


    • نقاط

      8

    • Posts

      1,836


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

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

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


    • نقاط

      6

    • Posts

      13,165


  3. husamwahab

    husamwahab

    الخبراء


    • نقاط

      3

    • Posts

      1,047


  4. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      3

    • Posts

      8,723


Popular Content

Showing content with the highest reputation on 17 أكت, 2016 in all areas

  1. السلام عليكم لا اعرف ان كانت هناك دالة خاصة لكن هذا كود يدمج بين دالتين ويعطي المطلوب Database1.rar
    2 points
  2. السلام علكيم ورحمه الله وبركاته اسعد الله صباحكم واوقاتكم بكل خير لدى برنامج عمل مشترك برنامج ادارة حلقات تحفيظ القران الكريم . ويعمل حاليا فى احد المساجد شبكة على 8 أجهزة بفضل الله البرنامج مجانى ومفتوح المصدر . المطلوب : كما قال صلى الله عليه وسلم الدال على الخير كفاعله فقط انشر وشارك الاجر للتواصل وطلب البرنامج - البرنامج والتركيب والدعم والتحديثات مجانية - التواصل عبر - الفيس بوك www.facebook.com/acchosam - الواتساب 0535154420
    1 point
  3. رجاء خاص من الاخوة الكرام يرجى عدم اضافه اى رد على الموضوع لحين الانتهاء من كل الشروحات والسبب فى ذالك والله ما هو غير ان يكون الحلقات كلها متسلسله ورا بعض حتى يسهل لمن يريد المتابعه ان يستفيد منها ويرجى الاكتفاء بالاعجاب فقط أما ان وجد ملاحظة او خطا ما او احد يريد استفسار عن شئ ما بيكتبها بموضوع مستقل وانها ساقوم بالرد عليه تقبلوا منى وافر الاحترام والتقدير ************************************************************************************************************* بسم الله الرحمن الرحيم الاخوه الكرام بعد فترة انقطاع عن تقديم سلسلة علمنى كيف اصطاد بسبب الانشغال من الانتهاء ببرنامج 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
  4. اخوانى بالموقع السلام عليكم ورحمة الله هنا اضع لكم قوائم الفصول بعد اضافة شيتات اعمال السنة وسميتها معدل 1 وكل تعديل سوف اجريها سوف انزله باسم اخر من الرابط التالى وفى شيت اعمال سنة ثانوى متصل تواجهنى صعوبة الطباعة لانه بيضبع صفحات خالية كثير اترك لكم الشيت ومنتظر لو هناك تعديل من احد الاخوة انا يسعدنى وسوف اكمل بعد ذلك انشاء الله لو فى العمر بقية كشوف المناداه وبيان توزيع اللجان http://up.top4top.net/downloadf-289uu6o1-rar.html
    1 point
  5. جزاك الله خيرا من امس الى اليوم وانا احاول مع الاكواد ونجحت اخيرا.. بس اذا احتجت شي راح اسأل واسفه عالازعاج
    1 point
  6. شكرا جزيلا استاذ سليم.
    1 point
  7. للاسف لا يوجد عندي 2016 شاهد هذا الفيديو
    1 point
  8. أخي الكريم وائل لابد من منطق يفهمه الإكسيل .. أعتقد أنه يوجد سطر فارغ بين النصوص يمكن الاعتماد عليها ، حيث أنه يمكن عمل محاولة لدمج النصوص التي يفضل بينها سطر فارغ
    1 point
  9. ارفع المرفق ضروري لكي الجماعة بيقدر بيساعدك مع تحياتي شفان ريكاني
    1 point
  10. لتنفيذ هذا العمل يلزمك واحدة من الحاجتين 1-اما ان يكون لديك Excel 2016 ,و تستعمل الدالة Textjoin 2-او بواسطة الكود (VBa) انطر الى الورقة Salim واضغط على الزر Run ترتيب_الاسم salim Macro.rar
    1 point
  11. اخي الكريم كان عليك ذكر احتمال تكرار الاقسام .. وعلية جرب الملف التالي علة المطلوب تماماً =IF(COUNTIF($B$4:$B5,$B5)=1,MAX($C$4:$C4)+1,INDEX($C$4:$C$1500,MATCH($B5,$B$4:$B5,0),1)) New Microsoft Excel Worksheet (2).rar
    1 point
  12. السلام عليكم اخي الكريم وكما قال استاذي ابو البراء باستخدام IF ستكون المعادلة طويلة جداً الي جانب انه مع كل إضافة لقسم ستحتاج التعديل علي المعادلة ولهذا اليك معادلة Match وهي تعتمد في الترقيم علي ترتيب القسم داخل جدول البيانات علها تفي بالغرض =MATCH(B2,$B$2:$B$21,0) New Microsoft Excel Worksheet.rar
    1 point
  13. الحمد لله أن تم المطلوب على خير أخي الكريم وائل .. الحمد لله الذي بنعمته تتم الصالحات جزاكم الله خيراً على كلماتك الطيبة ودعائك الطيب ، ولك بمثله إن شاء الله تقبل وافر تقديري واحترامي
    1 point
  14. بالطبع أخى تم تحميل الملف الأخير ووالله لا أعلم لماذا لم يعمل من البداية رغم قيامى بعدة محاولات المهم بعد مشاركتك يبدو أن الملف خاف منك واشتغل الحمد لله بارك الله فيك النتيجة تمام لم أعد أجد في كلماتى ما يوفيك حقك فلقد استنفذت أخى أبو البراء كل كلمات الثناء فجزاك الله خيرا وبارك لك وتقبل منك وشكر لجميع الأخوة. بالمناسبة أنا مش ناسى موضوع تفرقة الاكسيل بين الحروف والأرقام والرموز والمسافات ولكن أحاول أن أعد له مشاركة توضح ما أريد ومبدئيا سوف أحتاج لهذا الأمر كود مرن أو مطاط كلما استعملته في موضوع بشكل مختلف يأتينى بما أريد بناء على ما سوف اطرحه إن شاء الله أكرر شكرى
    1 point
  15. والله ياستاذ ياسر خليل أبو البراءانا مش عارف اشكرك ازى علي اهتممك وعلي مجهوداتك
    1 point
  16. هل قمت بتحميل المرفق الأخير وتجربته ؟ وضح الخطوة التي تعثرت فيها ..لأن الملف يعمل عندي اجعل ملف الإكسيل بخارج الفولدر وليس بداخله ثم قم بتنفيذ الكود ..
    1 point
  17. تم التعديل أخي هناك خطأ بسيط وهو أنك وضعت القيمة عند تحقق شرط المعادلة if بين علامتي تنصيص وبذلك تعامل معها الاكسيل كنص وليس كرقم الحل ازالة علامتي التنصيص من الرقم فقط وستصبح المعادلة فعالة استبدل المعادلات بالمعادلة التالية =IF(I6="s";3;IF(I6="E+";2;IF(I6="E";1;IF(I6="M";0;IF(I6="D";-1;"-"))))) نسخة من نسخة من abohanaf.zip
    1 point
  18. أخي الكريم ياسر خليل أبو البراء سلّمك الله من كل سوء هو دا المطلوب فعلا ...... وهاخد بالي المرة الجاية إن شاء الله. أخوك أحمد أبو محمد
    1 point
  19. بالنسبة للشرط المطلوب إضافته ..ممكن تكتب الشرط بالشكل ده If target.Row > 7 And target.Row <= Lr And target.Column = 18 And Not IsEmpty(Range("A" & target.Row)) Then
    1 point
  20. السلام عليكم اخي الكريم عبد الله .... شكرا لك برنامج جميل ..
    1 point
  21. وعليكم السلام أخي الكريم أهلاً بك في المنتدى ونورت بين إخوانك يرجى إرفاق ملف كنموذج مصغر ومعبر عن الملف الأصلي ..يكفي 5 أوراق عمل كنموذج فقط وليسهل العمل على المطلوب .. وإذا أمكن قم بإرفاق شكل النتائج المتوقعة تقبل تحياتي
    1 point
  22. ربما يكون المطلوب انظر الى الورقة Salim ترتيب_الاسم salim.rar
    1 point
  23. السلام عليكم بارك الله فيك أخي الحبيب زيزو العجوز والذي يعمل في صمت دائماً ، وكم أعشق حلوله .. وهذه ليست مجاملة والله ، فإنك لديك موهبة فذة في بناء الكود الأخ الكريم أحمد أبو محمد .. قم بتحميل الملف التالي وإن شاء الله يفي بالغرض رابط الملف من هنا Hide Every Ten Rows After Each Click Using Static YasserKhalil Officena
    1 point
  24. بسم الله الرحمن الرحيم اليوم بمشيئة الله سنتكلم عن شروحات الفريم ( Frame ) تستخدم هذه الاداه فى احتواء بعض ادوات التحكم مثل ( الليبل او التكست بوكس او الكمبوبوكس وغير ها من العناصر) داخل الفريم بقصد اعطاء شكل جمالى أن شاء الله هيتم تناول الموضوع على ست مراحل 1- كيفية انشاء Frame على الفورم اثناء عملية التصميم 2- كيفية اضافه عناصر تحكم داخل Frame اثناء عملية التصميم 3- التعرف على خصائص Frame من شاشة الخصائص اثناء عملية التصميم 4-التعامل مع خصائص الـ Frame فى لغة البرمجه 5-كيفية اضافه عناصر تحكم داخل الـ Frame والتحكم فى الاسكرول بار للــ Frame عند فتح الفورم او اثناء العمل على الفورم وهو نشط 6-التحكم فى العناصر الموجوده داخل الـ Frame بطرق احترافيه نبدأ بسم الله أولا :- كيفية انشاء Frame على الفورم اثناء عملية التصميم لأضافه Frame جديد على الفورم يوجد طريقتين الطريقه الاولى :- الطريقه الثانيه :- نسخ فريم موجود على الفورم وعمل فريم اخر منه ملحوظه لو كان Frame1 يوجد به عناصر تحكم وليكن به comboBox1 وقمت بنسخ Frame1 لعمل فريم اخر منه ستجد داخل الفريم الجديد Frame2 بداخله comboBox2 وله نفس خصائص comboBox1 الخلاصه انه عند نسخ فريم يتم نسخه مع ما يحتويه من عناصر تحكم ايضا ويكون الفريم الجديد وما يحتويه من عناصر له نفس الخصائص اللى موجوده بالفريم الاول **************************************************************************************** الى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد ان شاء الله هيكون عن كيفية اضافه عناصر تحكم داخل الـ Frame اثناء عملية التصميم انتظرونا تقبلوا تحياتى
    1 point
  25. سادسا :- اجبار المستخدم على الاختيار من الكمبوبوكس يوجد طريقتين الطريقه الاولى :- هى استخدام الخاصيه Style اثناء شرحنا لخصائص الكمبوبوكس فى مرحلة التصميم تكلمنا عن الخاصيه Style ودا نسخ الجزئيه الخاصه بالخاصيه Style من شروحتنا السابقه الخاصيه ( Style ):- وهى بنظرى من اهم الخصائص للكمبوبوكس زى ما احنا عارفين لفتح القائمة الخاصه بالكمبوبوكس للاختيار منها لابد من الضغط على السهم لتفتح القائمه ولكن هذه الخاصيه تتيح للمستخدم التحكم فى وقت فتح القائمة الخاصه بالكمبوبوكس فلها خيارين الخيار الاول Fm StyleDropDown Combo - 0 :- هو الافتراضى لابد من الضغظ على السهم لفتح القائمة كما تتيح للمستخدم كتابة اى شئ بالكمبوبوكس غير موجود بالقائمه بمعنى لا تلزم المستخدم من الخيار من القائمة والخيار الثانى Fm StyleDropDown List - 2 : -هو فتح القائمة من خلال الضغط على السهم او بمجرد وقوف مؤشر الماوس على الكمبوبوكس وكمان ميزة ثالته وهى مهمه جدا هو انه لا يمكن للمستخدم كتابة اى شئ فى الكمبوبوكس يعنى كانك عامل خاصيه حمايه للكمبوبوكس ولا سبيل امام المستخدم الا من الاختيار من القائمه -------------------------------------------------------------------------------------------- الطريقه الثانية :- استخدام الخاصيه MatchFound عايزين نعمل كود يقوم باختبار قيمة الكمبوبوكس هل هى موجوده بالقائمه او لا ؟ لو الكمبوبوكس التطابق مع القائمة = خطأ نفذ الكمبوبوكس فارغ ( دا شرح الكود كدا بالبلدى وحنا قاعدين على المصطبه) لتحويل الكلام اللى بالبلدى ده الى لغة البرمجه تابع معايا لو نستبدلها بـ IF (يعنى قاعدة IF) الكمبوبوكس نستبدله باسم الكمبوبوكس المراد العمل عليه وهو على سبيل المثال Me.ComboBox1 التطابق مع القائمه دى الخاصيه Match Found بمجرد كتابة اسم الكمبوبوكس ثم . ثم حرف M ستجد الفيجوال بيسك يعرض لك قائمه للاختيار شاهد الصوره التاليه = خطأ False ( أى ان القيمة المختاره غير موجوده بالقائمه ) نفذ Then الكمبوبوكس فارغ " " شاهد الكود لما نجمع الكلام ده بقى هيكون كالتالى If Me.ComboBox1.MatchFound = False Then ComboBox1 = "" End If طيب ما هو وقت تنفيذ الكود وقت التنفيذ انت اللى بتحدده مثلا ممكن يكون فى حدث تغيير الكمبوبوكس ()Private Sub ComboBox1_Change Private Sub ComboBox1_Change() If Me.ComboBox1.MatchFound = False Then ComboBox1 = "" End If End Sub وبكدا لو عندك قائمه الكمبوبوكس وليكن بها ( مصر & السعودية & السودان & الجزائر ) والمستخدم تجاهل هذه القائمة وراح يكتب تونس بمجرد بس كتابة حرف ت سوف يقوم الكود بالعمل مش هيلاقى دوله فى القائمة تبدأ بحرف ت اذن تحقق شرط عدم التطابق فهيقوم بمسح حرف ت ممكن واحد يفتكر فى عفريت مسح الحرف يعنى كل ما تكتب شئ غير موجود بالقائمه هتلاقيه بيتمسح فورا ----------------------- ممكن نكتب الكود فى وقت حدث الخروج من الكمبوبوكس Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Me.ComboBox1.MatchFound = False Then ComboBox1 = "" End If End Sub يعنى المستخدم بمجرد ما يكتب تونس ويضغط انتر للانتقال الى عنصر اخر على الفورم هتلاقى الكود بيتنفذ ويمسك المستخدم من قفاه ويقوله تعالى تونس غير موجوده فى قائمة الكمبوبوكس وهيمسح تونس يعنى كأن المستخدم مكتبش اى حاجه ومازل الكمبوبوكس قيمته فارغه ممكن المستخدم يتجنن هو ايه اللى بيحصل هو ليه كل ما اكتب تونس يتم مسحها هو فى عفريت ؟؟ ما عفريت الا بنى ادم فعلشان نريحه نظهر له رساله تفيد بانه يجب الاختيار من القائمه Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Me.ComboBox1.MatchFound = False Then ComboBox1 = "" MsgBox " الرجاء الاختيار من القائمة", vbCritical, "خطأ" End If End Sub قمنا باضافه هذا السطر بالكود قبل نهاية IF MsgBox " الرجاء الاختيار من القائمة", vbCritical, "خطأ" الرساله تتكون من ثلاث اقسام يفصل ما بين كل قسم وقسم علامة , القسم الاول وهو الرساله " الرجاء الاختيار من القائمه" وتم وضعها بين علامتى تنصيص ( وهو قسم اجبارى) القسم الثانى وهو نوع الرساله واظهار علامه لها فكتبنا Vbcritical رساله خطأ ( وهو قسم اختيارى يمكن الاستغناء عنه ) القسم الثالث وهو عنوان الرساله فكتبنا "خطأ" وممكن تكتب اى عنوان كما تشاء ( وهو قسم اختيارى يمكن الاستغناء عنه) فالاساس فى الرساله هو نص الرساله " الرجاء الاختيار من القائمة " MsgBox فأذا ارد اظهار علامه للرساله او عنوان لها قم باضافه القسم الثانى والثالث او استكفى بالقسم الاول اذا حبيت شاهد الرساله عند الاختيار الخاطئ من المستخدم هل يمكن كتابة الكود فى سطر واحد ؟ نعم يمكن ذالك Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Me.ComboBox1.MatchFound = False Then: ComboBox1 = "": MsgBox "الرجاء الاختيار من القائمة", vbCritical, "خطأ": Exit Sub End Sub كما تشاهدون الكود انه فى سطر واحد فقط وذالك باستخدام : : ( تكتب من خلال الضغط على شيفت + حرف ك بالعربى ) واستبدلنا عبارة End if بــ Exit Sub -------------------------------------------------------------------------------------------------------------------- الحمد لله انتهينا من شروحات الكمبوبوكس والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد ان شاء الله هيكون عن الـــ Frame انتظرونا تقبلوا تحياتى
    1 point
  26. الطريقه التاسعه :- تعبئه الكمبوبوكس بدون تكرار وبناء على شرط باستخدام الحلقه التكراريه 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 باسماء عملاء سوريا فقط **** كدا عرفنا ازاى نقوم بتعبئة الكمبوبوكس بناء على شرط **** وكمان عرفنا ازاى نقوم بتعبئة الكمبوبوكس بناء على كمبوبوكس اخر( وطبعا فى طرق اخرى كتير جدا لتعبئة كمبوبوكس بناء على كمبوبوكس اخر ) يعنى درس النهارده دسم ومحتاج تركيز ولازم تجربو الكلام ده عملى ارجوا يارب ان اكون وفقت بالشرح والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس انتظرونا تقبلوا تحياتى
    1 point
  27. الطريقه الٍسابعه :- تعبئه الكمبوبوكس بدون تكرار باستخدام الحلقه التكراريه For Each و الداله Countif (طريقه احترافيه) لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر ولكن دون تكرارشاهد الصوره هنستخدم نفس الكود السابق ولكن مع اضافه الداله Countif الكود هيكون كالتالى With ComboBox1 For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) i = Data.Row aa = Application.WorksheetFunction.CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data) If aa = 1 Then .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value End If Next End With أنا هحاول بقدر الامكان اعيشك فيديو تشوف الكود اثناء التنفيذ بيعمل ايه السطرالاول هو With ComboBox1 يعنى بنقول للكود الشغل بتاعنا هيكون مع الكمبوبوكس 1 ( الكمبوبوكس المطلوب تعبئته ) السطر الثانى هو الحلقة التكرارية For Each وقمنا بتسميتها اسم افتراضى وليكن Data ( وممكن تسميها اى اسم او حرف او مجموعه من الحروف ) طيب Data وين موجوده فى اى نطاق قلتله فى In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row يعنى النطاق من A2 الى اخر خلية بها بيانات فى العمود A اللى هى بالصوره السابقه A7 ( طبعا عرفنا ازاى نكتب سطر البحث عن اخر خليه بها بيانات) كدا عرفنا النطاق وهيكون من A2 :A7 طبقا للصوره موضوع الشرح ( وطبعا عند زياده المدى وليكن كتابة اسم جديد فى الخلية A8 سوف يقوم الكود بمعرفه النطاق من A2:A8 ) الحلقه دلوقتى عرفت النطاق بتاعها وهتبدأ تلف على خلية خلية فى هذا النطاق وكل مره هيكون الحلقه Data لها اسم خليه معينه فى المره الاولى سيكون قيمة Data هى A2 والكود هينتقل الى السطر التالى وهو i = Data.Row عملت متغير اسمه i وقلت أن i تساوى Data.Row يعنى رقم الصف اللى فيه Data دلوقتى Data هى A2 والخلية A2 كم رقم الصف بتاعها هو الصف رقم 2 أذن i = 2 الكود هيروح للسطر اللى بعد كدا وهو aa = Application.WorksheetFunction.CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data) هنا عملت متغير وسميتها aa وقلت ان aa تساوى قيمة معادله ما هى المعادله هى Countif وهى تعنى عمل احصاء على شئ ما داخل نطاق محدد عند الاعلان عن معادله فى اى كود لازم نكتب الجمله دى .Application.WorksheetFunction ثم اسم الداله اللى انت عايزها انا دلوقتى محتاج الداله Countif وهى ( CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data نطاق العمل هو المظلل باللون الاحمر وشرط الاحصاء هو اللون الاخضر جزء النطاق هو ( الى , من )Sheet1.Range السؤال هنا من ايه ؟ الى ايه؟ من A2 بس فى الكود مش هكتبها A2 هستخدم Cells و Cells عباره عن (رقم العمود, رقم الصف)Cells ِA2 كم رقم الصف بتاعها رقم 2 وكم رقم العمود بتاعها رقمه 1 اذن A2 تساوى (Cells(2, 1 الى ايه ؟ الى اى خلية ؟ الى هنا هتكون متغيره انا بالمره الاولى عايزه الى A2 والمره التانيه الى A3 والمره الثالثه الى A4 وهكذا طيب ودى بقى اكتبها ازاى ؟ ركز معايا يا عبدالتواب شايفك نمت منى فى Cells مش احنا قلنا ان Cells عباره عن (رقم العمود, رقم الصف)Cells طيب رقم الصف كل مره هو اللى مش معروف لكن رقم العمود هو اللى معروف طيب اعرف ازاى رقم الصف علشان كدا انا عرفت المتغير i فى السطر الثالث بالكود i = Data.Row فنكتب الى كدا (Cells(i, 1 الصف متغير من خلال i والعمود ثابت وهو عمود A ورقمه 1 اذن النطاق فى اول لفه للكود هيكون من A2:A2 وشرط الاحصاء هو Data اللى هى قيمة الخلية A2 ( عبدالله باقشير) فالمعادله aa هيكون كم 1 طبعا ليه لان عبدالله باقشير فى النطاق من A2:A2 مظهرش غير مره وحده فقط بعد كدا الكود هينتقل الى السطر التالى وهو If aa = 1 Then استخدمت If لاختبار قيمة aa هل هى تساوى 1 أو لا اذا كانت 1 نفذ السطر اللى بعده واذا مش تساوى 1 اقفل if وانتقل الى Next طبعا فى اللفه الاولى اللى احنا فيها دلوقتى aa = 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 كدا فى اول لفه للحلقه دخل اسم عبدالله باقشير فى العمود الاول للكمبوبوكس ودخل كود العميل وهو 101 فى العمود الثانى للكمبوبوكس هيقفل If ثم ينتقل الى السطر التالى وهو Next Next تعنى ارجع للحلقه For Each مره اخرى فلما يرجع هيكون Data تساوى قيمة A3 ثم ينتقل الى السطر التالى وهو i = Data.Row دلوقتى Data هى A3 والخلية A3 كم رقم الصف بتاعها هو الصف رقم 3 أذن i = 3 هينتقل الى السطر اللى بعده وهو سطر المعادله aa = Application.WorksheetFunction.CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data) (Cells(2, 1 اللى هى A2 و (Cells(i, 1 المتغير i دلوقتى رقمه 3 اذن (Cells(3, 1 وهى تعنى الخلية A3 يعنى نطاق هو من A2:A3 وشرط الاحصاء هو Data وقيمتها الحاليه فى هذه الفه A3 (ياسر خليل ) كم مره ظهر اسم ياسر خليل فى النطاق من A2:A3 ظهر مره وحده اذن المتغير aa = 1 الكود هينتقل الى السطر التالى If aa = 1 Then طبعا الشرط محقق لان aa = 1 فهينفذ السطريين التاليين .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value يعنى هيدخل ياسر خليل فى العمود الاول للكمبوبوكس وهيدخل الكود بتاعه 102 فى العمود الثانى للكمبوبوكس هيقفل If ثم ينتقل الى السطر التالى وهو Next Next تعنى ارجع للحلقه For Each مره اخرى فلما يرجع هيكون Data تساوى قيمة A4 ثم ينتقل الى السطر التالى وهو i = Data.Row دلوقتى Data هى A4 والخلية A4 كم رقم الصف بتاعها هو الصف رقم 4 أذن i = 4 هينتقل الى السطر اللى بعده وهو سطر المعادله aa = Application.WorksheetFunction.CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data) (Cells(2, 1 اللى هى A2 و (Cells(i, 1 المتغير i دلوقتى رقمه 4 اذن (Cells(4, 1 وهى تعنى الخلية A4 يعنى نطاق هو من A2:A4 وشرط الاحصاء هو Data وقيمتها الحاليه فى هذه الفه A4 (عبدالله باقشير ) كم مره ظهر اسم عبدالله باقشير فى النطاق من A2:A4 ظهر مرتين اذن المتغير aa = 2 الكود هينتقل الى السطر التالى If aa = 1 Then طبعا الشرط لم يتحقق لان aa = 2 فمش هينفذ السطريين التاليين لان انا مش عايز الاسم يكرر فى الكمبوبوكس يظهر فقط مره وحده .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value هيقفل If ثم ينتقل الى السطر التالى وهو Next Next تعنى ارجع للحلقه For Each مره اخرى فلما يرجع هيكون Data تساوى قيمة A5 ثم ينتقل الى السطر التالى وهو i = Data.Row دلوقتى Data هى A5 والخلية A5 كم رقم الصف بتاعها هو الصف رقم 5 أذن i = 5 هينتقل الى السطر اللى بعده وهو سطر المعادله aa = Application.WorksheetFunction.CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data) (Cells(2, 1 اللى هى A2 و (Cells(i, 1 المتغير i دلوقتى رقمه 5 اذن (Cells(5, 1 وهى تعنى الخلية A5 يعنى نطاق هو من A2:A5 وشرط الاحصاء هو Data وقيمتها الحاليه فى هذه الفه A5 (محمد حسن المحمد) كم مره ظهر اسم محمد حسن المحمد فى النطاق من A2:A5 ظهر مره وحده اذن المتغير aa = 1 الكود هينتقل الى السطر التالى If aa = 1 Then طبعا الشرط محقق لان aa = 1 فهينفذ السطريين التاليين .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value يعنى هيدخل محمد حسن المحمد فى العمود الاول للكمبوبوكس وهيدخل الكود بتاعه 103 فى العمود الثانى للكمبوبوكس هيقفل If ثم ينتقل الى السطر التالى وهو Next Next تعنى ارجع للحلقه For Each مره اخرى فلما يرجع هيكون Data تساوى قيمة A6 ثم ينتقل الى السطر التالى وهو i = Data.Row دلوقتى Data هى A6 والخلية A6 كم رقم الصف بتاعها هو الصف رقم 6 أذن i = 6 هينتقل الى السطر اللى بعده وهو سطر المعادله aa = Application.WorksheetFunction.CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data) (Cells(2, 1 اللى هى A2 و (Cells(i, 1 المتغير i دلوقتى رقمه 5 اذن (Cells(6, 1 وهى تعنى الخلية A6 يعنى نطاق هو من A2:A6 وشرط الاحصاء هو Data وقيمتها الحاليه فى هذه الفه A6 (عبدالعزيز البسكرى) كم مره ظهر اسم عبدالعزيز البسكرى فى النطاق من A2:A6 ظهر مره وحده اذن المتغير aa = 1 الكود هينتقل الى السطر التالى If aa = 1 Then طبعا الشرط محقق لان aa = 1 فهينفذ السطريين التاليين .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value يعنى هيدخل عبدالعزيز البسكرى العمود الاول للكمبوبوكس وهيدخل الكود بتاعه 104 فى العمود الثانى للكمبوبوكس هيقفل If ثم ينتقل الى السطر التالى وهو Next Next تعنى ارجع للحلقه For Each مره اخرى فلما يرجع هيكون Data تساوى قيمة A7 ثم ينتقل الى السطر التالى وهو i = Data.Row دلوقتى Data هى A7 والخلية A7 كم رقم الصف بتاعها هو الصف رقم 7 أذن i = 7 هينتقل الى السطر اللى بعده وهو سطر المعادله aa = Application.WorksheetFunction.CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data) (Cells(2, 1 اللى هى A2 و (Cells(i, 1 المتغير i دلوقتى رقمه 7 اذن (Cells(7, 1 وهى تعنى الخلية A7 يعنى نطاق هو من A2:A7 وشرط الاحصاء هو Data وقيمتها الحاليه فى هذه الفه A7 (ياسر خليل) كم مره ظهر اسم ياسر خليل فى النطاق من A2:A7 ظهر مرتين اذن المتغير aa = 2 الكود هينتقل الى السطر التالى If aa = 1 Then طبعا الشرط لم يتحقق لان aa = 2 فمش هينفذ السطريين التاليين لان انا مش عايز الاسم يكرر فى الكمبوبوكس يظهر فقط مره وحده .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value هيقفل If ثم ينتقل الى السطر التالى وهو Next Next طبعا مش هيرجع فى هذه المره الى الحلقه لان النطاق انتهى وهينتقل الى End With كدا الكود انتهى وانا بصراحه انتهيت معاه من كتر اللف طبعا الكود بينفذ الكلام ده فى لمح البصر دون ان تشعر ولكن لو مساحه النطاق كبير مثلا من A2:A1000 سوف تبدأ تشعر ببطئ الكود ممكن مثلا ياخد 30ثانيه اخر شئ طبعا الكود ده وقت تنفيذه انت اللى بتحدده ولكن على سبيل المثال انا عايز اكتبه فى حدث تشغيل الفورم فيكون كالتالى Private Sub UserForm_Initialize() With ComboBox1 For Each Data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) i = Data.Row aa = Application.WorksheetFunction.CountIf(Sheet1.Range(Cells(2, 1), Cells(i, 1)), Data) If aa = 1 Then .AddItem Data .List(.ListCount - 1, 1) = Data.Offset(0, 1).Value End If Next End With End Sub وعند تشغيل الفورم ستجد الصوره التاليه لاحظ فى الصوره ان الكمبوبوكس يعرض فقط الاسماء دون تكرار ********************************************************************************************* والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس الطريقه القادمه هنعرف ازاى نجلب البيانات بالكمبوبوكس دون تكرار بطريقه اخرى انتظرونا تقبلوا تحياتى
    1 point
  28. الطريقه الٍسادسه :- تعبئه الكمبوبوكس باستخدام الحلقه التكراريه 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
  29. الطريقه الثانيه :- استخدام النطاقات المعرفه هنشوف دلوقتى من خلال الصورتين التاليتين ازاى بنعرف مدى ونسميه باسم محدد شاهد الصور ازاى بقى نستخدم هذه الاسم فى تعبئة الكمبوبوكس يوجد طريقتين 1- من شاشة الخصائص اثناء التصميم شاهد الصوره 2- من خلال كتابة الاكواد فى البرمجه مثلا فى حدث فتح الفورم Private Sub UserForm_Initialize() ComboBox1.RowSource = "اوفيسنا" End Sub كما تشاهدون اننا كتبنا اوفيسنا اللى هو اسم النطاق ولكن بين علامتى تنصيص " اوفيسنا " يالا يا شباب جربوا الدرس وابعتو الاجابه على موضوع الردود " اتمنى لكم التوفيق " ********************************************************************************************************** والى لقاء اخر مع الطريقه الثالثه انتظرونا يوجد مفاجأت
    1 point
  30. 23- الخاصيه ( ShowDrop Button When ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهورعلامة الـ ComboBox عند عرض الفورم شاهد الصورة توضح لك الامر ************************************************************************************************************* 24- الخاصيه ( Style ):- وهى بنظرى من اهم الخصائص للكمبوبوكس زى ما احنا عارفين لفتح القائمة الخاصه بالكمبوبوكس للاختيار منها لابد من الضغط على السهم لتفتح القائمه ولكن هذه الخاصيه تتيح للمستخدم التحكم فى وقت فتح القائمة الخاصه بالكمبوبوكس فلها خيارين الخيار الاول Fm StyleDropDown Combo - 0 :- هو الافتراضى لابد من الضغظ على السهم لفتح القائمة كما تتيح للمستخدم كتابة اى شئ بالكمبوبوكس غير موجود بالقائمه بمعنى لا تلزم المستخدم من الخيار من القائمة والخيار الثانى Fm StyleDropDown List - 2 : -هو فتح القائمة من خلال الضغط على السهم او بمجرد وقوف مؤشر الماوس على الكمبوبوكس وكمان ميزة ثالته وهى مهمه جدا هو انه لا يمكن للمستخدم كتابة اى شئ فى الكمبوبوكس يعنى كانك عامل خاصيه حمايه للكمبوبوكس ولا سبيل امام المستخدم الا من الاختيار من القائمه ******************************************************************************* 25-الخاصيه (Text Align) :- وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه النص ( المحازاه للنص )داخل الـكمبوبوكس هل يكون يميناً أو يساراً أو وسط الـكمبوبوكس لو ذهبت للخصائص وعند الخاصيه Text Align ستجد سهم اضغط عليه ستجد 3 خيارات امامك وهى fm Text Align Left -1 عند الاختيار ستجد ان اتجاه النص داخل ComboBox يبداء من اليسار fm Text Align Center -2 عند الاختيار ستجد ان اتجاه النص داخل ComboBox فى المنتصف fm Text Align Right -3 عند الاختيار ستجد ان اتجاه النص داخل ComboBox يبداء من اليمين ******************************************************************************************** 26-الخاصيه (Tab index ) وهذه الخاصيه تتيح للمستخدم ترتيب التنقل بين الازرار على الفورم بعد الخروج منها من خلال الزر انتر ويمكن تعطيل هذه الخاصيه من خلال استخدام الخاصيه Tab stop = True هحاول اشرحها بشكل مبسط بفرض عندك فورم أنشئت فيه 3 عناصر ( Combobox1 - Textbox2 - Textbox1 )على نفس الترتيب فأن الفيجوال بيسك بشكل افتراضى يقوم بترتيب التنقل بينهم حسب ترتيب أنشائهم فعند تشغيل الفورم وانت واقف فى Textbox1 وضغط انتر سينتقل مؤشر الماوس الى Textbox2 ثم ضغط انتر سينتقل مؤشر الماوس الى Combobox1 فلو نا عايز وانا واقف فى Textbox1 واضغط انتر ينتقل الى Combobox1 وليس Textbox2 هنا تاتى اهميه الخاصيه Tab index اذهب لشاشة تصميم الفورم فى الفيجوال وحدد Textbox2 وفى الخاصيه Tab index اكتب رقم 4 ثم حدد Combobox1 ومن الخاصيه Tab index له اكتب رقم 2 ثم ارجع وحدد Textbox2 وفى الخاصيه Tab index اكتب رقم 3 بدلا من 4 وبكدا عند تشغيل الفورم والوقوف فى Textbox1 والضغط انتر سينتقل مؤشر الماوس الى Combobox1 وليس Textbox2 ارجوا ان تكون وضحت الفكره 27-الخاصيه (Tab Stop ) وهذه الخاصيه تحمل خيارين True و False عندد اختيار True يتم تعطيل خاصيه Tab index وعند اختيار False ٍسوف تفعل خاصيه Tab index للتنقل بين الازرار حسب الترتيب الذى ترغب فيه ******************************************************************************************** 28- الخاصيه ( ٍِSpecial Effect ) هذه الخاصيه من الخصائص الهامه للـ Combobox وهى تعطى اشكال مبهره ومميزه للـ Combobox ولها خمس اشكال اختر منها ما يناسب ذوقك شاهد الصوره التاليه **************************************************************************
    1 point
  31. السلام عليكم ورحمة الله وبركاته سوف نقوم بإذن الله تعالى بعمل سلسة من الفيديوهات التعليمية سيكون قسم منها على شكل دروس متلاحقة أجزاء ومنها مواضيع مختلفة متنوعة في فيديو واحد سيتم بعون الله تعالى نشرها بشكل منظم مرفقة بملفات العمل الخاصة بها أسأل الله أن أكون قد أسهمت في تقديم شيء أحتسبه عنده سبحانه بما أن التثبيت للمشاركة بدأ بعد نشر عدة فيديوهات سوف نتبع سياسة فيديو جديد + فيديو قديم الى تغطية الفيديوهات السابقة في نفس المشاركة هذه وبعدها يبدأ كل جديد **************************** فيديو اليوم الجديد اسخراج كشف حساب الفيديو الثالث مشاهدة مفيدة وممتعة
    1 point
  32. 1 point
×
×
  • اضف...

Important Information