Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
hier hat sich ein Z eingeschlichen:
iZRow
das muss raus.
Dein Diagramm heißt Diagramm1?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): 2016 + 365
20.09.2018, 13:53
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2018, 13:53 von Rabe.)
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?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
20.09.2018, 13:59
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2018, 13:59 von schauan.)
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.
Zitat:"Option Explicit"
Ja, meine Grundeinstellung ist das. Aber dann kommt immer mal 'ne Beispieldatei ohne und wenn man nicht gleich überall hin schaut ..
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): 2016 + 365
20.09.2018, 14:07
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2018, 14:08 von Rabe.)
Hi André,
ich hatte es mir so gedacht, aber das klappt nicht:
If iRow > ActiveChart.SeriesCollection.Index Then
auch nicht mit Number statt Index.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
20.09.2018, 14:16
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2018, 14:17 von schauan.)
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
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): 2016 + 365
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
Registriert seit: 14.09.2018
Version(en): 2010
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
Registriert seit: 14.09.2018
Version(en): 2010
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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
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
Registriert seit: 14.09.2018
Version(en): 2010
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