ارسال پاسخ 
 
رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نمایش نمودار در یک سلول
۲۲-۳-۱۳۸۹, ۰۱:۲۵ صبح
ارسال: #1
نمایش نمودار در یک سلول
با سلام ب دوستان عزیز
شاید تا به حال به فکر افتاده باشید که در یک سل نمودار مربوط به چندین سل مجاور را داشته باشید.
این امکان در اکسل 2007 وجود داره ولی در 2003 باید از طریق نوشتن کد انجام بگیره و یا بصورت add ins ساخته شده و استفاده بشه.
من این کد رو دانلود کردم و برای شما هم میگذارم امیدوارم که مفید باشد.


Function LineChart(Points As Range, Color As Long) As String
Const cMargin = 2
Dim rng As Range, arr() As Variant, i As Long, j As Long, k As Long
Dim dblMin As Double, dblMax As Double, shp As Shape

Set rng = Application.Caller

ShapeDelete rng

For i = 1 To Points.Count
If j = 0 Then
j = i
ElseIf Points(, j) > Points(, i) Then
j = i
End If
If k = 0 Then
k = i
ElseIf Points(, k) < Points(, i) Then
k = i
End If
Next
dblMin = Points(, j)
dblMax = Points(, k)

With rng.Worksheet.Shapes
For i = 0 To Points.Count - 2
Set shp = .AddLine( _
cMargin + rng.Left + (i * (rng.Width - (cMargin * 2)) / (Points.Count - 1)), _
cMargin + rng.Top + (dblMax - Points(, i + 1)) * (rng.Height - (cMargin * 2)) / (dblMax - dblMin), _
cMargin + rng.Left + ((i + 1) * (rng.Width - (cMargin * 2)) / (Points.Count - 1)), _
cMargin + rng.Top + (dblMax - Points(, i + 2)) * (rng.Height - (cMargin * 2)) / (dblMax - dblMin))

On Error Resume Next
j = 0: j = UBound(arr) + 1
On Error GoTo 0
ReDim Preserve arr(j)
arr(j) = shp.Name
Next

With rng.Worksheet.Shapes.Range(arr)
.Group

If Color > 0 Then .Line.ForeColor.RGB = Color Else .Line.ForeColor.SchemeColor = -Color
End With

End With

LineChart = ""
End Function

Sub ShapeDelete(rngSelect As Range)
Dim rng As Range, shp As Shape, blnDelete As Boolean

For Each shp In rngSelect.Worksheet.Shapes
blnDelete = False
Set rng = Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), rngSelect)
If Not rng Is Nothing Then
If rng.Address = Range(shp.TopLeftCell, shp.BottomRightCell).Address Then blnDelete = True
End If

If blnDelete Then shp.Delete
Next
End Sub
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در پاسخ
 Thanks given by: shamsololama
۲۲-۳-۱۳۸۹, ۰۹:۵۶ صبح
ارسال: #2
RE: نمایش نمودار در یک سلول
با درود فراوان

با سپاس فراوان
دوست خوبم توضیحات بیشتر و نحوه استفاده هم اگر شد بنویسید

---------------------------------------------------------------------------------------------------
بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم (دکتر شریعتی)
shamsololama@yahoo.com
09177733411
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در پاسخ
۲۲-۳-۱۳۸۹, ۰۵:۳۹ عصر
ارسال: #3
RE: نمایش نمودار در یک سلول
با سلام
حتما استاد عزیز
البته من یک نمونه پیوست کرده بودم نمیدونم دیدید یا نه ولی ناشی بودم و درست در پائین صفحه اونرو ضمیمه کردم

از اینجا لطفا دانلودش کنید:


.xls  LineChart_1.xls (اندازه: 18.5 KB / دانلودها: 71)

لطفا بعد از دانلود پسوند رو به XLA تغییر دهید و با اینکار به عنوان addins انرا نصب کنید و بعد میتونید استفاده کنید .

کافی است که در هر سطر مثلا ای a1 تا e1 اعداد مورد نظر رو بنویسید و در سلول F1 فرمول زیر رو بنویسید:
LINECHART(A1:E1;2)

عدد 2 معرف رنگ نمودار هستش و اولی هم معرف رنج انتخابی.

امیدوارم که توضیحات کافی باشه.
موفق باشید .
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در پاسخ
 Thanks given by: shamsololama , mrexcel
۲۸-۸-۱۳۸۹, ۰۳:۴۱ صبح
ارسال: #4
RE: نمایش نمودار در یک سلول
در اکسل 2010نوعی نمودار با نامspark linesوجود دارد که در یک سلول جا میشود.
برای رسم ابتدا خانه مورد نظر را انتخاب کنید
به تب insertرفته از گروه spark lineروی دستورنوع نمودار کلیک کنید مثلاline
در پنجره باز شده محدوده داده های سری را وارد کنید
با زدن okنمودار رسم خواهد شد.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در پاسخ
 Thanks given by: mrexcel
۷-۱۱-۱۳۸۹, ۱۰:۲۱ صبح
ارسال: #5
RE: نمایش نمودار در یک سلول
ممكنه بفرماييد چطور بايد كدي را كه زحمت كشيديد بنويسيم ؟ ( لطفا كمي هم مبتديانه !!! )

بنیاد کودک CHILD FOUNDATION :
http://WWW.CHILDF.ORG
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در پاسخ
ارسال پاسخ 




پرش در انجمن:


ارتباط با ما | Exceliran | بازگشت به بالا | بازگشت به محتوا | آرشیو | پیوند RSS