صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 12

موضوع: ایجاد نمودار ها و چارت ها در VBA

  1. #1


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    ایجاد نمودار ها و چارت ها در VBA

    یکی از بهترین روش ها برای ایجاد چارت در VBA به صورت زیر می باشد.

    کد:
    Dim mychart As Chart
    Set mychart = ActiveWorkbook.Charts("نام چارت مورد نظر")
         
    mychart.ChartType = xlXYScatterLinesNoMarkers
    mychart.SetSourceData Source:=Worksheets("نام شیت داده ها").Range("A:A,C:C"), PlotBy:=xlColumns
    mychart.Axes(xlValue, xlPrimary).MinimumScale = 0
    mychart.Axes(xlCategory, xlPrimary).HasTitle = True
    mychart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "نام محور افقی"
    خط اول یک شی از نوع چارت ایجاد کرد.
    خط دوم مقدار شی رو برابر با یک چارت که در صفحه اکسل موجود است کرد.
    خط سوم نوع چارت رو مشخص می کنه
    خط چهارم حدود داده ها رو برای رسم چارت مشخص می کنه
    خط پنجم کمترین مقادیر برای چارت
    خط ششم مشخص می کنه که محور x دارای عنوان است
    و خط آخر هم Title رو مشخص می کنه


    البته امکانات دیگر رو هم می توان بهش اضافه کرد.

    مثلا برای ایحاد جدول جدید از می توان به جای خط دوم کد قبلی این خط رو نوشت:
    کد:
    Set mychart = ActiveWorkbook.Charts.Add
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    -------
    http://md6712.com
    جامعه ایده پردازان: http://idekadeh.com

  2.  

  3. #2


    آخرین بازدید
    2016/07/05
    تاریخ عضویت
    March 2010
    نوشته ها
    151
    امتیاز
    41
    سپاس
    9
    سپاس شده
    28 در 15 پست
    تعیین سطح نشده است

    RE: ایجاد نمودار ها و چارت ها در VBA

    میشه یک فایل نمونه قرار بدید؟
    با تشکر

  4. #3


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    RE: ایجاد نمودار ها و چارت ها در VBA

    در فایل الگوریتم SA وجود داره یک نمونه! چک کنید.
    http://forum.exceliran.com/showthread.php?tid=201
    -------
    http://md6712.com
    جامعه ایده پردازان: http://idekadeh.com

  5. #4


    آخرین بازدید
    2012/11/28
    تاریخ عضویت
    August 2010
    نوشته ها
    14
    امتیاز
    4
    سپاس
    0
    سپاس شده
    2 در 1 پست
    تعیین سطح نشده است

    RE: ایجاد نمودار ها و چارت ها در VBA

    سلام
    یک سوال داشتم در همین زمینه
    ما چارتی داریم که هر دفعه جدولش تغییر میکنه
    میشه کاری کرد که اطلاعات مربوط به جدول رو از یک یا چند سلول بخونه و نمایش بده؟

  6. #5


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    RE: ایجاد نمودار ها و چارت ها در VBA

    نقل قول نوشته اصلی توسط behrangbinesh
    سلام
    یک سوال داشتم در همین زمینه
    ما چارتی داریم که هر دفعه جدولش تغییر میکنه
    میشه کاری کرد که اطلاعات مربوط به جدول رو از یک یا چند سلول بخونه و نمایش بده؟
    سلام
    بله! این کار امکان پذیر است!
    میشه توضیحات بیشتری بدهید.

    در همون فایلی Simulated Anealing داره! (SA) این طور هست که با هر بار RUn اطلاعات جداول عوض می شود و بر اساس اطلاعات این جداول دوباره چارت کشیده می شود.
    شما باید هر بار که اطلاعات جداول عوض می شود چارت را دوباره رسم کنید. یعنی همه کد های بالا را run کنید.
    -------
    http://md6712.com
    جامعه ایده پردازان: http://idekadeh.com

  7. #6


    آخرین بازدید
    2016/07/05
    تاریخ عضویت
    March 2010
    نوشته ها
    151
    امتیاز
    41
    سپاس
    9
    سپاس شده
    28 در 15 پست
    تعیین سطح نشده است

    RE: ایجاد نمودار ها و چارت ها در VBA

    پیرو پست های 4و5و6و7 در این تاپیک
    آیا می توان نمودار را روی یوزر فورم نمایش داد؟
    با درود فراوان
    بله همانطور که یک تکس باکس و یا یک لیبل رو رو یوزفرم قرار می دهی یک چارت هم میتوان به فرم اضافه کرد
    اگر روی تولز باکس چارت نداری با راست کلیک روی یکی از آبجکت ها به منوی additional controls رفته و آن را تیک بزنید

    با کلیک بر روی additional controls مراحل زیر را باید طی کنید.

    [][تصویر: tjahmbebdw18a570lykj_thumb.jpg][/]


    مرحله دوم

    [i][تصویر: hok3mj9fdn7zeaffb7xj_thumb.jpg][/]

    یادت باشه جایی که با فلاش قرمز مشخص کردم نباید تیک خورده باشه تا آبجکهای تیک نخورده رو بتونی ببینی
    گفتم ادامه بحث رو بیارم اینجا تا در تاپیک خودش قرار بگیره
    من این گزینه ها رو فعال کردم(نصب دوباره ویندوز و اکسل!)
    ولی به جای ارتباط با شیت های خود اکسل از شیت های که خودش در اختیار ما قرار میده استفاده می کند!
    در واقع من میخوام اطلاعات رو از شیت 1 بگیره و نمودار رو روی یک userformنمایش بده
    با تشکر

  8. #7


    آخرین بازدید
    2012/11/28
    تاریخ عضویت
    August 2010
    نوشته ها
    14
    امتیاز
    4
    سپاس
    0
    سپاس شده
    2 در 1 پست
    تعیین سطح نشده است

    RE: ایجاد نمودار ها و چارت ها در VBA

    سلام
    با تشکر از شما دوست عزیز
    منظورم رو شاید بد گفته باشم
    مثلا اطلاعات ما همیشه تو a3:c3 نباشه
    یک بار تو a3:c3 باشه یک بار توی a5:c5 هستش
    اولی تو شیت 1 و دومی تو شیت 2
    من میخوام مثلا سه تا فروشنده دارم
    که اطلاعاتشون تو سه تا شیت مختلفه
    حالا میخوام که تو یه شیت اطلاعاتی، با انتخاب اسم افراد، نمودارشون رو نمایش بدیم
    امکانش هست یا نیست؟
    با تشکر از شما

  9. #8


    آخرین بازدید
    2 هفته پیش
    تاریخ عضویت
    February 2010
    محل سکونت
    مشهد
    نوشته ها
    435
    امتیاز
    950
    سپاس
    294
    سپاس شده
    881 در 210 پست
    سطح اکسل
    81.00 %

    mrexcel به Yahoo ارسال پیام

    RE: ایجاد نمودار ها و چارت ها در VBA

    اين كار با تركيب vlookup انجام ميشه چون اين چيزي كه شما ميگيد فراخواني اطلاعاتي بر اساس يك ايتم ميباشد كه اختصاص كار توابع lookup هست

  10. #9


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    RE: ایجاد نمودار ها و چارت ها در VBA

    نقل قول نوشته اصلی توسط esyoo
    پیرو پست های 4و5و6و7 در این تاپیک
    آیا می توان نمودار را روی یوزر فورم نمایش داد؟
    با درود فراوان
    بله همانطور که یک تکس باکس و یا یک لیبل رو رو یوزفرم قرار می دهی یک چارت هم میتوان به فرم اضافه کرد
    اگر روی تولز باکس چارت نداری با راست کلیک روی یکی از آبجکت ها به منوی additional controls رفته و آن را تیک بزنید

    با کلیک بر روی additional controls مراحل زیر را باید طی کنید.

    [][تصویر: tjahmbebdw18a570lykj_thumb.jpg][/]


    مرحله دوم

    [i][تصویر: hok3mj9fdn7zeaffb7xj_thumb.jpg][/]

    یادت باشه جایی که با فلاش قرمز مشخص کردم نباید تیک خورده باشه تا آبجکهای تیک نخورده رو بتونی ببینی
    گفتم ادامه بحث رو بیارم اینجا تا در تاپیک خودش قرار بگیره
    من این گزینه ها رو فعال کردم(نصب دوباره ویندوز و اکسل!)
    ولی به جای ارتباط با شیت های خود اکسل از شیت های که خودش در اختیار ما قرار میده استفاده می کند!
    در واقع من میخوام اطلاعات رو از شیت 1 بگیره و نمودار رو روی یک userformنمایش بده
    با تشکر



    همان طورکه دوست عزیز توضیح دادند یک Chartspase ایجاد کنید. (از گزینه Additional Controls آن را به لیست ابزار خود اضافه کنید و با کشیدن بر روی صفحه ایجاد کنید)

    پس از این که این ChartSpace را ایجاد کردید هیج Sheet یا اطلاعاتی برایش در نظر نگیرید و مستقیما به صفحه Code بروید.
    اگر اسم این شی را تغییر نداده باشید احتمالا ChartSpace1 خواهد بود. کد هایی که در زیر می نویسم بر اساس این اسم است. در صورتی که اسم آن را تغییر دادید در کد زیر نام انتخابی خود را با ChartSpace1 تعویض کنید.

    کد زیر اطلاعات ستون های A و B از Sheet1 فایل اکسل شما را به صورت چارت ScatterXYLine نمایش می دهد.

    کد:
    Private Sub UserForm_Activate()
        Dim mychart As OWC11.ChChart
        Dim mysheet As OWC11.Spreadsheet
        Dim ws As Worksheet
        
        Set mychart = ChartSpace1.Charts.Add
        Set mysheet = New OWC11.Spreadsheet
        Set ws = ActiveWorkbook.Sheets("Sheet1")
        
        mysheet.Range("A:B") = ws.Range("A:B").Value
        ChartSpace1.DataSource = mysheet
        
        With mychart
            .Type = chChartTypeScatterLine
            .SetData chDimXValues, 0, "A:A"
            .SetData chDimYValues, 0, "B:B"
            .HasTitle = True
            .Title.Caption = "test title by ...."
            .BarWidth = 3
        End With
        
    End Sub

    فایل زیر هم برای درک بهتر:
    http://www.mediafire.com/file/5gkjnmnbl6fo84l/11.xlsm[hr][hr]

    -----------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------

    هر چه سعی کردم که این دو پاسخ با هم نیاد نشد!
    از این به بعد پاسخ برای سوال دیگری است!

    -----------------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------------


    نقل قول نوشته اصلی توسط behrangbinesh
    سلام
    با تشکر از شما دوست عزیز
    منظورم رو شاید بد گفته باشم
    مثلا اطلاعات ما همیشه تو a3:c3 نباشه
    یک بار تو a3:c3 باشه یک بار توی a5:c5 هستش
    اولی تو شیت 1 و دومی تو شیت 2
    من میخوام مثلا سه تا فروشنده دارم
    که اطلاعاتشون تو سه تا شیت مختلفه
    حالا میخوام که تو یه شیت اطلاعاتی، با انتخاب اسم افراد، نمودارشون رو نمایش بدیم
    امکانش هست یا نیست؟
    با تشکر از شما
    بله امکانش هست!
    به این صورت عمل کنید:
    ابتدا سه شیت اول دوم و سوم را ایجاد کرده
    در شیت چهارم یک چارت ایجاد کنید ولی هیچ مقدار دهی برایش انجام ندهید.
    کد زیر در شیت چهارم فعال کنید.

    کد:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If (Selection.Cells(1) = Sheet4.Range("D3").Cells(1) Or Selection.Cells(1) = Sheet4.Range("H3").Cells(1) Or Selection.Cells(1) = Sheet4.Range("L3").Cells(1)) Then
        Dim mychart As ChartObject
        Dim sourcesheet As Worksheet
    
        If (Selection.Cells(1) = Sheet4.Range("D3").Cells(1)) Then
            Set sourcesheet = Sheet1
        ElseIf (Selection.Cells(1) = Sheet4.Range("H3").Cells(1)) Then
            Set sourcesheet = Sheet2
        ElseIf (Selection.Cells(1) = Sheet4.Range("L3").Cells(1)) Then
            Set sourcesheet = Sheet3
        End If
    
        Set mychart = Sheet4.ChartObjects(1)
    
        With mychart.Chart
            .ChartType = xlXYScatterLinesNoMarkers
            .SetSourceData Source:=sourcesheet.Range("A:A,B:B"), PlotBy:=xlColumns
            .Axes(xlValue, xlPrimary).MinimumScale = 0
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = Target.Text
        End With
    End If
    End Sub

    فایل آن هم را از این لینک دریافت کنید:
    http://www.mediafire.com/file/y5954db0xel26oo/ChartForResellers.xlsm
    -------
    http://md6712.com
    جامعه ایده پردازان: http://idekadeh.com

  11. #10


    آخرین بازدید
    2016/07/05
    تاریخ عضویت
    March 2010
    نوشته ها
    151
    امتیاز
    41
    سپاس
    9
    سپاس شده
    28 در 15 پست
    تعیین سطح نشده است

    RE: ایجاد نمودار ها و چارت ها در VBA

    سلام
    با تشکر از مطالب مفیدتون.واقعا عالی بود.

    شما نموداری که گذاشتید به این شکل در می یاد.


    ولی من می خوام که این شکلی بشه.



    فایل نمونه رو ببینید
    http://www.4shared.com/file/hoZN3LRy/chart.html



    با تشکر



    من خیلی تلاش کردم تا نوع نمودار رو تغییر بدم
    اما نشد


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است