Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...