20.09.2018, 13:15
Seiten: 1 2
20.09.2018, 13:53
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?
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?
20.09.2018, 13:59
Hallo Ralf,
im Normalfall sollte es reichen, das Makro nach Einfügen eines Datensatzes ein mal für selbigen zu starten 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.
im Normalfall sollte es reichen, das Makro nach Einfügen eines Datensatzes ein mal für selbigen zu starten 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 ..
20.09.2018, 14:07
Hi André,
ich hatte es mir so gedacht, aber das klappt nicht:
If iRow > ActiveChart.SeriesCollection.Index Then
auch nicht mit Number statt Index.
ich hatte es mir so gedacht, aber das klappt nicht:
If iRow > ActiveChart.SeriesCollection.Index Then
auch nicht mit Number statt Index.
20.09.2018, 14:16
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
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
20.09.2018, 14:30
hi,
so funktioniert es jetzt mal für eine hinzugefügte Reihe:
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
21.09.2018, 06:46
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
21.09.2018, 06:59
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
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
21.09.2018, 07:13
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
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
21.09.2018, 08:53
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
Könnte mir jemand den richtigen Code nennen?
Vielen Dank!
Lukas
Seiten: 1 2