Veröffentlicht 10. Juli 200223 j Hallo Leute, Ich habe ein Problem mit einer Excel-Tabelle. Beim öffnen der Tabelle wird eine Funktion aufgerufen die ein Diagramm erzeugt (die Datenreihen sind Arrays). Um nun bei Änderungen in der Datentabelle das Diagramm auch zu ändern werden unter "Worksheet_change()" die Arrays aktualisiert und sollten an das Chart übergeben werden. Und hier kommt der Fehler. Er findet das Diagramm nicht, obwohl es vorhanden ist. Er geht dann in den Debugger und dort wird das Diagramm nicht angezeigt. Wenn ich allerdings den Debugger verlasse und dann wieder den Source-Code anschauen will ist das Diagramm da aber die laufende Diagrammnummer (Diagramm1, Diagramm2, Diagramm3,...) wurde um eins erhöht. Was kann ich dagegen unternehmen. Danke schon mal im vorraus. Schaf
10. Juli 200223 j Ist schwer zu sagen, was du da wohl falsch machst. Dazu ist zu wenig darueber bekannt, wie du genau das alles anstellst. Vielleicht postest mal entsprechende Stuecke aus deinem VBA Code. Daran kann man dann mehr sehen. Goos
10. Juli 200223 j Also hier werden die Arrays aktualliesiert und an das Diagramm übergeben. Wenn ich diesen Teil aus meinem Programm rausnehme wird das Diagramm ohne Probleme angezeigt und auch im Debugger sichtbar. Private Sub Worksheet_Change(ByVal Target As Range) Dim I As Integer Dim Value_Akt As Variant Dim Value_Urp As Variant Dim Value_Ver As Variant Dim Merker As Integer If ThisWorkbook.Charts.Count >= 1 Then 'Überprüfung ob überhaupt ein Chart vorhanden ist For I = 4 To Sheet5.Cells.Columns.Count 'Maximale Spaltenzahl holen If Sheet5.Cells(13, I) = "" Then Merker = I - 1 I = Sheet5.Cells.Columns.Count End If Next I 'Arrays neu dimensionieren ReDim XValue(4 To Merker) ReDim Value_Akt(4 To Merker) ReDim Value_Urp(4 To Merker) ReDim Value_Ver(4 To Merker) 'Datenupdate im Array For I = 4 To Merker XValue(I) = Sheet5.Cells(2, I) If I > 4 Then Value_Akt(I) = Val(Value_Akt(I - 1)) + Sheet5.Cells(13, I) Value_Urp(I) = Val(Value_Urp(I - 1)) + Sheet5.Cells(14, I) Value_Ver(I) = Val(Value_Ver(I - 1)) + Sheet5.Cells(15, I) Else Value_Akt(I) = Sheet5.Cells(13, I) Value_Urp(I) = Sheet5.Cells(14, I) Value_Ver(I) = Sheet5.Cells(15, I) End If Next I 'Daten an die Grafik übergeben (Und hier findet er dann das Diagramm nicht. Diagramm2.SeriesCollection(1).Values = Array(Value_Akt) Diagramm2.SeriesCollection(2).Values = Array(Value_Urp) Diagramm2.SeriesCollection(3).Values = Array(Value_Ver) End If End Sub Schaf
10. Juli 200223 j Ich wuerd sagen, dass liegt daran, dass du dein Diagramm eingebettet hast und falsch ansprichst..... Was soll eigentlich dieses Diagramm2.SeriesCollection(1).Values = Array(Value_Akt) ?? Daraus ist der Typ von Diagramm2 nicht ersichtlich. ....aber gut...sag mir einfach obs eingebettet ist oder nicht Goos
10. Juli 200223 j Im Falle eines eingebetteten Diagramms ist ein ChartObject Container fuer dein Chart, du musst es also quasi ueber Sheets("Tabelle1").ChartObjects(x).char.SeriesCollection(x).Values ansprechen. Goos
10. Juli 200223 j Ich hab meinen Fehler gefunden. So muss es lautet Application.Charts(1).SeriesCollection(1).Values = Array(Value_Akt) Danke für deine Hilfe. Schaf
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.