Clever-Excel-Forum

Normale Version: Dynamisches Blasendiagramm
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallöchen,

hier hat sich ein Z eingeschlichen:
iZRow

das muss raus.

Dein Diagramm heißt Diagramm1?
Hi,

deswegen sollte immer "Option Explicit" verwendet werden, dann wird auf solche Fehler/Vertipper hingewiesen!


Wenn ich nun wiederholt hintereinander das Makro 2 starte, dann wird der letzte Datensatz jedesmal als neuer Datensatz in das Diagramm aufgenommen (es werden also immer mehr).
Wie können wir das verhindern?
Hallo Ralf,

im Normalfall sollte es reichen, das Makro nach Einfügen eines Datensatzes ein mal für selbigen zu starten Smile Ansonsten könnte man das über die Datenquelle / Daten auswählen bereinigen und die zusätzliche(n) Reihe(n) entfernen.
Das tangiert übrigens auch meinen Hinweis mit dem Löschen eines Datensatzes / einer Zeile. Um derartige Aktionen abzufangen müsste man etwas mehr Arbeit in die Programmierung stecken.

Zitat:"Option Explicit"
Ja, meine Grundeinstellung ist das. Aber dann kommt immer mal 'ne Beispieldatei ohne und wenn man nicht gleich überall hin schaut ..
Hi André,

ich hatte es mir so gedacht, aber das klappt nicht:

If iRow > ActiveChart.SeriesCollection.Index Then

auch nicht mit Number statt Index.
Hallo Ralf,

Du kannst mit ActiveChart.SeriesCollection.Count die Anzahl der Datenreihen feststellen. Die müsste dann beim jetzigen Blattaufbau immer eins weniger sein als die letzte Datenzeile. Dann kommt keine Datenreihe dazu. Ist sie zwei weniger, kommt eine dazu. Und wenn man nun mehr als eine Datenreihe hinzufügt könnte man entweder das Makro oder Codeteile davon mehrmals laufen lassen - rekursiv oder per Schleife - oder man startet es eben mehrmals manuell.

Löschen wäre komplizierter - lösche mal die Zeile 3 Sad
hi,

so funktioniert es jetzt mal für eine hinzugefügte Reihe:
Option Explicit

Sub Makro2()
   Dim iRow%
   'letzte Zeile feststellen 
   iRow = Cells(Rows.Count, 1).End(xlUp).Row
   'Blasendiagramm aktivieren 
   ActiveSheet.ChartObjects("Diagramm 1").Activate
   'mehr Datenzeilen als Diagramm-Reihen? 
   If iRow - 1 > ActiveChart.SeriesCollection.Count Then
      'Neue Serie hinzufuegen - Mit der neuen Serie 
      With ActiveChart.SeriesCollection.NewSeries
         'Name festlegen 
         .Name = "=Tabelle1!$A$" & iRow
         'X und Y festlegen 
         .XValues = "=Tabelle1!$B$" & iRow
         .Values = "=Tabelle1!$C$" & iRow
         'Blasengroesse festlegen 
         .BubbleSizes = "=Tabelle1!$D$" & iRow
         'Ende Neue Serie hinzufuegen - Mit der neuen Serie 
      End With
   End If
End Sub
Vielen Dank für diese hilfreichen Tipps! Bei mir funktioniert es auch!
Ich habe jetzt nur noch ein  kleines Thema denke ich, wo ich Hilfe benötigen könnte..
Es gibt in meiner Tabelle nun schon um die 30 Themen, ohne jedoch im Blasendiagramm zu sein... Wie können diese schon in dem Diagramm dargestellt werden? Oder muss ich diese Investitionen erst einmal  alle dem Diagramm hinzufügen?

Vielen Dank und Gruß 
Lukas
Und noch ein Problem:D
Meine Tabelle fängt nicht in Zeile 1, sondern in Zeile 11 an...  :20:
Wie kann ich machen, dass er erst ab da die letzte Zeile sucht?
Vielen Dank
Lukas
Hi,

dann nimm in dieser Zeile
If iRow - 1 > ActiveChart.SeriesCollection.Count Then
die 11 als Minus noch dazu.
If iRow - 1 - 11 > ActiveChart.SeriesCollection.Count Then
Hallo, das hat wirklich alles bisher wunderbar funktioniert! Vielen Dank! Doch wie mache ich das jetzt mit einem Säulendiagramm? Ich habe es schon ausprobiert: Ich möchte auf der x-Achse die Namen der Investitionen angezeigt bekommen (eine Säule, eine Investition --> direkt unter der Säule soll der Name der Investition stehen). Auf der y-Achse soll dann die Investitionshöhe stehen. Wenn ich jedoch als xValue die Investitionsnamenspalte definiere, wird nur ein Name unten angezeigt, mit jedoch allen Säulen...!
Könnte mir jemand den richtigen Code nennen? 
Vielen Dank!
Lukas
Seiten: 1 2