Blasendiagramm

Hallo,
ich habe eine Excel Tabelle mit 4 Spalten und 70 Zeilen. Daraus möchte ich ein Blasendiagramm erstellen.

In der A-Spalte sind die Namen von verschiedenen Produkten, in der B Spalte die Preise der Produkte, in der C Spalte die Qualität und in der D Spalte die Menge abgebildet.

Ich möchte nun diese Daten in ein Blasendiagramm übertragen, dabei sollen

die X-Werte der B-Spalte,
die Y-Werte der C Spalte,
die Blasengröße der D Spalte entsprechen.

Die einzelnen Blasen sollen nach Produkten (Spalte A) farblich geordnet sein, dies funktionert aber nicht automatisch!

Was kann ich tun? X, y, und Blasengröße kann ich über „Datenquelle“ problemlos definieren, aber das mit den verschiedenen Farben pro Blase funktioniert einfach nicht! Ich möchte nicht alles einzeln engeben müssen…

Ich habe in einem anderen Forum gelesen, dass man da was mit Makros machen muss… ich kenne mich mit VBA leider überhaupt garnicht aus, hab es noch nie in meinem Leben angewandt!

Bitte helft mir, und wenn mit Makros, dann für Dummies erklärt! :wink:

LG
Claudia

Hi Claudia,

na, dann fangen wir doch gleich mal mit Makros an :smile:
Keine Sorge, das kriegst du locker hin :smile:

Am besten du machst eine Kopie deiner Datei und testest an dieser.
Fürs testen wie das geht brauchst du auch nicht 70 Zeilen, schmeiß 60 raus, das macht es übersichtlicher.

Dann erstelle dein Blasendiagramm wie gewohnt.
Jetzt Extras-Makro-Aufzeichnen, im erscheinenden Fensterchen Speicherort DieseArbeitsmappe auswählen, Ok.

Nun änderst du bei ca. 3 Blasen die Farben manuell ab, dann beendest du die makroaufzeichnung, entweder, wenn sichtbar in dem winzigen Fensterchen, wenn dieses nicht sichtbar, sichtbar machen über Ansicht-Symbolleisten-AufzeichnenBeenden.

Nun Alt+F11, links müßtest du „Modul1“ sehen, darauf DOPPELklicken, im Fenster siehst du dann den aufgezeichneten Code.
Es ist der Code deines ersten selbst erstellten Makros :smile:
Diesen Code markierst du, Strg+C und und kopierst ihn in deine Antwort auf meinen Beitrag.

Ich, andere schauen dann wie man ihn umschreibt damit er alle Blasen farbig markiert.

Anstelle dessen kannst du auch eine Kopie deiner Originaldatei hier hochladen, via http://hostarea.de und hier den Link nennen.

Die eigentlichen Daten sind für uns wurscht, die kannst du anonymisieren, also durch Zufallswerte ersetzen, falls die SO wichtig sind.

Gruß
Reinhard

Ich möchte nun diese Daten in ein Blasendiagramm übertragen,
dabei sollen
die X-Werte der B-Spalte,
die Y-Werte der C Spalte,
die Blasengröße der D Spalte entsprechen.
Die einzelnen Blasen sollen nach Produkten (Spalte A) farblich
geordnet sein, dies funktionert aber nicht automatisch!
Ich habe in einem anderen Forum gelesen, dass man da was mit
Makros machen muss… ich kenne mich mit VBA leider überhaupt
garnicht aus, hab es noch nie in meinem Leben angewandt!
Bitte helft mir, und wenn mit Makros, dann für Dummies
erklärt! :wink:

Am besten du machst eine Kopie deiner Datei und testest an
dieser.
Fürs testen wie das geht brauchst du auch nicht 70 Zeilen,
schmeiß 60 raus, das macht es übersichtlicher.

Dann erstelle dein Blasendiagramm wie gewohnt.
Jetzt Extras-Makro-Aufzeichnen, im erscheinenden Fensterchen
Speicherort DieseArbeitsmappe auswählen, Ok.

Nun änderst du bei ca. 3 Blasen die Farben manuell ab, dann
beendest du die makroaufzeichnung, entweder, wenn sichtbar in
dem winzigen Fensterchen, wenn dieses nicht sichtbar, sichtbar
machen über Ansicht-Symbolleisten-AufzeichnenBeenden.

Nun Alt+F11, links müßtest du „Modul1“ sehen, darauf
DOPPELklicken, im Fenster siehst du dann den aufgezeichneten
Code.
Es ist der Code deines ersten selbst erstellten Makros :smile:
Diesen Code markierst du, Strg+C und und kopierst ihn in deine
Antwort auf meinen Beitrag.

Ich, andere schauen dann wie man ihn umschreibt damit er alle
Blasen farbig markiert.

Hallo Reinhard,

so, ich hab mich mal an den Makros versucht… :smile:

Habe das Diagramm mit 10 Zeilen erstellt und dann drei geändert, folgendes kam raus:

Sub Makrotest()

’ Makrotest Makro
’ Makro am 02.04.2008 von lyjky aufgezeichnet


ActiveChart.ChartType = xlBubble3DEffect
ActiveChart.ChartType = xlBubble3DEffect
ActiveChart.ChartType = xlBubble3DEffect
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = „=Tabelle1!R1C2“
ActiveChart.SeriesCollection(1).Values = „=Tabelle1!R1C3“
ActiveChart.SeriesCollection(1).Name = „=Tabelle1!R1C1“
ActiveChart.SeriesCollection(1).BubbleSizes = „=Tabelle1!R1C4“
ActiveChart.SeriesCollection(2).XValues = „=Tabelle1!R2C2“
ActiveChart.SeriesCollection(2).Values = „=Tabelle1!R2C3“
ActiveChart.SeriesCollection(2).Name = „=Tabelle1!R2C1“
ActiveChart.SeriesCollection(2).BubbleSizes = „=Tabelle1!R2C4“
ActiveChart.SeriesCollection(3).XValues = „=Tabelle1!R3C2“
ActiveChart.SeriesCollection(3).Values = „=Tabelle1!R3C3“
ActiveChart.SeriesCollection(3).Name = „=Tabelle1!R3C1“
ActiveChart.SeriesCollection(3).BubbleSizes = „=Tabelle1!R3C4“
ActiveChart.ChartType = xlBubble3DEffect
End Sub

Sagt euch das was?

Wenn ja, wärs nett, wenn ihr den umschreiben könntet! :smile:

Lg
Claudia

Anstelle dessen kannst du auch eine Kopie deiner Originaldatei
hier hochladen, via http://hostarea.de und hier den Link
nennen.

Ich hab sicherheitshalber auch mal die Datei hochgeladen:

Hier ist sie!

http://www.hostarea.de/server-04/April-20f0109f31.xls

Gruß

Claudia

Hi lyjky :smile:,

ich kann im Code erstmal überhaupt gar nicht erkennen, daß da Farben geändert wurden!?

Aber gut ist daß du eine Beispieldatei hochgeladen hast, die lade ich mir runter und schaue mal, dauert aber min. bis morgen, hier kann ich nichts testen bzw. wil nihct, weil ich hier z.B. keine VBa-Hilfe habe usw.

Gruß
Reinhard

Habe das Diagramm mit 10 Zeilen erstellt und dann drei
geändert, folgendes kam raus:

Sub Makrotest()

’ Makrotest Makro
’ Makro am 02.04.2008 von lyjky aufgezeichnet


ActiveChart.ChartType = xlBubble3DEffect
ActiveChart.ChartType = xlBubble3DEffect
ActiveChart.ChartType = xlBubble3DEffect
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = „=Tabelle1!R1C2“
ActiveChart.SeriesCollection(1).Values = „=Tabelle1!R1C3“
ActiveChart.SeriesCollection(1).Name = „=Tabelle1!R1C1“
ActiveChart.SeriesCollection(1).BubbleSizes =
„=Tabelle1!R1C4“
ActiveChart.SeriesCollection(2).XValues = „=Tabelle1!R2C2“
ActiveChart.SeriesCollection(2).Values = „=Tabelle1!R2C3“
ActiveChart.SeriesCollection(2).Name = „=Tabelle1!R2C1“
ActiveChart.SeriesCollection(2).BubbleSizes =
„=Tabelle1!R2C4“
ActiveChart.SeriesCollection(3).XValues = „=Tabelle1!R3C2“
ActiveChart.SeriesCollection(3).Values = „=Tabelle1!R3C3“
ActiveChart.SeriesCollection(3).Name = „=Tabelle1!R3C1“
ActiveChart.SeriesCollection(3).BubbleSizes =
„=Tabelle1!R3C4“
ActiveChart.ChartType = xlBubble3DEffect
End Sub

Sagt euch das was?

Wenn ja, wärs nett, wenn ihr den umschreiben könntet! :smile:

Lg
Claudia

Grüeze Claudia

die X-Werte der B-Spalte,
die Y-Werte der C Spalte,
die Blasengröße der D Spalte entsprechen.

Die einzelnen Blasen sollen nach Produkten (Spalte A) farblich
geordnet sein, dies funktionert aber nicht automatisch!

Was kann ich tun? X, y, und Blasengröße kann ich über
„Datenquelle“ problemlos definieren, aber das mit den
verschiedenen Farben pro Blase funktioniert einfach nicht! Ich
möchte nicht alles einzeln engeben müssen…

Wenn Du die zusammen gehörenden Produke als gemeinsame Datenreihen erfasst, dann haben dieser auch gemeinsam dieselbe Farbe.

Erfasse also die ersten drei Zeilen zusammen, dann die viert einzeln und anschliessend ab der fürnten Zeile bis zum Ende nochmals alle Werte.
Diese drei Datenreihen kannst du dann nach deinen Wünschen einfärben.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Erfasse also die ersten drei Zeilen zusammen, dann die viert
einzeln und anschliessend ab der fürnten Zeile bis zum Ende
nochmals alle Werte.
Diese drei Datenreihen kannst du dann nach deinen Wünschen
einfärben.

Hallo,
danke für den Tipp, das genau ist aber mein Problem. Ich brauche nicht nur drei verschiedene Datenreihen, sondern 70!

Außerdem muss ich insgesamt 14 verschiedene Blasendiagramme erstellen, da ist es ein enormer Arbeitsaufwand, wenn ich jede Zeile als neue Datenreihe eingeben muss.

Geht das Eingeben von Datenreihen nicht automatisch? Vielleicht doch mit Makros?

Liebe Grüße
Claudia

ich kann im Code erstmal überhaupt gar nicht erkennen, daß da
Farben geändert wurden!?

Hallo Reinhard,

ich habe auch nicht wirklich Farben geändert, sondern Datenreihen definiert!

Tschuldigung, dass ich mich vorher nicht richtig ausgedrückt hab, aber ich bin leider nicht so der Excel-Experte! :smile:

Lg
lyjky :wink:

Grüezi Claudia

Erfasse also die ersten drei Zeilen zusammen, dann die viert
einzeln und anschliessend ab der fürnten Zeile bis zum Ende
nochmals alle Werte.
Diese drei Datenreihen kannst du dann nach deinen Wünschen
einfärben.

danke für den Tipp, das genau ist aber mein Problem. Ich
brauche nicht nur drei verschiedene Datenreihen, sondern 70!

Außerdem muss ich insgesamt 14 verschiedene Blasendiagramme
erstellen, da ist es ein enormer Arbeitsaufwand, wenn ich jede
Zeile als neue Datenreihe eingeben muss.

Was heisst denn hier ‚jede Zeile‘?
Ich dachte es gibt Gruppen, die zusammengehören?

Jeden einzelnen Wert kannst Duunterscheiden indem Du die ganzen Spalten markierst und alles als eine Datenreihe einfügst.
Dann kannst Du über die Optionen der Datenreihe im Register ‚Optionen‘ den Haken setzen bei [x]Punktfarbunterscheidung.
So hat dann jeder Punkt eine eigene Farbe.

Geht das Eingeben von Datenreihen nicht automatisch?

Da musst Du dich schon genauer ausdrücken was denn wie genau geschehen soll.

Soll jede Zeile eine eigene Farbe erhalten oder sollen gewisse Gruppen von Werten dieselbe Farbe haben?

Leider hast Du das bisher nur sehr ungenau definiert.

Vielleicht doch mit Makros?

Auch ein Makro macht nur was es angewiesen wird zu tun - daher die Frage nach welchen Kriterien denn die Gruppen gebildet werden sollen (falls das überhaupt zur fugabe gehört).


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo,

Was heisst denn hier ‚jede Zeile‘?
Ich dachte es gibt Gruppen, die zusammengehören?

Nein, es gibt keine Gruppen die zusammengehören, jede Zeile soll als Blase dargestellt werden.

Jeden einzelnen Wert kannst Duunterscheiden indem Du die
ganzen Spalten markierst und alles als eine Datenreihe
einfügst.
Dann kannst Du über die Optionen der Datenreihe im Register
‚Optionen‘ den Haken setzen bei [x]Punktfarbunterscheidung.
So hat dann jeder Punkt eine eigene Farbe.

Danke, das hilft mir schonmal weiter.

Perfekt fänd ich es jedoch, wenn ich meine Tabelle markieren könnte, und sich dann mittels des Diagrammassistenten jede Zeile automatisch als einzelne Blase mit eigener Farbe und eigenem Eintrag in der Legende darstellen ließe.

Ich möchte die Datenreihen nicht alle einzeln eingeben müssen.

Ist das gut genug beschrieben und überhaupt möglich?

Liebe Grüße
Claudia

Nein, es gibt keine Gruppen die zusammengehören, jede Zeile
soll als Blase dargestellt werden.
Perfekt fänd ich es jedoch, wenn ich meine Tabelle markieren
könnte, und sich dann mittels des Diagrammassistenten jede
Zeile automatisch als einzelne Blase mit eigener Farbe und
eigenem Eintrag in der Legende darstellen ließe.
Ich möchte die Datenreihen nicht alle einzeln eingeben müssen.
Ist das gut genug beschrieben und überhaupt möglich?

Hi Claudia,

schau mal hier:

http://www.hostarea.de/server-04/April-d5f3558292.xls

Du mußt da in Blatt „Tabelle1“ nur in Spalte E jeweils die Farbzahl angeben (0-56) pro Zeile, dan auf den Button klicken.
Im Blatt „Diagramm2“ wird dann automatisch geprüft wieviele Zeilen es gibt, dementspreched werden genausoviele Blasen erstellt, dann die Werte und die Fraben zugewiesen.

Im Blatt „Farbe“ siehst du welcher Farbwert(Zeilennummer) welcher Farbe entspricht.
Gefüllt wurde Blatt „Farbe“ mit dem Makro „F“.

Nachfolgend der Code.

Gruß
Reinhard

Option Explicit
'
Sub Farbe()
Dim Zei As Long, Z As Long, strTabelle As String, strDiagramm As String
strTabelle = "Tabelle1"
strDiagramm = "Diagramm2"
Application.ScreenUpdating = False
With Worksheets(strTabelle)
 Zei = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
Sheets(strDiagramm).Activate
With ActiveChart
 While .SeriesCollection.Count \> Zei
 .SeriesCollection(.SeriesCollection.Count).Delete
 Wend
 While .SeriesCollection.Count 

Grüezi Claudia

Was heisst denn hier ‚jede Zeile‘?
Ich dachte es gibt Gruppen, die zusammengehören?

Nein, es gibt keine Gruppen die zusammengehören, jede Zeile
soll als Blase dargestellt werden.

Ich möchte die Datenreihen nicht alle einzeln eingeben müssen.

Ist das gut genug beschrieben und überhaupt möglich?

Wenn deine Daten in A1 beginnen wie in deiner Mustermappe dann kannst Du die folgenden Zeilen nutzen um das Diagramm zu erzeugen:

Sub Create\_Bubbles()
Dim strTab As String
Dim rngZelle As Range

 strTab = ActiveSheet.Name
 Charts.Add
 ActiveChart.Location Where:=xlLocationAsObject, Name:=strTab
 With ActiveChart
 .SetSourceData \_
 Source:=Sheets("Tabelle1").Range("B1:smiley:2"), \_
 PlotBy:=xlColumns
 .ChartType = xlBubble3DEffect
 .SeriesCollection(2).Delete
 .SeriesCollection(1).Delete
 For Each rngZelle In Range("A:A")
 If rngZelle = "" Then Exit For
 .SeriesCollection.NewSeries
 .SeriesCollection(rngZelle.Row).Name = "=" & strTab & "!R" & rngZelle.Row & "C1"
 .SeriesCollection(rngZelle.Row).XValues = "=" & strTab & "!R" & rngZelle.Row & "C2"
 .SeriesCollection(rngZelle.Row).Values = "=" & strTab & "!R" & rngZelle.Row & "C3"
 .SeriesCollection(rngZelle.Row).BubbleSizes = "=" & strTab & "!R" & rngZelle.Row & "C4"
 If rngZelle.Row = 2 Then
 ActiveChart.ChartType = xlBubble3DEffect
 End If
 Next rngZelle
 End With
End Sub

ES können max. 56 Farben verwendt werden - hier werden diese automatisch zugewiesen.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Thomas,

ich habe ja ähnlichen Code geschrieben, auf XL97 entwickelt, das ging dann wegen einem Punkt nicht mehr, ich mußte auf XL2000 wechseln, denn
.BubbleSizes…
ergab Debuggerfehler in XL97.
In der Hilfe von XL97 steht, man muß das in der A1-Schreibweise eingeben, das brachte auch nix, egal wie ich versuchte das zu schreiben.
In XL2000 läuft mein Code problemlos, deiner sicher auch, aber ich bin brettsicher bei/in XL97 hängt sich dein Code auch bei .BubbleSize auf.

Nun gut, ich glaube, wegen ähnlicher Problematiken lasse ich das sowieso langsam mit dem XL97, immerhin schon 11 Jahre her, aber interessieren würde es mich trotzdem, wie damals die Jungs das Kap „BubbleSize“ umschifften und evtl. Lösungen fanden.

Frage: wie gab man bei XL97 die Größe so einer Blase per Makro ein?

Ups, mir fällt grad auf, wenn du jetzt antworten würdest, zeichne mal ein Makro auf in XL97, da wüßte ich grad echt nicht, tat ich das schon *70%* oder noch nicht *30%* *grübel* :smile:

Lieben Gruß
Reinhard

Hallo Reinhard!

Erstmal Vielen Dank!! Es funktioniert, juhu! :smile:

Jetzt wäre eins meiner Probleme schonmal gelöst! :wink:

Allerdings habe ich einige Tabellen, für die ich das Blasendiagramm anfertigen muss, nicht alle Zeilen befüllt.

Wenn ich bei diesen Tabellen das Makro ausführe, erhalte ich eine Fehlermeldung: und zwar den „Laufzeitfehler 1004“.

Klicke ich auf debuggen, ist (je nach Tabelle) eine der folgenden Zeilen gelb markiert:

Wend
For Z = 1 To Zei
.SeriesCollection(Z).Name = „=“ & strTabelle & „!R“ & Z
& „C1“

.SeriesCollection(Z).XValues = „=“ & strTabelle & „!R“ &
Z & „C2“

.SeriesCollection(Z).Values = „=“ & strTabelle & „!R“ &
Z & „C3“

.SeriesCollection(Z).BubbleSizes = „=“ & strTabelle &
„!R“ & Z & „C4“

.SeriesCollection(Z).Interior.ColorIndex =
Worksheets(strTabelle).Range(„E“ & Z)
Next Z
End With

Was muss man tun, damit ich auch nicht vollständig befüllte Tabellen in einem Blasendiagramm darstellen kann?

Liebe Grüße

Claudia

Hallo Claudia,

Erstmal Vielen Dank!! Es funktioniert, juhu! :smile:

schön :smile:

Allerdings habe ich einige Tabellen, für die ich das
Blasendiagramm anfertigen muss, nicht alle Zeilen befüllt.
Wenn ich bei diesen Tabellen das Makro ausführe, erhalte ich
eine Fehlermeldung: und zwar den „Laufzeitfehler 1004“.
Klicke ich auf debuggen, ist (je nach Tabelle) eine der
folgenden Zeilen gelb markiert:

„eine der“ ! ?
So wird das nix, ich brauche da genauere Informationen, bei welcher Tabelle wird welche Zeile markiert.
Und, wenn du vor die Zeile ein Hochkomma setzt und F5 klickst, läuft dann der Rest durch oder welche Zeile wird dann markiert, usw.

Erstelle mal eine kleine Beispielmappe mit verschiedenen Blättern mit den wohl unterschiedlich befüllten Datenquellen wo die von dir genannten unterschiedlichen verschiedenen Fehler auftreten, samt aktuellem Makro (ich weiß ja nicht wie du es evtl. angepasst hast) und lade die hoch, auch bei www.hostarea.de oder sonstwo und poste hier die Adresse

Gruß
Reinhard

Und, wenn du vor die Zeile ein Hochkomma setzt und F5 klickst,
läuft dann der Rest durch oder welche Zeile wird dann
markiert, usw.

Oh, das mit dem Hochkomma klappt! Juhu! Vielen Dank nochmal! :smile:

Oh, das mit dem Hochkomma klappt! Juhu! Vielen Dank nochmal!

-)

HI Claudia,

ähem, ich will ja deinen Freudentaumel nicht unterbrechen, aber das Hochkomma bedeutet daß die jeweilige Codezeile NICHT ausgeführt wird.
Nu wenn das in Ordnung ist isses ja okay mit deinem Jubel :smile:

Gruß
Reinhard