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

هل تود ان تكون مبرمجا علي الاكسل


الردود الموصى بها

السلام عليكم

اخي هشام شلبي

بارك الله فيك مجهود تشكر عليه

الاخ سامي عطا

كلامك مضبوط و لا نريد ان ندخل في اكواد ضخمه تفقدنا هدف المقصود من الموضوع

فمن يريد التعلم بالفعل لابد له من البدء بهذه الاكواد البسيطه و مع الوقت سيفهم ويتعلم الاكواد الاكبر فالاكبر

ومقتبس من كلامك الاتي للرد عليه

أعتذر لو كان رأيى مخالفاً لبعض الآراء ولكنى لا أقصد به إلا الخير

وفى هذا المجال دعنى أسأل سؤال فى البداية

ما هى الطرق المختلفة (الأوضاع المتنوعة) لوضع الكود فى مكانه

مثلاً الكود الذى ينفذ بمجرد فتح الملف والكود الذى ينفذ بضغط زر والكود الذى ينفذ فى ورقة محددة والكود الذى ينفذ فى جميع أوراق الملف

لم يكن رايك مخالفا اخي و هذا هو بالفعل هدفنا

اما سؤالك فهو سؤال هام جدايستحق الاجابه عليه فعند تفكيرك لعمل كود يجب معرفتك اين ستضعه و هل ستحتاجه في صفحة اخري ام لا و لا اريد ان اكرر سؤالك و ادعو لي ان تكون اجابتي وافيه

الاجابة

اولا و قبل ان انسي هناك شريطان للادوات التي تحتاجها مثل و ضع زر وربطه بكود او وضع كود له

الشريط الاول و الذي شرحته سابقا و الذي تظهر شريط ادواته من view ثم toolbars ثم تختار control toolbox

اما الشريط الاخر فيظهر بالضغط علي view ثم toolbars ثم تختار Forms

و الفرق بين الاول و الثاني هو ان الاول و يدعي الزر به CommandButton و تغيير اسم الزر يكون عن طريق Properties او الخصائص و التي تستطيع فتح نافذتها عن طريق كليك يمين بالماوس علي الزر في وضع التصميم و التي منها تستطيع التعديل علي اسم الزر و نوع الخط و لون الزر و اشياء كثيره يجب عليك تجربتها

و لكتابة الكود لهذا الزر تضغط عليه مرتان فتظهر لك صفحة محرر الاكواد كا شرحت سابقاو كتابة الكود له فيكون داخل محرر اكواد الشيت الموضوع به الزر و يمكنه استدعاء ماكرو عن طريق الامر call مقترنا باسم الماكرو

اما الزر في شريط الادوات الاخر فهود يسمي Button ولمجرد رسمه علي الصفحة تظهر لك نافذه الخاصة بـ Assign Macro لاختيار ماكرو تم عمله مسبقا فيظهر لك اسمه في هذه النافذه و تضغط علي OK و هكذا تم ربط هذا الزر بهذا المكرو و عند ضغطك علي هذا الزر سيتم عمل الماكرو و يكون وضع التصميم لهذا الزر هو ان تعمل كليك يمن عليه و هنا تسطيع تغير اسمه بتحديد اسمه من علي الزر مباشرة و تغيره و التحكم بجم الفوت من شريط ادوات الاكسل العادي

او يمكنك كتابة كود لهذا الزر فعند ظهور النافذه الخاصة بـ Assign Macro اختر منها New لتكتب الكود الذي تريده لهذ الزر و يكون الكود لهذا الزر

في مديول

و هنا يجب التفرقه بين الكود الذي يكتب داخل صفحة محرر اكواد الشيت و الذي يتم عمله داخل مديول

فالكود المكتوب داخل الشيت فهو يخدم الشيت و الازرار الموجوده داخل الشيت ان كانت مر تبطه بكود مكتوب داخل محرر اكواد الشيت

اما الكود المكتوب داخل المديول فيمكنك من طلبه داخل اي شيت داخل ملف العمل

اكتفي هنا بهذا القدر حتي لا اتشعب في الموضوع

مرفق ملف فيديو لكيفية اظهار الاشرطه

و اي استفسار ارجو التنبيه عليه

و لنكمل بعد ذلك الجزء الباقي

خالص تحياتي

اظهار الاشرطه.rar

رابط هذا التعليق
شارك

مشكور عزيزى الغالى على ردك وإضافاتك

وكما تفضلت هذه المقدمة التى ذكرتها فى مشاركتك السابقة ضرورية جداً وينبغى التوسع فيها

فهى التى سنستخدمها فى كل كود أو محاولة لعمل كود نحتاجه

اشكرك مرة أخرى وفى إنتظار المزيد والمزيد

جارى عمل بعض المحاولات وسوف اضع التساؤلات تباعاً

رابط هذا التعليق
شارك

تحية وسلام للجميع

إسمحولى أولاً أن أطلب منكم إستمرار التفاعل وإرسال التساؤلات وعلى الخبراء أن يكون الجواب بالتفصيل بهدف تعليم التلاميذ أمثالى

سؤالى الآن

كيف يمكن تحويل معادلة إلى كود

كيف يمكن تحويل ماكرو إلى كود

أترك لصاحب الدار حق إختيار الموعد المناسب للإجابة عن السؤالين حسب خطة سيادته الهادفة لتعليم الأكواد بالترتيب من البسيط أولاً

رابط هذا التعليق
شارك

هذا الكود لا يعمل ولا أعرف السبب

المفروض إن الأعمدة من X إلى IV فى أحد الشيتات تختفى بدون زر

Private Sub Workbook_Open()

Columns("x:iv").Select

Selection.EntireColumn.Hidden = True

Range("A1:A1").Select

End Sub

أرجو توضيح أين الخطأ وكيف نتلافاه

مشكور مقدماً

رابط هذا التعليق
شارك

السلام عليكم

اخواني انا اشعر بان التفاعل بطيئ

ومع ذلك ساكمل لفتره و ان لم اجد تفاعلا فساعتبر ان الموضوع ليس له اهميه

و بالتالي سيتم ايقافه

اين تضع الكود

اولا يجب معرفة ما تريد ان يقوم بعمله الكود

فاذا كان الكود يخدم غرض ما بصفحة ما او شيت ما وسيرتبط بزر عندالضغط عليه يتم عمله فهذا ما تم شرحه سابقا

اما اذا اردت ان يكون تاثير الكود عند بداية فتح كامل الملف بان الملف مثلا يفتح علي صفحة معينه مع تحديد

اولا يجب معرفة اماكن الحدث لكل شيت و كذلك الحدث لكامل الملف

اذا قمت بفتح محرر الاكواد كما ذكرنا سابقا ستجد علي اليسار

و ستكون علي الشكل التالي

SHEET1(SHEET1)

SHEET2(SHEET2)

SHEET3(SHEET3)

THISWOKBOOK 
فان ضغطنا علي اي منهم فستظهر صفحة محرر الاكواد الخاصه بهم و ستجد قائمتان منسدلتان تختار من احدهما WORKSHEET اذا كنت قد ضغط مرتان علي اي شيت من الثلاثة شيتات او تختار WORKBOOK عندما تضغط مرتان علي THISWORKBOOK اما الاخري فتختار منها الحدت الذب تريد ان يتم عمل الكود فيه و يجب هنا التفرقة بين محرر اكواد اي شيت و محرر اكواد THISWORKBOOK فالاولي تكون خاصة بما يتم كتابتة للحدوث داخل هذه الصفحة بعينها اما الاخري فما يكتب بها ان لم يتم تحديده يكون المقصود به كامل الملف اهم الاحداث و الشائع استعمالهاناتي اولا بالنسبه للشيتات
Private Sub Worksheet_Activate()


End Sub

و هذان السطران يكتب بينهما الكود الذي يراد عمله لمجرد فتح هذهالصفحة بالذات
Private Sub Worksheet_Change(ByVal Target As Range)


End Sub

و هذان السطران يكتب بينهما الكود الذي يراد عمله عندما يتم التغيير في اي خلية داخل الصفحة ان لم يتم تحدي ذلك [codPrivate Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub e]

و هذان السطران يكتب بينهما الكود الذي يراد عمله عند تحديد اي خليه في كامل الصفحة ان لم يتم تحديد ذلك

ونفس الشيئ بالنسبه ل THISWORKBOOK

مع اختلاف ان ما يكتب في الشيتات كما ذكرنا يخص الشيت الكتوب به اما ما يكتب في ال THISWORKBOOK يخص كافة الملف

و عندما تضغط مرتان علي ال THISWORKBOOK بدلا من ان تختار من القائمة المنسدلة WORKSHEET فستجد بدلا منها WORKBOOK

ارجو الاسئلة في هذه الجزئية للتوضيح

خالص تحياتي

رابط هذا التعليق
شارك

السلام عليكم

اخي يوسف عطا

لك مشاركتان سالت بهما الاولي وكانت الاسئلة

كيف يمكن تحويل معادلة إلى كود

كيف يمكن تحويل ماكرو إلى كود

ليقوم كود بكتابة معادله

نفترض اننا نريد ان الخليه H11 يكون بها معادله تجمع ما قبلها في نفس العمود اي من الخلية H1 الي الخلية H10

و سنقوم هنا بعمل هذا بطرق مختلفة لتوضيح ما سبق

اولا عن طريق زر

قم بادراج زر كما سبق ذكر ذلك و اضغط عليه مرتان سيظهر لك سطرا اتب بينهما الكود ليكون الشكل النهائي بالشكل التالي

Private Sub CommandButton1_Click()

Range("h11").Formula = "=SUM(h1:h10)"

End Sub

عند تحديدد اي خليه في الصفحة المفتوحة افتح صفحة محرر الاكواد و اضغط مرتان علي اسم الصفحة التي تريد وضع الكود بها و اختار من القائمة اليسري WORKSHEET و من اليمني SELECTIONCHANGE ستجدان مؤشر الماوس ينبض بين سطران اكتب بينهما الكود ليكو الشكل النهائي كالتالي
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Range("h11").Formula = "=SUM(h1:h10)"

End Sub

جرب بنفسك و اسئل علي ما يستعصي عليك اما سؤالك الاخر انا فهمت انك سجلت ماكرو و تريد ربطه بزر اذا كان ما فهمته صحيحا فستكون الاجابة كالتالي عندما يتم تسجيل ماكرو فان الماكرو يعطي اسما متسلسلا Macro1 و2 و3 ....الخ اذهب الي الماكرو المسجل و انسخ مابين السطران sub macro1() وend sub وقم بادراج زر و اضغط عليه مرتان و الصق ما تم نسخه بين سطري الزر او اكتب بين سطريه call macro1 و ذلك لاستدعاء عمل الكود
Private Sub CommandButton1_Click()

Call Macro1

End Sub

اما مشاركتك الاخري فقد كان طلبك كالتالي هذا الكود لا يعمل ولا أعرف السبب المفروض إن الأعمدة من X إلى IV فى أحد الشيتات تختفى بدون زر Private Sub Workbook_Open() Columns("x:iv").Select Selection.EntireColumn.Hidden = True Range("A1:A1").Select End Sub أرجو توضيح أين الخطأ وكيف نتلافاه اخي ان تطلب بالكود اخفاء مجموعة اعمده لذا فالخطأ بالكود انك لم تحدد الشيت الذي يتم فيه هذا الاجراء لذا يجب ات يكون الكود بالشكل التالي
Private Sub Workbook_Open()

Sheets("sheet1").Select

Columns("x:iv").Select

Selection.EntireColumn.Hidden = True

Range("A1:A1").Select

End Sub


لك خالص تحياتي

رابط هذا التعليق
شارك

جازاك الله خيراً أخى العزيز صاحب الدار

كذلك جازاكم الله خيراً ايها السادة الضيوف

بعد التحية والسلام لكم جميعاً

الرجاء الإستمرار فى التفاعل مع الموضوع فالموضوع مهم وشيق ومفيد

وبالنسبة لأخى صاحب الدار الرجاء التريث قليلاً قبل إتخاذ قرار عدم إكمال الموضوع فكما ذكرت الموضوع مهم ومفيد جعله الله فى ميزان حسناتك

ولكن نظراً لظروف إنشغال الأخوة هذه الفترة بإمتحانات الثانوية العامة والإمتحانات الجامعية وكذلك كاس العالم فقد تكون هذه الأسباب سبب إعتقادك الذى أتمنى أن لا يكون فى محله بخصوص قلة تفاعل الأخوة مع الموضوع

ولذا فالرجاء الإستمرار والإستمرار والإستمرار طالما هناك فرصة لكى تفيد بخبرتك وعلمك الآخرين

بالنسبة للإجابات على تساؤلاتى السابقة

الف الف الف شكر وجارى التجحربة على الطبيعة ولكن أعمال الإمتحانات بالثانوية العامة تجعلنى مقصر قليلاً فى التفاعل

ولكن أعد بالإستمرار فى التفاعل وإلقاء الاسئلة وإنتظار الإجابات حتى أتمكن مع الوقت من الإجابة عن تساؤلات الأخوة

جازاكم جميعاً عنا خيراً

رابط هذا التعليق
شارك

عجباً

الموضوع متميز ومفيد

لماذا تم إلغاء تثبيته

ولماذا قل تفاعل الأخوة مع الموضوع

أتعشم إعادة التثبيت وإستمرار التجديد فى الموضوع

رابط هذا التعليق
شارك

اخي يوسف عطا ممكن شرح على هذا الملف بة الشرح هو اختيار فصل محدد

من قائمة منسدلة فى شيت اخر يظهر مع اختار فصل 1/1 يظهر معي طلاب 1/1

وهكذا اليك الملف وبة الشرح واريد الشرح لعمل هذا بنفسي ولك جزيل الشكر والتقدير

الصف الاول الاعدادي.rar

رابط هذا التعليق
شارك

اخي يوسف عطا ممكن شرح على هذا الملف بة الشرح هو اختيار فصل محدد

من قائمة منسدلة فى شيت اخر يظهر مع اختار فصل 1/1 يظهر معي طلاب 1/1

وهكذا اليك الملف وبة الشرح واريد الشرح لعمل هذا بنفسي ولك جزيل الشكر والتقدير

أخى العزيز مصطفى بك الفيومى

بعد التحية والسلام للجميع

أعتذر لأن طلبك فوق إمكانياتى

وأنا أنتظر معك أحد الاساتذة لحل هذه المعضلة

ولكن يمكن بسهولة عمل هذا فى نفس الصفحة عن طريق التصفية التلقائية

ولكن بالطبع ليس هذا طلبك

لك تحياتى

رابط هذا التعليق
شارك

السلام عليكم

اخي يوسف عطا

لك مشاركتان سالت بهما الاولي وكانت الاسئلة

كيف يمكن تحويل معادلة إلى كود

كيف يمكن تحويل ماكرو إلى كود

ليقوم كود بكتابة معادله

نفترض اننا نريد ان الخليه H11 يكون بها معادله تجمع ما قبلها في نفس العمود اي من الخلية H1 الي الخلية H10

و سنقوم هنا بعمل هذا بطرق مختلفة لتوضيح ما سبق

اولا عن طريق زر

قم بادراج زر كما سبق ذكر ذلك و اضغط عليه مرتان سيظهر لك سطرا اتب بينهما الكود ليكون الشكل النهائي بالشكل التالي

Private Sub CommandButton1_Click()

Range("h11").Formula = "=SUM(h1:h10)"

End Sub

عند تحديدد اي خليه في الصفحة المفتوحة افتح صفحة محرر الاكواد و اضغط مرتان علي اسم الصفحة التي تريد وضع الكود بها و اختار من القائمة اليسري WORKSHEET و من اليمني SELECTIONCHANGE ستجدان مؤشر الماوس ينبض بين سطران اكتب بينهما الكود ليكو الشكل النهائي كالتالي
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Range("h11").Formula = "=SUM(h1:h10)"

End Sub

جرب بنفسك و اسئل علي ما يستعصي عليك اما سؤالك الاخر انا فهمت انك سجلت ماكرو و تريد ربطه بزر اذا كان ما فهمته صحيحا فستكون الاجابة كالتالي عندما يتم تسجيل ماكرو فان الماكرو يعطي اسما متسلسلا Macro1 و2 و3 ....الخ اذهب الي الماكرو المسجل و انسخ مابين السطران sub macro1() وend sub وقم بادراج زر و اضغط عليه مرتان و الصق ما تم نسخه بين سطري الزر او اكتب بين سطريه call macro1 و ذلك لاستدعاء عمل الكود
Private Sub CommandButton1_Click()

Call Macro1

End Sub

اما مشاركتك الاخري فقد كان طلبك كالتالي هذا الكود لا يعمل ولا أعرف السبب المفروض إن الأعمدة من X إلى IV فى أحد الشيتات تختفى بدون زر Private Sub Workbook_Open() Columns("x:iv").Select Selection.EntireColumn.Hidden = True Range("A1:A1").Select End Sub أرجو توضيح أين الخطأ وكيف نتلافاه اخي ان تطلب بالكود اخفاء مجموعة اعمده لذا فالخطأ بالكود انك لم تحدد الشيت الذي يتم فيه هذا الاجراء لذا يجب ات يكون الكود بالشكل التالي
Private Sub Workbook_Open()

Sheets("sheet1").Select

Columns("x:iv").Select

Selection.EntireColumn.Hidden = True

Range("A1:A1").Select

End Sub


لك خالص تحياتي

عزيزى الغالى

وضعت هذا الكود

Private Sub Workbook_Open()

Select.("الشيت")Sheets

Columns("A:I").Select

Selection.EntireColumn.Hidden = True

Range("J5:J5").Select

End Sub

ما الخطأ الذى وقعت فيه هذه المرة

ولكنه لم يعمل أى شئ

أليس الكود مثل الكود الذى ذكرته حضرتك منذ أيام بالأعلى ؟؟

رابط هذا التعليق
شارك

أخى العزيز

الأستاذ الفاضل عادل بك حنفى

بعد التحية

قرأت موضوع لك فى هذا الرابط

http://www.officena.net/ib/index.php?showtopic=24575

كود إضافة وحذف أوراق داخل مصنف

والكود ممتاز

هل يمكن عمل تعديل عليه بحيث تكون هناك إمكانية للنسخ مع الإضافة

نسخ عدد محدد من النسخ من أحد الشيتات داخل نفس المصنف مع مراعات إمكانية تغيير إسم الشيت والحفاظ على نفس خصائصه والأكواد الموجودة به

لك خالص تحياتى

الملف الأصلى بتاعك مرفق

وعلى فكرة أنا قدرت أعمل جزء من المطلوب عن طريق ماكرو لكن طبعاً الماكرو نسخ الورقة بكامل أكوادها وخصائصها لكنه لا يغير إسمها كمان لابد من ضغط زر الماكرو عدد من المرات لأنه ينسخ ورقة واحدة كل مرة ولكن الكود بتاعك أتعشم أنه ينسخ العدد المطلوب من الورقة بضغطة واحدة

الف شكر لسعة صدرك

Last_Add_Remove_____________.rar

تم تعديل بواسطه يوسف عطا
رابط هذا التعليق
شارك

السلام عليكم

اخي الفاضل يوسف عطا

ارفق مثال لمطلوبك لان الطلب غير واضح

فلا ادري ما المقصود بالنسخ من احد الشيتات

تحياتي

للأسف الملف لازال قيد التصميم ولا استطيع إرفاقه حالياً

ولكن

الكود بتاع حضرتك بيعمل الآتى:

1. إضافة شيت أو عدد محدد من الشيتات على الملف

2. حذف شيت محدد من شيتات الملف

3. تغيير إسم شيت محدد من شيتات الملف

والمطلوب أن يتم إضافة على الكود فيقوم بوظيفة رابعة هى :

نسخ شيت محدد من شيتات الملف عدد محدد من النسخ

أعتقد طلبى اصبح واضحاً

شاكر لك سعة صدرك

رابط هذا التعليق
شارك

السلام عليكم

اخي يوسف عطا

تم اضافة ما تطلبه علي رابط الموضوع الاساسي

تكملة له ارجع الي الرابط الذي ذكرته سابقا و ستجد ردي بالتعديل المطلوب

مع الرجاء بابداء الملاحظات

خالص تحياتي

رابط هذا التعليق
شارك

الأخ الفاضل عادل بك فهمى

السلام عليكم وعلى جميع زوار موضوعك

جارى التجربة

الف شكر على إهتمامك

جعله الله فى ميزان حسناتك

رابط هذا التعليق
شارك

السلام عليكم

اخي يوسف عطا

تم اضافة ما تطلبه علي رابط الموضوع الاساسي

تكملة له ارجع الي الرابط الذي ذكرته سابقا و ستجد ردي بالتعديل المطلوب

مع الرجاء بابداء الملاحظات

خالص تحياتي

عزيزى الغالى عادل بك

بعد التحية والسلام

التعديل الأخير للكود المذكور (نسخ وإضافة وحذف و إعادة تسمية شيتات فى مصنف)

لايعمل بكفاءة يعطينى رسالتى خطأ تم عمل برنت سكرين لهما وهما كالتالى

أرجو التجربة والتصحيح وربما الخطأ عندى وجل من لا يسهو

post-50456-12774569986584_thumb.jpg

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم

اخي يوسف

تم تجربة الملف و هو يعمل بكل كفاءة

و عموما قد تكون حملت الملف القبل الاخير

لذا سارفق هنا اخر ملف

مع الرجاء من الاخوه اذا كان هناك اي مشكله من عدمه فبرجاء اخبارنا عن نتيجة عمل الملف

تحياتي

Last Add Remove copy قائمة منسدله.rar

رابط هذا التعليق
شارك

السلام عليكم

اخي wael700

سؤالك هام جدا

ما هي الطرق أ, الأساليب المتبعة لكي أنا اصمم كود جديد ليس أن أخذه جاهز منكم

اولا لابد وان تعرف لغة ال visual basic او القليل عنها لتعرف اولا كيفية ان تعرف محتوي او معني

الكود المكتوب ليضاف لمعرفتك و مره مع مره ستكتسب خبره في فهم الكود و بالتالي استطاعة كتابته

و ما الكود الا طريقة للمحادثه بين ما تريد ان تفعله و كتابته بالغة التي يفهما البرنامج لينفذ

ما دار براسك

فمثلا لو اردت نسخ محتوي الخلية H20 و اللصق في الخلية G20 فتخيل نفسك و انك تقوم بذلك علي الطبيعة

فانك ستحدد بالماوس الخليه H20 و الذي يفهمه الكود لعمل ذلك هو

range("H20").select
و بعد ذلك ستقوم بعمل كليك يمين و تختار copy و ما يفهمه البرنامج لعمل ذلك هو
selection.copy

اواو


range("H20").copy
و ستذهب و تحدد الخلية G20 و تعمل كليك يمين و تختار Paste وسيفهم البرنامج هذا بالشكل التالي
range("G20").select

  Activesheet.paste

انا قصدت هنا ان تتخيل معي نا يحدث لتقريب الصورة اليك

ارجو ان تكون المعلومة قد وصلت اليك

تحياتي

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information