علي المصري قام بنشر أبريل 7, 2016 قام بنشر أبريل 7, 2016 الملف المرفق يقوم بتحويل اللحروف A, B, C , D, E. إلى ارقام 90, 80, 70, 60, 50 عند تنفيذ الكود بعطى رسالة خطأ يوجد بالمرفق اربع أسماء لنطاقات اربع احدهما Term_2=OFFSET(AliElbasry!$L$2;0;0;COUNTA(AliElbasry!$L:$L)-1) فكيف يمكن التغلب على هذه المشكلة وهل يمكن كتابة الكود بشكل مختصر DDDDDD.rar
سليم حاصبيا قام بنشر أبريل 7, 2016 قام بنشر أبريل 7, 2016 احي علي استعمل المعادلة هذه في الخليةI2 و اسحب يساراً و نزولاً, و بلاش الكود =VLOOKUP(B2,{"A",90;"B",80;"C",70;"D",60;"E",50},2,0)
ياسر خليل أبو البراء قام بنشر أبريل 7, 2016 قام بنشر أبريل 7, 2016 أخي الكريم علي المصري ... الخطأ الموجود في المرفق ليس سببه لا معادلات في ورقة العمل حيث لا توجد معادلات من الأصل في ورقة العمل ، ولا من النطاقات المسماة فقد قمت بمراجعتها ووجدت أنه ليس بها خطأ .. الخطأ سببه الـرسم البياني لديك .. عند فتح ملفك ومحاولة الحفظ تظهر الرسالة وعند تنفيذ الكود تظهر الرسالة ... وعندما حذفت الرسم البياني قام الملف بالحفظ واختفت الرسالة .. لا أدري ما الخلل في الرسم البياني ..عموماً جرب تحذف الرسم البياني ثم قم بإدراجه مرة أخرى .. تقبل تحياتي
علي المصري قام بنشر أبريل 7, 2016 الكاتب قام بنشر أبريل 7, 2016 شكرا جزيلا أستاذ ياسر على اهتمامك عند استخدام المعادلات إذا كانت القائمة بالأسماء 30 اسم مع بيانتهم لا يوجد مشكلة اما اذا كان في الصف 24 طالب مثلا نجد ان الرسم البياني به جزء فارغ انا لا اريد هذا الفراغ
ياسر خليل أبو البراء قام بنشر أبريل 7, 2016 قام بنشر أبريل 7, 2016 أخي الفاضل على المصري صراحة ليس لي خبرة في التعامل مع الرسوم البيانية .. ممكن تذكر الخطوات التي اتبعتها لعمل الرسم البياني فلربما أستطيع اكتشاف الخطأ ... فقط أعطني الأساس في التعامل مع الرسوم البيانية بهذا الشكل؟
علي المصري قام بنشر أبريل 7, 2016 الكاتب قام بنشر أبريل 7, 2016 Term_1 =OFFSET(AliElbasry!$I$2;0;0;COUNTA(AliElbasry!$I:$I)-1) final=OFFSET(AliElbasry!$L$2;0;0;COUNTA(AliElbasry!$L:$L)-1) MyNumbers==OFFSET(AliElbasry!$G$2;0;0;COUNTA(AliElbasry!$G:$G)) Term_2=OFFSET(AliElbasry!$J$2;0;0;COUNTA(AliElbasry!$J:$J)-1) Term_3=OFFSET(AliElbasry!$K$2;0;0;COUNTA(AliElbasry!$K:$K)-1) اما الرسم البياني قمت بتحديد النطاق من G1 إلى K31 ثم ادراج رسم بياني كليك يمين واختيار من القائمة تحديد البيانات ( select data ) تظهر الشاة التالية
ياسر خليل أبو البراء قام بنشر أبريل 7, 2016 قام بنشر أبريل 7, 2016 أخي الكريم علي المصري .. فيما يبدو لي أن المشكلة في عدم اكتمال البيانات بشكل صحيح ...لابد من اكتمال البيانات في الأعمدة المشار إليها في الرسم البياني جرب الملف التالي قمت بتغيير النطاقات المسماة (مجرد تغيير لا أدري إذا كان سبب في المشكلة أم لا) وقمت بوضع بعض البيانات في الورقة في الأعمدة الفارغة حمل الملف من هنا
علي المصري قام بنشر أبريل 7, 2016 الكاتب قام بنشر أبريل 7, 2016 ثم حذف esis من الطرف اليسار واختيار T1 ثم تعديل وكتابة قيم السلسة عبارة عن الاسم Term_1 الموضح في بداية الرد وكذلك بالمثل ل T2 , T3 , Final ثم في الجزء اليمين عملت تعديد وكتبت به الاسم MyNumbers فيصبح الرسم البياني ذو نطاق ديناميكي وهذا ما اتمناه بالفعل ولكن المشكلة كما وضح في الرد السابق مع كتابة المعادلات في الخلايا المرفق الذي تكلمت عنه بالشرح AAAA.rar
علي المصري قام بنشر أبريل 7, 2016 الكاتب قام بنشر أبريل 7, 2016 (معدل) شكرا اخي ياسر تم حل المشكلة كالتالي: قمت بعمل End لكل If لحالها كالتالي : Sub DoMyOrder() Dim R As Integer For R = 2 To 31 If Sheet1.Cells(R, 2) = "" Then Sheet1.Cells(R, 9) = "" ElseIf Sheet1.Cells(R, 2) = "A" Then Sheet1.Cells(R, 9) = "90" ElseIf Sheet1.Cells(R, 2) = "B" Then Sheet1.Cells(R, 9) = "80" ElseIf Sheet1.Cells(R, 2) = "C" Then Sheet1.Cells(R, 9) = "70" ElseIf Sheet1.Cells(R, 2) = "D" Then Sheet1.Cells(R, 9) = "60" ElseIf Sheet1.Cells(R, 2) = "E" Then Sheet1.Cells(R, 9) = "50" End If '================================ If Sheet1.Cells(R, 3) = "" Then Sheet1.Cells(R, 10) = "" ElseIf Sheet1.Cells(R, 3) = "A" Then Sheet1.Cells(R, 10) = "90" ElseIf Sheet1.Cells(R, 3) = "B" Then Sheet1.Cells(R, 10) = "80" ElseIf Sheet1.Cells(R, 3) = "C" Then Sheet1.Cells(R, 10) = "70" ElseIf Sheet1.Cells(R, 3) = "D" Then Sheet1.Cells(R, 10) = "60" ElseIf Sheet1.Cells(R, 3) = "E" Then Sheet1.Cells(R, 10) = "50" End If '============================== If Sheet1.Cells(R, 4) = "" Then Sheet1.Cells(R, 11) = "" ElseIf Sheet1.Cells(R, 4) = "A" Then Sheet1.Cells(R, 11) = "90" ElseIf Sheet1.Cells(R, 4) = "B" Then Sheet1.Cells(R, 11) = "80" ElseIf Sheet1.Cells(R, 4) = "C" Then Sheet1.Cells(R, 11) = "70" ElseIf Sheet1.Cells(R, 4) = "D" Then Sheet1.Cells(R, 11) = "60" ElseIf Sheet1.Cells(R, 4) = "E" Then Sheet1.Cells(R, 11) = "50" End If '======================== If Sheet1.Cells(R, 5) = "" Then Sheet1.Cells(R, 12) = "" ElseIf Sheet1.Cells(R, 5) = "A" Then Sheet1.Cells(R, 12) = "90" ElseIf Sheet1.Cells(R, 5) = "B" Then Sheet1.Cells(R, 12) = "80" ElseIf Sheet1.Cells(R, 5) = "C" Then Sheet1.Cells(R, 12) = "70" ElseIf Sheet1.Cells(R, 5) = "D" Then Sheet1.Cells(R, 12) = "60" ElseIf Sheet1.Cells(R, 5) = "E" Then Sheet1.Cells(R, 12) = "50" End If Next End Sub بارك الله فيك لقد توصلت لها من خلال الرد الأخير الخاص بحضرتك شكرا جزيلاً تم تعديل أبريل 7, 2016 بواسطه علي المصري 1
سليم حاصبيا قام بنشر أبريل 7, 2016 قام بنشر أبريل 7, 2016 اخي علي بدل هذا الكود الطويل جداً الملي بالشروط و الاستنتاجات اقترح علبك هذا الكود البسيط (جربه ولن نتدم) لانه لا يفرق بين الحرف الصغير a و الحرف الكبير A Sub DoMyOrder() Dim R As Integer Application.ScreenUpdating = False Sheets("Sheet1").Range("i2:l31").ClearContents For R = 2 To 31 For t = 2 To 5 With Sheets("Sheet1") Select Case UCase(.Cells(R, t).Value) Case "A" .Cells(R, t + 7) = 90 Case "B" .Cells(R, t + 7) = 80 Case "C" .Cells(R, t + 7) = 70 Case "D" .Cells(R, t + 7) = 60 Case "E" .Cells(R, t + 7) = 50 Case Else .Cells(R, t + 7) = "" End Select End With Next Next Application.ScreenUpdating = True End Sub 1
علي المصري قام بنشر أبريل 7, 2016 الكاتب قام بنشر أبريل 7, 2016 شكرا استاذ سليم جزاك الله خبرا كود ممتاز Dim R As Integer Application.ScreenUpdating = False Sheet1.Range("I6:L35").ClearContents For R = 6 To 35 For t = 4 To 7 With Sheet1 Select Case UCase(.Cells(R, t).Value) Case "A" .Cells(R, t + 5) = 90 Case "B" .Cells(R, t + 5) = 80 Case "C" .Cells(R, t + 5) = 70 Case "D" .Cells(R, t + 5) = 60 Case "E" .Cells(R, t + 5) = 50 Case Else .Cells(R, t + 5) = "" End Select End With Next Next Application.ScreenUpdating = True
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.