زياد علي قام بنشر مارس 18, 2010 قام بنشر مارس 18, 2010 بسم الله والصلاة والسلام على رسول الله اللهم علمنا ما ينفعنا ،،، وانفعنا بما علمتنا ،،، ووفقنا للعلم النافع ،، ولما تحبه وترضاه عنا ،،، وبعد ،،،، فالسلام عليكم أخواني الأعزاء ،،، والله يعلم أنني مشتاق لكم ،،،، فعلى بركة الله نفتتح بهذه المشاركة المتواضعة والمباركة بحول الله وقوته الا وهي : معالم على طريق البرمجة بلغة VBA الفكرة : - سنقوم بتدوين بعض الأكواد البسيطة التي تنير لنا جميعاً الطريق للبرمجة بلغة الـ VBA : ============================================================== و أتمنى من الجميع أن يشاركوني هذا العمل حتى تكتمل الفائدة للجميع ============================================================== بسم الله نبدأ : اكواد تخص كائن التطبيق : كود: Sub zezo() Application.Caption = "ziad ali" End Sub يقوم الكود بتوظيف الخاصية Caption على كائن التطبيق أي أن هذه الخاصية تقوم بتغيير الاسم العام للبرنامج فبدلا من كلمة مايكرسوفت سيظهر ziad ali ... كود: Sub zezo2() Application.DisplayFormulaBar = False End Sub تقوم هذه الخاصية DisplayFormulaBar بإخفاء شريط الصيغ عند استخدام False ،، وبالمقابل إظهاره عند استخدام …TRUE كود: Sub zezo3() Application.DisplayFullScreen = True End Sub تقوم هذه الخاصية DisplayFullScreen بجعل التطبيق في وضع ملء الشاشة وللرجوع طبعاً يجب ان نجعل القيمة False .. كود: Sub zezo4() Application.DisplayRecentFiles = False End Sub تقوم هذه الخاصية DisplayRecentFiles بعدم عرض المستندات الأخيرة في كائن تطبيق اكسيل وإذا أردنا إستعراضها طبعاً نجعلها تاخد القيمة TRUE .كالتالي : كود: Sub zezo5() Application.DisplayRecentFiles = True End Sub تقوم هذه الخاصية WindowState بتحديد حالة كائن التطبيق من حيث التكبير والتصغير والوضع الطبيعي كود: Sub zezo6() Application.WindowState = xlMaximized End Sub كود: Sub zezo7() Application.WindowState = xlMinimized End Sub كود: Sub zezo8() Application.WindowState = xlNormal End Sub ================================================================================================= اكواد تخص كائن ورقة العمل: كود: Sub zezo9() Worksheets("sheet1").Visible = False End Sub يقوم الكود بإخفاء ورقة العمل المسماه sheet1 كود: Sub ZEZO10() Worksheets("sheet1").Visible = True End Sub يقوم الكود بإظهار ورقة العمل المسماه sheet1 كود: Sub zezo11() Worksheets(1).Name = "sheet1" End Sub يقوم الكود بإعادة تسمية الورقة 1 في ترتيب اكسيل بـ sheet1 كود: Sub zezo12() Worksheets("sheet1").Delete End Sub يقوم الكود بحذف الورقة المسماه sheet1 كود: Sub zezo13() Worksheets(1).Activate End Sub يقوم الكود بتنشيط الورقة المسماه sheet1 كود: Sub zezo14() Worksheets.Add End Sub يقوم الكود بإضافة ورقة جديدة كود: Sub zezo15() Worksheets(3).Copy End Sub يقوم الكود بنسخ الورقة الثالثة ضمن ترتيب ورقات المصنف ... =============================================================================================== والأن مع الأكواد الشائعة للإشارة لهذا الكائن المسمى RANGE : الكائن من نوع النطاق أو ما يسمى بالمدى أو المجال وهو الأكثر شيوعاً ، أي أن أغلب الأكواد تشير بكثرة لهذا النوع من الكائنات ،،،: كود: Sub zezo16() Range("d2:i10").Select End Sub يقوم الكود بتحديد المجال المشار إليه بين القوسين كود: Sub zezo17() Range("d2:i10").Columns(2).Select End Sub يقوم الكود بتحديد العمود الثاني بالمجال المشار إليه بين قوسين كود: Sub zezo18() Range("b10:f15").Columns(2).Value = 0 End Sub يقوم الكود بكتابة قيمة صفر في العمود الثاني من المجال المحدد بين القوسين كود: Sub zezo19() Range("c5:c10").Rows(1).Value = 100 End Sub يقوم الكود بكتابة قيمة 100 في الصف الأول من المجال المحدد بين القوسين وهو هنا الخلية C5 كود: Sub zezo20() Range("d2:i10").Cells(2, 3).Select End Sub يقوم الكود بتحديد الخلية الواقعة في الصف الثاني من العمود الثالث داخل المجال المحدد بين القوسين وهي هنا الخلية F3 كود: Sub zezo21() Range("f10:i15").Cells(3, 2).Value = 200 End Sub يقوم الكود بكتابة قيمة 200 بالخلية الواقعة في الصف الثالث من العمود الثاني داخل المجال المحدد بين القوسين وهي هنا الخلية G12 كود: Sub zezo22() Worksheets(3).Range("f1:h5").Value = 100 End Sub يقوم الكود بكتابة قيمة 100 في المجال المحدد من الورقة الثالثة من أوراق المصنف كود: Sub zezo23() Range("d2:i10").Clear End Sub يقوم الكود بمسح محتويات المجال المشار إليه بين قوسين والله من وراء القصد ============================ يتبع بإذن الله======================= 3
خالد القدس قام بنشر مارس 18, 2010 قام بنشر مارس 18, 2010 السلام عليكم ألف حمد لله على سلامتك وعودتك أستاذ الإبداع في أرض الإبداع زياد علي عوداً حميداً مباركاً إذا كانت العودة دائما بهذا العبق من الشروحات التي تقول للشمس أبعدي عني فنتمنى أن تغيب كل يوم وتعود كل يوم ونذكرك بتوقيع أستاذنا العزيز طارق إذا هبت رياحك فاغتنمها فلا تدري متى يأتي السكون جعلك الله مشعلاً للعلم ونورا لا ينطفأ
زياد علي قام بنشر مارس 18, 2010 الكاتب قام بنشر مارس 18, 2010 السلام عليكم جميعاً اخي ابو خليل اختي نور الرحمة اخي شريف اخي خالد القدس جزاكم الله عني خير الجزاء بهذا الكلام الطيب ويا اخي خالد القدس ،، لقد اخلجلتم تواضعاً بهذا الكلمات الجميلة والتي اتمنى أن تكون قد صادفت أهلها لك مني كل المودة والتقدير ،،، =========================================================================================== أتمنى من الجميع إثراء المشاركة بوضع الأكواد التي تعلموها مع شرح بسيط للكود ،،، ===========================================================================================
ahmfasil2009 قام بنشر مارس 19, 2010 قام بنشر مارس 19, 2010 مشكور اخى وجهد رائه جزاك الله عنا كل خير لكن لابد ان توضح للمبتدئين امثالى اين يكتب الكود زادك الله من علمه
أبوعبد الله قام بنشر مارس 19, 2010 قام بنشر مارس 19, 2010 أخي الحبيب / زياد علي مرحباً بك وقد افتقدناك جميعاً بدون شك ونتمنى أن تكون بكل خير فعوداً حميداً وجزاك الله كل خير على المشاركة القيمة مع كل الأمنيات بمزيد من النجاحات والتوفيق . أخوك أبو عبدالله
ياسر خليل أبو البراء قام بنشر مارس 19, 2010 قام بنشر مارس 19, 2010 تسلم الأيادي يا أخ زياد وربنا يجعلك دايما في ازدياد ويبارك في أهلك والأولاد ويرزقك حب العباد أخوك أبو البراء
زياد علي قام بنشر مارس 20, 2010 الكاتب قام بنشر مارس 20, 2010 السلام عليكم اخي ahmfasil2009 جزاك الله خير على هذا المرور الطيب وبالنسبة لسؤالك تجد الإجابة الشافية عليه إن شاء الله من استاذنا الفاضل هادى محمد المامون سالم على هذا الرابط : http://www.officena.net/ib/index.php?showtopic=12203&st=0&p=52207&#entry52207 اخي أبوعبدالله بورك فيك وجزاك الله عنا كل خير ،،، على هذه الكلمات الطيبة ،،،ويعلم الله أن لك معزة خاصة لدي يا استاذي الفاضل ،،، شكراَ شكراً لك، و بالمناسبة لقد ارسلت اليك ايميل خاص يوم أمس،،، اخي ياسر خليل الله يجزيك الجنة على هذا الدعاء الطيب أخي الحبيب ،،، بارك الله مروركم الطيب هذا =======================================================================
زياد علي قام بنشر مارس 20, 2010 الكاتب قام بنشر مارس 20, 2010 والأن عودٌ على بدء : نستكمل الحديث عن الأكواد البسيطة التي ستنير لنا طريقاً نلتمسه في عالم البرمجة بلغة vba بحول الله وقوته و لا يزال الحديث مستمراً عن الكائن من نوع RANGE ملاحظة : ممكن الاستغناء فيما يلي من الأكواد عن عبارة : Worksheets(3). وذلك بذكر المجال مباشرة ،،،، ======================================================================= Sub zezo24() Worksheets(3).Range("a1:c10").Font.Bold = True End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف قم بأختيار خاصية bold تغليظ الخط Sub zezo25() Worksheets(3).Range("a1:c10").Font.Italic = True End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف قم باختيار خاصية Italic إمالة الخط Sub zezo26() Worksheets(3).Range("a1:c10").Font.Underline = True End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف قم باختيار خاصية Underline وضع خط تحت البيانات Sub zezo27() Worksheets(3).Range("a1:c10").Font.Name = " Arabic Typesetting" End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف قم باختيار نوع الخط Arabic Typesetting Sub zezo28() Worksheets(3).Range("a1:c10").Font.Size = 18 End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف قم باختيار حجم الخط 18 Sub zezo29() Worksheets(3).Range("a1:c10").Columns(1).Font.Size = 18 End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف بالعمود الأول فقط قم باختيار حجم الخط 18 Sub zezo30() Worksheets(3).Range("a1:c10").Rows.Font.Bold = True End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف لجميع صفوف المجال قم باختيار خاصية bold تغليظ الخط Sub zezo31() Worksheets(3).Range("a1:c10").Rows(3).Font.Bold = True End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف بالصف الثالث فقط قم باختيار خاصية bold تغليظ الخط Sub zezo32() Range("f20:i25").Cells.Font.Italic = True End Sub عند المجال المحدد من الورقة الثالثة في أوراق المصنف بجميع الخلايا قم باختيار خاصية Italic إمالة الخط Sub zezo33() ActiveCell.Formula = "=C1+D2" End Sub عند الخلية الحالية النشطة اكتب المعادلة المذكورة ============================================================================== أتمنى من الجميع إثراء المشاركة بوضع الأكواد التي تعلموها مع شرح بسيط للكود ،،، ============================================================================== وفقنا الله واياكم لما يحب ويرضاه مودتي للجميع ===========================يتبع ان شاء الله==================================== 1
طارق محمود قام بنشر مارس 20, 2010 قام بنشر مارس 20, 2010 (معدل) السلام عليكم ماشاء الله أخي زياد بوركت وبورك مسعاك وفقك الله لمزيد من الخير والنفع تم تعديل مارس 21, 2010 بواسطه TareQ M
زياد علي قام بنشر مارس 20, 2010 الكاتب قام بنشر مارس 20, 2010 السلام عليكم اخي الحبيب طارق انت أستاذي ومعلمي ولله الفضل علينا جميعاً أن علمنا ما لم نكن نعلم اشكركم جزيل الشكر على مروركم العطر ======================= مودتي وتقديري
خالد القدس قام بنشر مارس 20, 2010 قام بنشر مارس 20, 2010 السلام عليكم أستاذ زياد شرح موفق للغاية نؤيدك ونشد من أزرك سر على بركة الله وداوم فخير العمل أدومه وإن قل جعله الله في موازين حسناتك
شامل2 قام بنشر مارس 21, 2010 قام بنشر مارس 21, 2010 السلام عليكم ziad ali بارك الله فيك اتمنى ان يتم التواصل باكواد اخرى اجمل
زياد علي قام بنشر مارس 21, 2010 الكاتب قام بنشر مارس 21, 2010 السلام عليكم اخي الحبيب خالد القدس دائماً منورنا والله بردودك البهية العطرة والحكاية كلها اننا نريد التدرج بالأعضاء ممن ليس له أي دراية بالبرمجة فحبة حبة اخي الحبيب alshamal وفيك بارك الله اخي العزيز بإذن الله الموضوع مستمر القصة وما فيها كما ذكرت التدرج وكذلك والله وقتي لا يسمح وبارك الله في الجميع اخي dddd ده نورك والله هو اللي أكثر إشراق ،،، أخي الحبيب بارك الله فيك على المرور الطيب شكراً شكراً ،،، وبارك الله في الجميع مودتي وتقديري للجميع
زياد علي قام بنشر مارس 21, 2010 الكاتب قام بنشر مارس 21, 2010 بسم الله والصلاة والسلام على رسول السلام عليكم والأن عودُ على بدء : لا زال الحديث قائماً عن كيفية الإشارة إلى الكائن من النوع نطاق أو مدى RANGE فيرجى زيادة درجة الانتباه فيما يلي : بسم الله نبدأ : Sub zezo34() Range("h10").FormulaR1C1 = "=r[-1]c[-1]+r[1]c[1]" End Sub لإدراج المعادلة بمقدار إزاحة اقل من صف وعمود لليمين + إزاحة اكبر من صف وعمود لليسار للخلية المختارة وبالتالي سيكون الناتج معادلة G9+I11 Sub zezo35() Range("h10").FormulaR1C1 = "=r[-2]c[-1]" End Sub لإدراج المعادلة بمقدار إزاحة اقل من صفين وعمود لليمين للخلية المختارة وهي ستكون قيمة الخلية G8 Sub zezo36() Range("h10").FormulaR1C1 = "=rc[1]+rc[2]" End Sub لإدراج المعادلة بمقدار إزاحة أكبر من صف وعمود – لليسار- + إزاحة اكبر من صفين عمودين لليسار للخلية المختارة وبالتالي سيكون الناتج معادلة I10+J10 =============================================== ممتاز ممتاز ،،، إذا استوعبنا ما سبق فأنه من السهل استيعاب القادم بإذن الله : Sub zezo37() Worksheets(3).Range("H10").Offset(1, 2).Value = 100 End Sub لإدراج القيمة 100 بمقدار إزاحة زائد عمودين لليسار وصف من الخلية المختارة وهي ستكون الخلية J11 والأن مع جمال الإختصار في برمجة الأكسيل فبدلاً من الأسطر المتعددة يمكن الإشارة للمجال المختار بهذه الجملة البسيطة WHIT : وهي جملة تستخدم لتخصيص المجال المحدد ،،، أي عند المجال المعين بالخاصية المطلوبة افعل كذا : ............... ............... ............... مجموعة من الأوامر Sub zezo38() With Worksheets(3).Range("A1:h10").Font .Bold = True .Italic = True .Underline = True .Name = "ARIAL" .Size = 20 End With End Sub استخدمنا خاصية WITH لتخصيص المجال المحدد بالخاصية المطلوبة FONT لعمل ما يلي من أوامر بعد سطر التخصيص ويجب إنهاء جملة التخصيص WITH بجملة END WITH =========================================================================== Sub zezo39() Worksheets(5).UsedRange.Font.Size = 16 End Sub تستخدم هذه الخاصية عند وجود بيانات متقطعة فهي تشير لكامل المجال المستخدم Sub zezo40() Worksheets(3).Range("a1").CurrentRegion.Font.Size = 16 End Sub تستخدم هذه الخاصية عند وجود بيانات متقطعة أي البيانات المتصلة فقط بالمجال المذكور هي التي سيتم تنفيذ المطلوب عليها Sub zezo41() Worksheets(3).Range("C2:G10").BorderAround ColorIndex:=5 End Sub يقوم الكود بإحاطة المجال المختار بحدود باللون الأزرق Sub zezo42() Worksheets(3).Range("C2:G10").Interior.ColorIndex = 6 End Sub يقوم الكود بتلوين المجال المحدد باللون الأصفر وعلى ذكر ColorIndex قد يتسأل البعض كيف يمكن معرفة رقم اللون المختار ؟؟؟ الصورة المرفقة توضح ذلك : ============================================================================== أتمنى من الجميع إثراء المشاركة بوضع الأكواد التي تعلموها مع شرح بسيط للكود ،،، ============================================================================== مع مودتي وتقديري للجميع ،،، والحمد لله رب العالمين ،،،، ===================يتبع إن شاء الله===========================
طارق محمود قام بنشر مارس 21, 2010 قام بنشر مارس 21, 2010 (معدل) السلام عليكم أخي زياد أنا علي سبيل المثال عندي مجموعة أكواد صغيرة وأعتقد أن كثير من الإخوة اعضاء المنتدي لهم أكواد صغيرة خاصة بهم تم تفصيلها لتناسب حاجاتهم وطبيعة عملهم قد يكون الكود غاية في الصغر ولكنه مفيد وعلي هذا المنوال أخصص لكل من هذه الأكواد shortcut key فهذا ctrl-k وذاك ctrl-j طبعا غير الكابيتال ctrl-K; ctrl-J أضعها كلها في ملف Personal يتم فتحه أوتوماتيكيا مع الإكسل المهم أود المساهمة بكود يمكن إستخدامه كثيرا لمن يستعمل اللغة الإنجليزية يحول حالة الأحرف داخل المجال الذي تم إختياره إلي حالة عنوان (أي كابيتال لأول حرف من كل كلمة) المعروف أن الدالة Proper في الإكسل تقوم بنفس الوظيفة ولكن إذا كانت البيانات المطلوب تحويلها في أماكن غير منظمة فهذا الكود يكون أسرع واكثر إستخداما فإذا خصصت له مثلا ctrl-j ثم تظلل المجال وتضغط ctrl-j عذرا للإطالة وهذا هو الكود Sub Adj_Proper() For Each se In Selection se.Value = WorksheetFunction.Proper(se) Next End Sub تم تعديل مارس 21, 2010 بواسطه TareQ M 2
Tamer Gamal قام بنشر مارس 21, 2010 قام بنشر مارس 21, 2010 (معدل) شكرا جدا يا زيزو وتسلم ايدك على هذا الشرح الوافى وشكرا جدا يا استاذ طارق على هذة الاضافة تم تعديل مارس 21, 2010 بواسطه Tamer Gamal
زياد علي قام بنشر مارس 21, 2010 الكاتب قام بنشر مارس 21, 2010 السلام عليكم منور منور استاذي الفاضل طارق بارك الله فيك ،،، وشرفتنا بهذه الإضافة الله يعطيك الصحة والعافية ،، شكراً على هذه الدالة المصممة بالكود الصغير،،، وإضافة لما تفضلت به حضرتك بالنسبة لهذه الأكواد البسيطة أنهارويداً رويداً سوف تنير طريق البرمجة لاعضاء المنتدى ،،،، فبدل من كود بعدة أسطر ،،، لا يستطيع كثير من الأعضاء فهم معناه نضع كود صغير من سطر ونقوم بشرحه ،،، ولقد حبذت هذه الطريقة بدل من الخوض في تجربة عمل دورة لإن الدورة إلتزام وتحتاج لمتابعة ،،، وإذا تم التوقف عنها فجأة لأي سبب خارجي فإن متتبع الدورة ستظل معلومته ناقصة ،،، خذ على سبيل المثال عندما تريد الحديث عن المتغيرات فكم سيستغرق منك الوقت ،،، لقد قمت بتجربة كودكم الصغير وهو يعمل بكفاءة عالية ،،، طبعاً بعد تحديد المجال المطلوب ،، أشكرك جزيل الشكر ،،، وأحسن ما في الموضع نحن نتحدث عن الإختصار والإيجاز وها انا أسهب القول ،،، ولكن كل ذلك حتى تبقى الفكرة واضحة ،،، بارك الله فيك استاذي الفاضل ،،، وأنا شخصياً انتظر المزيد ،،، مودتي وتقديري لشخصكم العزيز ،،،
زياد علي قام بنشر مارس 21, 2010 الكاتب قام بنشر مارس 21, 2010 السلام عليكم استاذي تامر جمال الله يسلمك من كل مكروه ،،، وبإذن الله الموضوع ما زال في أوله ،،، إن كان في العمر بقية ،،، تحياتي ايها الغالي ،،،
أبو جديد قام بنشر مارس 21, 2010 قام بنشر مارس 21, 2010 ما شاء الله تبارك الله عليك أخي/ زياد أحسنت والله يعطيك العافية واصل والله يعطيك القوة
هشام شلبى قام بنشر مارس 21, 2010 قام بنشر مارس 21, 2010 السلام عليكم ============ موضوع جميل والاجمل الطريقة التى يعرض بها بارك الله لك فى وقتك وعافيتك تقبل تحياتى
طارق محمود قام بنشر مارس 22, 2010 قام بنشر مارس 22, 2010 (معدل) السلام عليكم إخواني الأعزاء هذا الكود أيضا تظلل مجال في الصفحة قبل تنفيذه ويقوم بعمليتين 1. محو البيانات فقط من أرقام ونصوص للمجال المحدد (مع الإحتفاظ بالتنسيق والفورمات) 2. الإحتفاظ بمجموع الأرقام إن وجدت في الخلية النشطة وإلا يعطي صفرا تفضلوا Sub Summ_t() x = Application.WorksheetFunction.Sum(Selection) Selection.ClearContents ActiveCell.Value = x End Sub تم تعديل مارس 23, 2010 بواسطه TareQ M
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.