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

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

قام بنشر

السلام عليكم ... من فضلكم ... أحتاج كود vba excel

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

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

زر وضع القرار.xlsm

  • أفضل إجابة
قام بنشر

المشكلة في هذه الملفات هو اختلاف عدد الأعمدة في الشيتات 10 و11 و12

ولكن تم التغلب عليها بإذن الله

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

Sub insertformula()
Application.ScreenUpdating = 0
Dim strfile As String, objBook As Workbook, lr As Long, c As Integer
strfile = Dir(ThisWorkbook.Path & "\*.xlsx", vbNormal)
While strfile <> ""
Set objBook = Workbooks.Open(ThisWorkbook.Path & "\" & strfile)
c = objBook.Sheets("data").Range("b10").CurrentRegion.Columns.Count
lr = objBook.Sheets("data").Range(IIf(c = 10, "j", "l") & Rows.Count).End(xlUp).Row
objBook.Sheets("data").Range(IIf(c = 10, "k", "m") & "12").Formula = "=IF(Or(" & IIf(c = 10, "j", "l") & "12<5," & IIf(c = 10, "j", "l") & "12=""ن.م.ر""),""يكرر"",""ينتقل"")"
objBook.Sheets("data").Range(IIf(c = 10, "k", "m") & "12").AutoFill Destination:=objBook.Sheets("data").Range(IIf(c = 10, "k", "m") & "12:" & IIf(c = 10, "k", "m") & lr)
objBook.Sheets("data").Range("b12").Select
objBook.Close 1
strfile = Dir()
Wend
Application.ScreenUpdating = 1
MsgBox "Done"
End Sub

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

ثم عد الأعمدة ووضع المعادلة

ثم حفظ المصنف وإغلاقه

بالتوفيق

  • Like 2
قام بنشر

الأستاذ الكريم:محمد صالح

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

لكن أستاذي الكريم كرما وليس أمرا أريد مزيدا من تعديل أو تطوير في الكود بحيث يناسب كيفما كانت الملفات بغض النظر عن عدد الملفات وتسميتها

لاحظ مثلا لو غيرت اسم الملف الأخير (بتغيير 12 إلى 13 )ووضعت لأخد التلاميذ معدلا عاما أقل من 5 لن تكون النتيجة سليمة

1-في هذه الملفات المستويات: التي لها قرار المجلس في العمود K هي المستويات:الأول والثاني والثالث والرابع والخامس 

2- المستوى الوحيد الذي له قرار المجلس في العمود M هو المستوى السادس

3- عدد الأقسام في كل مستوى متغير فمثلا هذه السنة كل المستويات بها قسمان باستثناء السادس ابتدائي به ثلاث أقسام وها الأمر يختلف سنة بعد أخرى هناك مستويات ممكن أن تكون بها ثلاثة أو أربعة أقسام لذلك أريد كودا صالحا دائما

4- هل ممكن إنشاء كود بدلالة آخر عمود به بيانات وانطلاقا من السطر 12 أو كود يتحسس الخانة F7 بحيث إن كان بها : السادس ابتدائي عام يضع القرار في العمود M وإن كان بها غير ذلك يضع القرار في العمود K بغض النظر عن عدد الملفات وتسميتها.

جزاكم الله خيرا وأحسن إليكم وأتابكم الجنة

ملف الوثائق.rar

قام بنشر

جزاك الله خيرا وأحسن إليك أستاذي الكريم

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

بقيت مسألة جزاك الله خيرا

أحيانا التلميذ الذي يتغيب يوم  الامتحان تظهر تكتب له اللجنة في المعدل العام عبارة "ن.م.ر" معناها نقطة موجبة للرسوب

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

يمكنكم تجربة ذلك عبر وضع "ن.م.ر" في المعدل العام وتنفيذ الكود

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

جزاكم الله خيرا وأحسن إليكم

  • Like 1
قام بنشر

شكرا لكلماتك الطيبة

تم تعديل سطر المعادلة وإضافة شرط أن تكون درجة المعدل أقل من 5 أو يساوي "ن.م.ر" في المشاركة السابقة لي

بالتوفيق

  • Thanks 1
قام بنشر

بم تنصحني أخي الكريم لإحتراف إتقان وضع أكواد vba بمثل هذا الاحتراف

جزاكم الله خيرا وأتابكم الجنة

قام بنشر

جميعا بإذن الله

الان, hicham2610 said:

بم تنصحني أخي الكريم لإحتراف إتقان وضع أكواد vba بمثل هذا الاحتراف

جزاكم الله خيرا وأتابكم الجنة

يوجد في المنتدى الكثير من الكتب والدورات لتعليم vba

بل حتى الموضوعات العادية هي كنز لمن يريد أن يتعلم

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information