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

كتابة المعادلات بالاكواد VBA


ahmede

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

أخي الكريم أحمد

يرجى تغيير اسم الظهور للغة العربية

اطلعت على الملف ولم أجد أكواد بداخله ..قم برفع الملف مرة أخرى محتوياً على الأكواد ، وقم بوضع صورة لرسالة الخطأ التي تظهر لك ..

وعند ظهور الخطأ يظهر لك كلمة Debug انقر عليها سينتقل بك لمحرر الأكواد لسطر أصفر قم بنسخه ووضعه في المشاركة للإطلاع على موضع الخطأ

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

الاكواد بداخل المديول بالضعط على الزر 

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

Sub mh1()
    Range("p2").FormulaR1C1 = "=INDEX(RC[-7]:R[131]C[-3],MATCH(R2C7,R2C2:R133C2,0),1)"
Range("p2").Value = Range("p2").Value
End Sub
Sub mh2()
Range("p2").FormulaR1C1 = "=INDEX(RC[-7]:R[131]C[-3],MATCH(R2C7,R2C3:R133C3,0),1)"
Range("p2").Value = Range("p2").Value
End Sub
Sub mh3()
Range("p2").FormulaR1C1 = "=INDEX(RC[-7]:R[131]C[-3],MATCH(R2C7,R2C4:R133C4,0),1)"
Range("p2").Value = Range("p2").Value
End Sub
Sub mh4()
Range("p2").FormulaR1C1 = "=INDEX(RC[-7]:R[131]C[-3],MATCH(R2C7,R2C5:R133C5,0),1)"
Range("p2").Value = Range("H2").Value
End Sub


 

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

أخي الكريم

يرجى الإطلاع على موضوع التوجيهات في الموضوعات المثبتة في صدر المنتدى

ضع الأكواد بين أقواس الكود .. لتظهر بشكل منضبط

الملاحظات على الملف المرفق : أكرر الملف المرفق لا يحتوي على موديول ولا على أية أكواد على الإطلاق

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

أسماء الإجراءات الفرعية غير مناسبة حيث أنها تشير لخلايا في ورقة العمل ، أقصد التسمية mh1 اسم الماكرو غير مناسب ، حيث من المفترض أن هذا اسم عمود (العمود MH في الصف رقم 1)

ارفق الملف مرة أخرى وبه الأكواد ووضح المشكلة بالضبط

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

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

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

ركزمعي .. ما هي الأعمدة المطلوب العمل عليها .. وما هي شكل النتائج المتوقعة .. وما هي خلية المدخلات المطلوب كتابة الدرجة فيها؟

أسأل لأن هناك أعمدة مشابهة وأراك وضعت أزرار لتلك الأعمدة ..؟

اذكر مثال وما هو شكل النتائج المتوقعة ..؟؟ وما هو الخطأ الذي يظهر معك ؟ ارفق صورة لرسالة الخطأ

 

ورجاءً لا تطرح موضوعات لنفس الطلب مرة أخرى إلا إذا كان الطلب مختلف

تقبل تحياتي

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

شكرا لحضرتك لمساعدتي..عند وضع درجة في الخلية p2 واختيار احد الازرار ما هي الدرجة المقابلة لها في العمود h  المسمي (total) 

وهكذا للجدول الاول  عند وضع درجة في الخلية b26 و c26و d26و e26 ما هي الدرجة المقابله لها في العمود a المسمي (dgree)

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

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

أخي الكريم أحمد

يرجى تغيير اسم الظهور للغة العربية ..

 

قمت بعمل كود واحد يتم النقر على الزر المرسوم "توكل على الله وانقر هنا"  ، ليتم وضع جميع النتائج ..

كل ما عليك أن تكتب الدرجات في الخلايا الصفراء : L3 بدلاً من الخلية P2 التي أشرت إليها ، والخلية A26 لتحصل على جميع النتائج مرة واحدة ..

ملحوظة : تركت لك الأزرار المرسومة الأخرى كدليل فقط ، وعند النقر عليها لن يحدث شيء أي أنها غير مرتبطة بحدث معين .. وحذفت لك جميع الأكواد الأخرى الموجودة وتركت لك الكود التالي فقط

Sub Test()
    Application.ScreenUpdating = False
        Range("M3:O3,B26:E26").ClearContents
        
        If Not IsEmpty(Range("L3")) Then
            With Range("M3:O3")
                .FormulaR1C1 = "=IFERROR(INDEX(R3C[-4]:R134C[-4],MATCH(R3C12,R3C8:R134C8,0),1),"""")"
                .Value = .Value
            End With
        End If
    
        If Not IsEmpty(Range("A26")) Then
            With Range("B26:E26")
                .FormulaR1C1 = "=IFERROR(INDEX(R3C:R22C,MATCH(R26C1,R3C1:R22C1,0),1),"""")"
                .Value = .Value
            End With
        End If
    Application.ScreenUpdating = True
    
    MsgBox "Done...", 64
End Sub

أرجو أن يفي هذا بالغرض

تقبل تحياتي

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

مشكور لحضرتك جدأ علي ما تقدمة من معرفة نفع الله بكم وزادكم علماً.. الكود اللي كتبته حضرتك بيعمل عكس ما هو مطلوب المطلوب جلب الدرجات من العمود Total في الحالات الثلاثة>> وما المقصود باللغة العربية تقصد واجهة برنامج الاكسيل لم يوجد ملف بالتعليق

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

 ("لا توجد قيمة"((IFERROR(INDEX($H$3:$H$134;MATCH($N$4;$J$3:$J$134;0))=

خالص تحياتي وتقديري لشخصكم الكريم

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

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

أخي الكريم أحمد

أقصد باللغة العربية هو اسمك Ahmede أن يكون باللغة العربية (ويفضل اسم ولقب)

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

 

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

Sample.rar

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

عمل رائع ..هو المطلوب لكن بعد أذن حضرتك وطلب أخير أود معرفة 

لو كانت درجة Test1 هي 20 مثلا فهي واقعة بين 18-22 أي في الخلية c12 كيف أحددها داخل الخلية والدرجة المقابلة لها في العمود A ..فمثلا الخلية c7 درجتها  6 يمكن ايجادها بسهوله لانها درجة واحدة فقط بداخل الخلية وليست في نطاق درجات  بين 18-22 كالخلية c12. لو أريد استخدام دالة Vlookup مثلا

 

خالص شكري وتقديري

Sample.rar

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

لم أفهم المطلوب بشكل واضح ..

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

ما هي الخلية التي توضع فيها الدرجة ؟ ما هو العمود المراد البحث فيه؟ ما هي النتيجة المتوقعة بعد البحث؟ أين توضع النتيجة المطلوبة ..؟؟

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

 

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

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

الملف بداخلة المطلوب ان شاء الله بدقة...شكرا لحضرتك لما تقدمة لتعلمنا 

تقبل تحياتي وشكري وتقديري  لشخصكم الكريم

عمل.rar

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

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

9 دقائق مضت, ahmede said:

اريد تعديل علي اخر ملف باسم عمل 

سليم حاصبيا

 

اذا  هذه الاشارة "ــــــ" تعني ما قبلها

اليك هذا الحل

worksalim.rar

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

21 دقائق مضت, ahmede said:

اريد تعديل علي اخر ملف باسم عمل 

سليم حاصبيا

 

اذا  هذه الاشارة "ــــــ" تعني ما قبلها

اليك هذا الحلworksalim.rar

انا شخصياً لا ارى اي ملف

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

المطلوب 

أريد استخدام داله vlookup لتحديد قيمة معين بالخلية فمثلا لو عايز أعرف القيمة 16 مثلا نجدها تقع بين الدرجة 15-17 في الخلية B10  فما الدرجة التي تقابلها في العمود A

بدل ما أعمل الدرجات في عدة خلايا 15 و 16 و 17 أنا قمت بوضعهم في خلية واحدة من 15-17 فلو الدرجة كانت بينهم أكيف انفذ المطلوب

 

سليم حاصبيا

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

المعادلة الصحيحة

=IFERROR(VLOOKUP($B$22,CHOOSE({2,1},$B$2:$B$21,$A$2:$A$21),2,0),"لاشي")

هذا الكلام لا ينفع 

لأن اكسل لا يفهم 15-17 على انها الأرقام 15-16-17 

بل انه يقرأ 15-17 على انها نص

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

أخي الكريم أحمد

لم تستجب لمطلبي بتغيير اسم الظهور للغة العربية ..

 

بالنسبة لطلبك طال الموضوع بدون داعي .. وتهت في الموضوع بشكل كبير ، ولا أعلم للآن ما هو طلبك بشكل واضح

هلا أرفقت ملف واحد أخير للعمل عليه مع مراعاة أن تكون المعطيات كاملة أقصد الخلايا التي سيتم فيها الإدخال وشكل النتائج المتوقعة .. ساعد نفسك

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

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