Schaf Geschrieben 10. Juli 2002 Geschrieben 10. Juli 2002 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 Zitieren
Goos Geschrieben 10. Juli 2002 Geschrieben 10. Juli 2002 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 Zitieren
Schaf Geschrieben 10. Juli 2002 Autor Geschrieben 10. Juli 2002 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 Zitieren
Goos Geschrieben 10. Juli 2002 Geschrieben 10. Juli 2002 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 Zitieren
Goos Geschrieben 10. Juli 2002 Geschrieben 10. Juli 2002 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 Zitieren
Schaf Geschrieben 10. Juli 2002 Autor Geschrieben 10. Juli 2002 Nein, das Diagramm ist nicht eingebettet. Schaf Zitieren
Schaf Geschrieben 10. Juli 2002 Autor Geschrieben 10. Juli 2002 Ich hab meinen Fehler gefunden. So muss es lautet Application.Charts(1).SeriesCollection(1).Values = Array(Value_Akt) Danke für deine Hilfe. Schaf Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.