Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Diagramm verschwunden

Empfohlene Antworten

Veröffentlicht

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

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

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

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

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

Nein, das Diagramm ist nicht eingebettet.

Schaf

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.