userform üzerinde grafik

Katılım
25 Aralık 2006
Mesajlar
109
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba Arkadaşlar

Ben yeni üyenizim.Herkese sevgi ve saygılarımı sunuyorum.

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

şeklinde bir kodlama var bu kodlamalar userform üzerinde bulunan label'lardan değerleri alıp yine userform üzerinde bulunan "chartspace" üzerinde grafik gösteriyor.
Soruma gelince;

Her userform açıldığında 1,2,3....grafik ekleniyor.
Benim istediğim sabit grafik üzerinde değerler değiştikçe grafiğin değerleri değişsin.

Sevgi ve saygıyla
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Formunuzdaki Label nesnelerini kaldırın ve 3 tane TextBox ekleyin aşağıdaki kodu kullanın.

Neden Label yerine TextBox kullandık: Label duruk metinler için kullanılan bir kontroldür dolayısı ile label metninde bir değişiklik olduğunda bir olay oluşmaz. TextBox ta ise bir değişiklik olduğunda _Change olayı oluşur. Böylelikle her değişiklikte grafik yenilenir.

Kod:
Private Sub TextBox1_Change()
    If TextBox1.Text = "" Then TextBox1.Text = 0
    GrafikÇiz
End Sub
Private Sub TextBox2_Change()
    If TextBox2.Text = "" Then TextBox2.Text = 0
    GrafikÇiz
End Sub
Private Sub TextBox3_Change()
    If TextBox3.Text = "" Then TextBox3.Text = 0
    GrafikÇiz
End Sub
Private Sub UserForm_Activate()
    GrafikÇiz
End Sub
Sub GrafikÇiz()
    Dim SeriIsmi(1)
    Dim Degerler(3)
    Dim Sabitler
    Dim YeniGrafik
    SeriIsmi(0) = "Örnek Değer"
    Degerler(0) = Val(Me.TextBox1.Value)
    Degerler(1) = Val(Me.TextBox2.Value)
    Degerler(2) = Val(Me.TextBox3.Value)
    Set Sabitler = ChartSpace1.Constants
    If ChartSpace1.Charts.Count > 0 Then ChartSpace1.Charts.Delete 0
    Set YeniGrafik = ChartSpace1.Charts.Add
    YeniGrafik.Type = Sabitler.chChartTypePie3D
    YeniGrafik.SetData Sabitler.chDimSeriesNames, _
    Sabitler.chDataLiteral, SeriIsmi
    YeniGrafik.SeriesCollection(0).SetData Sabitler.chDimValues, _
    Sabitler.chDataLiteral, Degerler
End Sub
 
Katılım
25 Aralık 2006
Mesajlar
109
Excel Vers. ve Dili
Excel 2007 Türkçe
Label'lar değer alıyor , o yüzden labellardaki değerler değişebiliyor.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Neden Label yerine TextBox kullandık: Label duruk metinler için kullanılan bir kontroldür dolayısı ile label metninde bir değişiklik olduğunda bir olay oluşmaz. TextBox ta ise bir değişiklik olduğunda _Change olayı oluşur. Böylelikle her değişiklikte grafik yenilenir.

Bu durumda Label yerine Texbox lara değer verin.
 
Katılım
25 Aralık 2006
Mesajlar
109
Excel Vers. ve Dili
Excel 2007 Türkçe
Peki textbox'lara değerleri bizmi gireceğiz.
Labellarda toplam alıyor ve değişiyor, kodların ilk yazıldığı halde labellar değiştikçe grafik değişiyor ama chartspace içerisinde her userform açıldığına yeni değişmiş bir grafik yaratıyor.

Ben ise tek bir grafik üzerinde bu değişimi istiyorum.

İlginiz ve alakanız için teşekkürler.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bence uygulamanızı buraya ekleyiniz ki daha sağlıklı bir cevap verebilelim.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bu arada yeni fark ettim sorunuzu test alanına yazmışsınız bu doğru değil.

Lütfen sorunuzu ilgili yere yeni bir başlık açarak yeniden sorunuz.
 

eceLprensi

Altın Üye
Katılım
30 Ekim 2007
Mesajlar
97
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
29-06-2025
hiç bişe anlamdım desem benimde sorunum web kontroller ama anlamıyorum
 
Üst