مقایسه ی اعداد در نمودار

Collapse
X
 
  • زمان
  • Show
Clear All
new posts
  • samin_panahi

    • February 2014
    • 27

    مقایسه ی اعداد در نمودار

    سلام
    یه سری شماره دانشجویی دارم و برای هر شماره دانشجویی هم یه نمره
    می خوام یه نمودار بکشم که محور افقی شماره دانشجویی باشه محور عمودی نمره
    بعد تو نمودار نمرات اونایی که کمتر از 10 شده قرمز باشه، 10 تا 15 آبی بالای 15 هم مشکی
    ممنون می شم راهنماییم کنید
  • mokaram
    مدير تالار اکسل و بانک اطلاعاتی

    • February 2011
    • 1805

    #2
    خدمت شما دوست گرامی
    فایل های پیوست شده

    Comment

    • samin_panahi

      • February 2014
      • 27

      #3
      خیلی ممنون، فقط اینو چه جوری درست کردید؟
      شرط رو کجا باید وارد کرد؟

      Comment

      • mokaram
        مدير تالار اکسل و بانک اطلاعاتی

        • February 2011
        • 1805

        #4
        نوشته اصلی توسط samin_panahi
        خیلی ممنون، فقط اینو چه جوری درست کردید؟
        شرط رو کجا باید وارد کرد؟
        تو خونه های D1 و E1 در شیت سورس شرط نوشته شده (البته اگه شما با VBA آشنایی نداشته باشی کارت سخت میشه )

        Comment

        • masoudian

          • September 2013
          • 74

          #5
          یه نوع دیگه هم من درست کردم که پیوست شد
          فایل های پیوست شده

          Comment

          • samin_panahi

            • February 2014
            • 27

            #6
            نوشته اصلی توسط M_R_M
            تو خونه های D1 و E1 در شیت سورس شرط نوشته شده (البته اگه شما با VBA آشنایی نداشته باشی کارت سخت میشه )
            متاسفانه آشنایی ندارم
            البته خودم برنامه نویسی می کنم ولی این زبان رو تاحالا کار نکردم
            چطور می شه اینو یاد گرفت؟ فعلا همین مساله برام مهمه، نمی خوام همش رو یاد بگیرم!

            Comment

            • masoudian

              • September 2013
              • 74

              #7
              این فایلی که من تهیه کردم نیاز به vba نداره با همون شرطهای ساده اکسل رسم میشه اکه تو خونه های مربوط به داده های نمودار کلیک کنید خیلی راحت متوجه میشید بازم اگر سوالی بود در خدمتم

              Comment

              • samin_panahi

                • February 2014
                • 27

                #8
                نوشته اصلی توسط masoudian
                یه نوع دیگه هم من درست کردم که پیوست شد
                ممنون

                Comment

                • samin_panahi

                  • February 2014
                  • 27

                  #9
                  نوشته اصلی توسط masoudian
                  این فایلی که من تهیه کردم نیاز به vba نداره با همون شرطهای ساده اکسل رسم میشه اکه تو خونه های مربوط به داده های نمودار کلیک کنید خیلی راحت متوجه میشید بازم اگر سوالی بود در خدمتم
                  متوجه نشدمش
                  فقط اون تیکه که شرط گذاشتید و اعداد رو طبقه بندی کردید برام مفهوم بود
                  بقیه ش رو نمی دونم چکار کردید!

                  Comment

                  • samin_panahi

                    • February 2014
                    • 27

                    #10
                    نوشته اصلی توسط M_R_M
                    تو خونه های D1 و E1 در شیت سورس شرط نوشته شده (البته اگه شما با VBA آشنایی نداشته باشی کارت سخت میشه )
                    چون خودم برنامه نویسم کد ها رو کم و بیش متوجه می شم
                    فقط اینکه راهنمایی کنید برای این کار قدم به قدم چکار کنم ممنون می شم
                    اول جدول رو با اطلاعاتش وارد می کنم
                    بعد چارت می کشم؟
                    ....

                    کدش همینه؟
                    کجا باید کد بنویسم؟
                    کد:
                    Private Sub Worksheet_Activate()
                    Dim c As Range
                    Dim i As Integer
                      i = 1
                    For Each c In Sheet1.Range("b3:b15")
                        If c.Value < Sheet1.Range("d1").Value Then
                            Sheet2.ChartObjects("Chart 1").Activate
                            ActiveChart.SeriesCollection(1).Select
                            ActiveChart.SeriesCollection(1).Points(i).Select
                            With Selection.Format.Fill
                                .Visible = msoTrue
                                .ForeColor.RGB = RGB(255, 0, 0)
                            End With
                        ElseIf c.Value >= Sheet1.Range("d1").Value And c.Value < Sheet1.Range("e1").Value Then
                                ActiveSheet.ChartObjects("Chart 1").Activate
                                ActiveChart.SeriesCollection(1).Select
                                ActiveChart.SeriesCollection(1).Points(i).Select
                                With Selection.Format.Fill
                                    .Visible = msoTrue
                                    .ForeColor.RGB = RGB(0, 255, 255)
                                End With
                        End If
                        If c.Value > Sheet1.Range("e1").Value Then
                            Sheet2.ChartObjects("Chart 1").Activate
                            ActiveChart.SeriesCollection(1).Select
                            ActiveChart.SeriesCollection(1).Points(i).Select
                            With Selection.Format.Fill
                                .Visible = msoTrue
                                .ForeColor.RGB = RGB(0, 0, 0)
                            End With
                        End If
                        i = i + 1
                    Next
                    End Sub
                    همینا رو اینجوری قدم به قدم بگید ممنون می شم

                    Comment

                    • mokaram
                      مدير تالار اکسل و بانک اطلاعاتی

                      • February 2011
                      • 1805

                      #11
                      دوست عزیز شما اول وارد محیط برنامه نویسی بشید بعد از سمت چپ لیست شیت ها مشخص هست بر روی شیتی که نمودار توش رسم شده دابل کلیک کنید صفحه سفیدی باز میشه بر روی کادر قرمز رنگ کلیک کرده و worksheet را انتخاب کنید
                      Click image for larger version

Name:	1.JPG
Views:	1
Size:	16.1 کیلو بایت
ID:	122854
                      بعد از منوی سمت راست Activate را انتخاب کنید و کد را در این قسمت بنویسید
                      Click image for larger version

Name:	2.JPG
Views:	1
Size:	17.4 کیلو بایت
ID:	122855

                      Comment

                      • samin_panahi

                        • February 2014
                        • 27

                        #12
                        خیلی ممنون
                        الان یه سوال دیگه دارم
                        اگه بخوام range سلول ها رو هم مثل اون اعدادی که تو d1 و e1 وارد کردید یه جا وارد کنم که داینامیک باشه و بدون رفتن تو محیط برنامه نویسی بشه تغییرش داد باید چکار کنم؟
                        به جای این چی باید بنویسم؟
                        کد:
                        For Each c In Sheet1.Range("b3:b15")

                        Comment

                        • samin_panahi

                          • February 2014
                          • 27

                          #13
                          جایگزینی نداره؟

                          Comment

                          • Amir Ghasemiyan

                            • September 2013
                            • 4475

                            #14
                            نوشته اصلی توسط samin_panahi
                            جایگزینی نداره؟
                            چند راه داره
                            بستگي به رنجي كه انتخاب ميكنين داره
                            يك راه سادش اينه كه مثلا در سلول A1 رنج مورد نظر رو بنويسيد بعد اينو به عنوان يك متغير وارد كنين و استفاده كنين
                            اگر رنجتون فقط يك ستون باشه ميشه از if استفاده كنيد. اينطوري كه رنجتن رو بذارين B:B و بعد شرط if رو بذارين كه مقدارش خالي نباشه

                            Comment

                            • komeilex
                              مدير تالار توابع اكسل

                              • October 2013
                              • 233

                              #15
                              نوشته اصلی توسط samin_panahi
                              چون خودم برنامه نویسم کد ها رو کم و بیش متوجه می شم
                              فقط اینکه راهنمایی کنید برای این کار قدم به قدم چکار کنم ممنون می شم
                              اول جدول رو با اطلاعاتش وارد می کنم
                              بعد چارت می کشم؟
                              ....

                              کدش همینه؟
                              کجا باید کد بنویسم؟
                              کد:
                              private sub worksheet_activate()
                              dim c as range
                              dim i as integer
                                i = 1
                              for each c in sheet1.range("b3:b15")
                                  if c.value < sheet1.range("d1").value then
                                      sheet2.chartobjects("chart 1").activate
                                      activechart.seriescollection(1).select
                                      activechart.seriescollection(1).points(i).select
                                      with selection.format.fill
                                          .visible = msotrue
                                          .forecolor.rgb = rgb(255, 0, 0)
                                      end with
                                  elseif c.value >= sheet1.range("d1").value and c.value < sheet1.range("e1").value then
                                          activesheet.chartobjects("chart 1").activate
                                          activechart.seriescollection(1).select
                                          activechart.seriescollection(1).points(i).select
                                          with selection.format.fill
                                              .visible = msotrue
                                              .forecolor.rgb = rgb(0, 255, 255)
                                          end with
                                  end if
                                  if c.value > sheet1.range("e1").value then
                                      sheet2.chartobjects("chart 1").activate
                                      activechart.seriescollection(1).select
                                      activechart.seriescollection(1).points(i).select
                                      with selection.format.fill
                                          .visible = msotrue
                                          .forecolor.rgb = rgb(0, 0, 0)
                                      end with
                                  end if
                                  i = i + 1
                              next
                              end sub
                              همینا رو اینجوری قدم به قدم بگید ممنون می شم
                              سلام دوست عزیز.
                              با تشکر از m_r_m عزیز که تبهرشون در کد زدن برا همه اثبات شدس
                              من به شما پیشنهاد می کنم از همون روش آقای مسعودیان استفاده کنین.
                              چون ورود به وادی برنامه نویسی در اکسل نیازمند آشنایی کامل با تمامی ابزارهای خود اکسل هست و اگه زود برین سراغ این بخش ممکنه سردر گم بشین.
                              البته تمام چیزایی که گفتم فقط یه راهنمایی کوچولو بود. بازم هر جور خودتون صلاح می دونین. موفق باشین.
                              وقتی خدا مشکلت رو حل میکنه به تواناییش ایمان داری و وقتی مشکلت رو حل نمی کنه بدون که به تواناییت ایمان داره...

                              Comment

                              Working...