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

Change Chart Range


Eid Mostafa

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

الأخوة الأعزاء

بالملف المرفق يوجد عدد 2 Chart بكل شيت على حدة

وهما شيت "Revenues" و شيت "G&A" ومصدر البيانات لهما بشيت Breakdown .

ما أريدة أن يتغير "مدى" الـ Chart أو مايسمى بـ "Series Value" تلقائياً بتغير التاريخ المدخل بالخليتان O4 لسنة 2012 ، و O6 لسنة 2011

فعلى سبيل المثال إن أدخلت 31/6/2012 فيكون الرسم حتى هذا التاريخ

أرجو أن أكون قد أوضحت طلبى.

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

أخوكم

عيد مصطفى

Change Chart Range.rar

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

السلام عليكم

أخي العزيز

ضع الكود التالي في حدث الورقة الأولي "Breakdown"



Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$O$4" And Target.Address <> "$O$6" Then Exit Sub

c = Chr(65 + Month([O4]))

cc = Chr(65 + Month([O6]))


    With Charts("Revenues")

        .SeriesCollection(1).Values = "=Breakdown!$B$4:$" & c & "$4"

        .SeriesCollection(2).Values = "=Breakdown!$B$6:$" & cc & "$6"

    End With

    With Charts("G&A")

        .SeriesCollection(1).Values = "=Breakdown!$B$8:$" & c & "$8"

        .SeriesCollection(2).Values = "=Breakdown!$B$10:$" & cc & "$10"

    End With

End Sub


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

أخى العزيز / طارق

بالفعل حل أكثر من رائع وأتى بالنتيجة المرجوة تماماً

ولى إستفسار بسيط .... هل يمكن إجراء ذلك بالمعادلات بدلاً من الكود وذلك لسهولة التعديل على المعادلات بالنسبة لى .. ؟

وذلك لأن O4 و O6 مكانهما ليس بشيت Breakdown ولكنى وضعتهما هنا للتسهيل فقط.

إن كان الحل غير ممكناً بالمعادلات فعذراً على إرفاقى للملف الكامل راجياً منك تعديل الكود بناءاً على تغير مكان الخليتان المشار إليهما بأعلاة.

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

أخوك

عيد مصطفى

Change Chart Range 2.rar

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

السلام عليكم

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

ولكن حيث أنك لاتريد الأكواد فهذا الحل باستخدام المدي الديناميكي (لاحظت أنك تستخدمه جيدا بالملف)

أضفت لك 4 مجالات ديناميكية تتغير بتغير الخلية K2 في الورقة "F.S."

المجالات هي

chrt_2011 , chrt_2012 , GA_2011 , GA_2012

ومعادلاتها بالترتيب هي


= OFFSET(Breakdown!$B$6,0,0,1,MONTH(F.S.!$K$2))

= OFFSET(Breakdown!$B$4,0,0,1,MONTH(F.S.!$K$2))

= OFFSET(Breakdown!$B$10,0,0,1,MONTH(F.S.!$K$2))

= OFFSET(Breakdown!$B$8,0,0,1,MONTH(F.S.!$K$2))

ثم أعدت تضبيط الشارتات علي هذا الأساس

ولاداعي للأكواد

تفضل المرفق بلا أكواد

Change Chart Range 2_noCodes.rar

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

أخى العزيز / طارق

هذا الحل أكثر من رائع وأراحنى كثيراً وأتى بالنتيجة المرجوة تماماً

:signthankspin:

وسامحنى فقد أتى فى بالى أمر آخر

إن كان بمقدورك وإن لم يكن فلا عليك فقد كفيت و أوفيت

الأمر هو هل يمكن تغيير الــ AXIS (الأرقام) يميناً ويساراً بشكل تلقائى (أوتوماتيكى) مع تغير مدخلات الفترة المختارة ؟

بحيث يأخذ الــ AXIS اليمين و اليسار أكبر قيمة موجبة وأكبر قيمة سالبة "أقصد توحيد أو تساوى القيم الموجبة والسالبة فى اليمين واليسار"

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

أخوك

عيد مصطفى

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

السلام عليكم

هل يمكن تغيير الــ AXIS (الأرقام) يميناً ويساراً بشكل تلقائى (أوتوماتيكى) مع تغير مدخلات الفترة المختارة ؟

بحيث يأخذ الــ AXIS اليمين و اليسار أكبر قيمة موجبة وأكبر قيمة سالبة "أقصد توحيد أو تساوى القيم الموجبة والسالبة فى اليمين واليسار"

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

في كل شارت أضف عنصرين إضافيين

يعني عندك 2012 ، 2011 بالإضافة إلي 2012× ،2011× مثلا ويكونان مساويان للعنصرين الأساسين

أنت تضع 2012 علي الأكس الرئيسي ، فتضع 2012× علي الأكس الفرعي والعكس 2011 علي الأكس الفرعي ، فتضع 2011× علي الأكس الرئيسي

ثم تجعل لون العنصرين الإضافيين مخفي (بلا لون)

وتجعل حدود الأكسات أوتوماتيكية بدلا من ضبطها يدوي كما هو الحال الآن

وبهذا يكون كل أكس به العنصرين ،واحد ظاهر والآخر مخفي، لكن مجال الأكس الأوتوماتيكي سيتأثر بقيم العنصرين جميعا

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

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

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



سجل دخولك الان
×
×
  • اضف...

Important Information