userform üzerinde grafik gösterimi

Katılım
25 Aralık 2006
Mesajlar
109
Excel Vers. ve Dili
Excel 2007 Türkçe
Sub Worksheet_Change(ByVal Target As Range)

Const Formul1 = "SUMPRODUCT((B4:B32=1)*(C4:C32))"
Const Formul2 = "SUMPRODUCT((B4:B32=0)*(C4:C32))"
Const Formul3 = "SUMPRODUCT((E4:E32=1)*(F4:F32))"
Const Formul4 = "SUMPRODUCT((E4:E32=0)*(F4:F32))"
Const Formul5 = "SUMPRODUCT((H4:H32=1)*(I4:I32))"
Const Formul6 = "SUMPRODUCT((H4:H32=0)*(I4:I32))"
Const Formul7 = "SUMPRODUCT((K4:K32=1)*(L4:L32))"
Const Formul8 = "SUMPRODUCT((K4:K32=0)*(L4:L32))"
Const Formul9 = "SUMPRODUCT((N4:N32=1)*(O4:O32))"
Const Formul10 = "SUMPRODUCT((N4:N32=0)*(O4:O32))"
Const Formul11 = "SUMPRODUCT((Q4:Q32=1)*(R4:R32))"
Const Formul12 = "SUMPRODUCT((Q4:Q32=0)*(R4:R32))"
Const Formul13 = "SUMPRODUCT((T4:T32=1)*(U4:U32))"
Const Formul14 = "SUMPRODUCT((T4:T32=0)*(U4:U32))"


UserForm1.Label4 = Evaluate(Formul1) + Evaluate(Formul3) + Evaluate(Formul5) + Evaluate(Formul7) + Evaluate(Formul9) + Evaluate(Formul11) + Evaluate(Formul13)
UserForm1.Label5 = Evaluate(Formul2) + Evaluate(Formul4) + Evaluate(Formul6) + Evaluate(Formul8) + Evaluate(Formul10) + Evaluate(Formul12) + Evaluate(Formul14)
UserForm1.Label6 = UserForm1.Label4 - UserForm1.Label5



End Sub

Private Sub UserForm_Activate()
Dim SeriIsmi(1)
Dim Degerler(3)
Dim Sabitler
Dim YeniGrafik
SeriIsmi(0) = "Örnek Değer"
Degerler(0) = Val(Me.Label4.Caption)
Degerler(1) = Val(Me.Label5.Caption)
Degerler(2) = Val(Me.Label6.Caption)
Set Sabitler = ChartSpace1.Constants
' Chartspace1'e yeni bir grafik ekler.
Set YeniGrafik = ChartSpace1.Charts.Add
' Grafik türünü belirler.
YeniGrafik.Type = Sabitler.chChartTypePie3D
' Grafiği dizilere bağlar.
YeniGrafik.SetData Sabitler.chDimSeriesNames, _
Sabitler.chDataLiteral, SeriIsmi
YeniGrafik.SeriesCollection(0).SetData Sabitler.chDimValues, _
Sabitler.chDataLiteral, Degerler
End Sub

Yukarıdaki kodlardan anlaşılıyorki;sayfa1 de yapılan toplamlar SUMPRODUCT ile toplanıyor ve labellar üzerinden sonuçlar alınıyor.
Daha sonra labellardan alınan bu veriler chartspace 'de grafik halinde gösteriliyor.
Ama userform her çalıştığında chartspace'de yanyana 1,2,3.... grafik ekliyor.
Benim sorum ise; userforma 1 adet grafik ekledikten sonra labellardaki değişim bu grafik üzerinde olsun

bu kodları kaldırıp;
Dim YeniGrafik
' Chartspace1'e yeni bir grafik ekler.
Set YeniGrafik = ChartSpace1.Charts.Add
' Grafik türünü belirler.
YeniGrafik.Type = Sabitler.chChartTypePie3D

aşağıda yazan kodlara dizileri bağlamaya çalışmak;
' Grafiği dizilere bağlar.
YeniGrafik.SetData Sabitler.chDimSeriesNames, _
Sabitler.chDataLiteral, SeriIsmi
YeniGrafik.SeriesCollection(0).SetData Sabitler.chDimValues, _
Sabitler.chDataLiteral, Degerler

sevgi ve saygıyla
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Sayın Etekin

Kod:
Set YeniGrafik = ChartSpace1.Charts.Add
Satırının bir üstüne
Kod:
If ChartSpace1.Charts.Count > 0 Then ChartSpace1.Charts.Delete 0
Satırını ekleyin. Böylelikle önce eklenen grafik silinecek ve yenisi eklenecektir.

Yani şu şekilde olmalı
Kod:
.
.
.
If ChartSpace1.Charts.Count > 0 Then ChartSpace1.Charts.Delete 0
Set YeniGrafik = ChartSpace1.Charts.Add
.
.
.
 
Katılım
25 Aralık 2006
Mesajlar
109
Excel Vers. ve Dili
Excel 2007 Türkçe
Sayın Alpin
Yazmış olduğunuz işlemi ben aşağıdaki gibi yapıyorum.Bir öncekini siliyor ve değişikliği yapılmış olan yeni grafik yeni sonuç ile gösteriyor.Userform üzerinde chartspace ile oluşturulan grafiğe userform da iken Properties-Custom üzerinden istediğim değişiklikleri yapıyorum ama userform çalıtığında yeni bir grafik eklediği için benim yapmış olduğum değişiklik kayboluyor.

Private Sub CommandButton1_Click()
UserForm1.Hide
ChartSpace1.Clear
End Sub
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Private Sub CommandButton1_Click()
UserForm1.Hide
ChartSpace1.Clear
End Sub

Kodlarını kullandığınıza göre yukarıda verdiğim örneği kullanmanıza gerek yok bunu anladım fakat diğerini pek anlayamadım.
Acaba bu sorun formun Activate olayına yazıldığı için mi oluyor. Bu kodları Formun Activate olayından silin ve bir düğmenin click olayına yazın.

Yanlış anlamışsam sorunuzu biraz daha açar mısınız?
 
Katılım
25 Aralık 2006
Mesajlar
109
Excel Vers. ve Dili
Excel 2007 Türkçe
Sayın Leventm

Vermiş olduğunuz linkleri inceledim.Ayrı bir grafik sekmesi yapılıp gösterim oluyor.Ama grafik sekmesi olmadan userform üzerinde manuel olarak grafik oluşturulup (properties-custom) bunun üzerinde değişiklikleri göstermek istiyorum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosyanızı eklerseniz onun üzerinden çözüm bulmak daha kolay olacaktır.
 
Katılım
25 Aralık 2006
Mesajlar
109
Excel Vers. ve Dili
Excel 2007 Türkçe
Sayın Leventm
Vermiş olduğunuz linklerdeki kodlardan yararlanarak, benim kodları aşağıdaki gibi yaptım ve oldu.İlgilenen tüm arkadaşlara çık teşekkür ederim.

Private Sub UserForm_Activate()
Dim SeriIsmi(1)
Dim Degerler(3)
Dim Sabitler

SeriIsmi(0) = "Örnek Değer"
Degerler(0) = Val(Me.Label4.Caption)
Degerler(1) = Val(Me.Label5.Caption)
Degerler(2) = Val(Me.Label6.Caption)
With ChartSpace1
Set c = .Constants
.Charts.Add
' Grafiği dizilere bağlar.
With .Charts(0)
.Type = c.chChartTypeArea
.SetData c.chDimSeriesNames, _
c.chDataLiteral, SeriIsmi
.SeriesCollection(0).SetData c.chDimValues, _
c.chDataLiteral, Degerler
End With
End With
End Sub

Sevgi ve saygıyla...:icelim:
 
Üst