6/27/2014 11:35 AM | |
Posts: 22 Rating: (1) |
Hi Komi 1000 Thanks for your script, it works realy fine. But now i have got two more questions. 1. You use a kind if 3D pie chart, how do you do this? I create my chart with the following code: [code]oChart.Type = chConstants.chChartTypePie[/code] Would be nice if you could tell me how to create a 3D pie chart. 2. Inside your chart you display the values of the single pie pieces, in green color. How to insert the values, maybe also in % ? How to format the color of the values ? I will give you my code for creating my "PieChart". This script is operated, when the picture in runtime is opened. The comments are in german language, 'cause i am from Germany [code]Sub OnOpen() 'Info: Namen der Grafikobjekte im Bild 'Spreadsheet, ChartSpace 'Office WebKomponent Konstanten erzeugen 'Wird benötigt, da Namenskonstanten in VBS nicht vorhanden sind 'Quelle: http://msdn.microsoft.com/en-us/library/office/aa204193(v=office.11).aspx Dim chConstants 'Objektreferenzen der Objekte im Bild Dim oSheet 'Spreadsheet in die Werte zum Zeichnen des Diagramms zwischengespeichert werden Dim ChartSpace1 'ChartSpace zur Ausgabe des Diagramms 'Objektreferenzen erzeugen Set oSheet = ScreenItems("Spreadsheet") Set ChartSpace1 = ScreenItems("ChartSpace") 'Konstanten des ChartSpace erzeugen Set chConstants = ChartSpace1.Constants ChartSpace1.Visible = 0 'Sichtbarkeit wird FALSE -> wird am Ende des Scripts TRUE ' Das Spreadsheet mit Daten befüllen With oSheet .Range("A1").Formula = "Laden aktiv" .Range("A2").Formula = "Laden fertig" .Range("A3").Formula = "Fehler" .Range("A4").Formula = "Laden fertig und abgekühlt" .Range("A5").Formula = "Betriebsbereit" .Range("B1").Formula = HMIRuntime.Tags("Ladegeraet[0]_Zaehler_Minuten_DI_1_Laden_aktiv").Read .Range("B2").Formula = HMIRuntime.Tags("Ladegeraet[0]_Zaehler_Minuten_DI_2_Laden_fertig").Read .Range("B3").Formula = HMIRuntime.Tags("Ladegeraet[0]_Zaehler_Minuten_DI_3_Fehler").Read .Range("B4").Formula = HMIRuntime.Tags("Ladegeraet[0]_Zaehler_Minuten_DI_4_Laden_fertig_und_abgekuehlt").Read .Range("B5").Formula = HMIRuntime.Tags("Ladegeraet[0]_Zaehler_Minuten_DI_5_Betriebsbereit").Read End With ' Erstelle ein Kreisdiagramm mit den Daten aus dem Spreadsheet Dim oChart With ChartSpace1 .Clear .Refresh .Interior.Color = RGB(211, 211, 211) 'Hintergrundfarbe auf Grau stellen .DataSource = oSheet.Object ' Legende ein/aus schalten .HasChartSpaceLegend = False ' Positioniere die Legende '.ChartSpaceLegend.Position = chConstants.chLegendPositionTop ' Überschrift ein/aus schalten .HasChartSpaceTitle = True '.ChartSpaceTitle.Position = chConstants.chTitlePositionTop ' Überschrift festlegen .ChartSpaceTitle.Caption = "Geräteauslastung" 'Werte des Spreadsheets an CharSpace übergeben Set oChart = .Charts.Add oChart.Type = chConstants.chChartTypePie oChart.SetData 1, 0, "A1:A5" 'Spalte der Tabelle, Startzeile, Länge oChart.SetData 2, 0, "B1:B5" 'Spalte der Tabelle, Startzeile, Länge End With ChartSpace1.Visible = 1 'Sichtbarkeit auf TRUE Dim i, c Set c = ScreenItems("ChartSpace").Constants With oChart.SeriesCollection(0) For i = 0 To .points.count -1 .Points(i).interior.Color = Array( RGB(100,100,100), RGB(200,200,200), RGB(0,255,255), RGB(255,0,0), vbBlue) (i) Next End With Set c = Nothing End Sub[/code] Thank's a lot! Yours michstein |
7/1/2014 3:42 PM | |
Posts: 22 Rating: (1) |
Thank you for your answers. It's working now! |
Last edited by: michstein_ at: 7/1/2014 3:42 PM |
|
This contribution was helpful to1 thankful Users |
Follow us on