Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Blasendiagramm per Makro

Blasendiagramm per Makro
20.02.2014 15:21:16
Max
Guten Tag alle zusammen,
ich steh seit ein paar Stunden vor einem Rätsel.
Da es in Excel selber ja leider nicht die Möglichkeit gibt, bei einem Blasendiagramm die Legende sinnvoll zu beschriften, habe ich mir im Internet ein Makro gesucht.
Dieses sieht wie folgt aus:
Option Explicit
Public Sub Blasendiagramm_mit_Reihe_je_Zeile()
' Erzeugt aus selektierten Daten ein Blasendiagramm mit einer Reihe pro Zeile
' Selektion muss beinhalten:
'        1. Zeile Spalten-Überschriften (werden für Diagrammbeschriftung vorgeschlagen)
'        1. Spalte Kategorien (Beschriftung für Legende, je Kategorie wird eine Datenreihe  _
erzeugt
'        2. Spalte X-Werte
'        3. Spalte Y-Werte
'        4. Spalte Blasengröße
Dim Daten As Range, wks As Worksheet, Reihe As Series
Dim i As Long
Set wks = ActiveSheet
Set Daten = Selection
Charts.Add
ActiveChart.ApplyCustomType ChartType:=xlBubble
ActiveChart.Location Where:=xlLocationAsNewSheet
With wks
ActiveChart.SetSourceData Source:=.Range(.Cells(Daten.Row + 1, Daten.Column), _
.Cells(Daten.Row + Daten.Rows.Count - 1, Daten.Column + 3)), PlotBy:=xlRows
End With
Application.ScreenUpdating = False
For i = ActiveChart.SeriesCollection.Count To 2 Step -1
ActiveChart.SeriesCollection(i).Delete
Next
For i = 1 To Daten.Rows.Count - 1
Set Reihe = ActiveChart.SeriesCollection(i)
With Reihe
.Name = "=" & wks.Name & "!R" & Daten.Row + i & "C" & Daten.Column
.XValues = "=" & wks.Name & "!R" & Daten.Row + i & "C" & Daten.Column + 1
.Values = "=" & wks.Name & "!R" & Daten.Row + i & "C" & Daten.Column + 2
.BubbleSizes = "=" & wks.Name & "!R" & Daten.Row + i & "C" & Daten.Column + 3
'.ApplyDataLabels Type:=xlDataLabelsShowBubbleSizes 'Wert Blasengröße wird angezeigt
End With
If i  Daten.Rows.Count - 1 Then
ActiveChart.SeriesCollection.NewSeries
End If
Next
Application.ScreenUpdating = True
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = InputBox("Diagrammtitel", "Neues Diagramm", Daten(1, 4))
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = InputBox("Beschriftung X-Achse: _
", "Neues Diagramm", Daten(1, 2))
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = InputBox("Beschriftung Y-Achse:",  _
"Neues Diagramm", Daten(1, 3))
End With
End Sub
Soweit so gut, allerdings wirft die Zeile
.Name = "=" & wks.Name & "!R" & Daten.Row + i & "C" & Daten.Column
immer den Laufzeitfehler 1004 aus. Im Lokalfenster kann ich auch sehen, dass "Reihe" nicht definiert ist. Kommentiere ich diese Zeile aus, läuft das Makro ohne Beanstandung durch. Nur dann werden die Datenreihen nicht benannt...
Hoffe mir kann jemand helfen.
Vielen Dank schon mal im Voraus.
Max

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blasendiagramm per Makro
20.02.2014 17:42:57
fcs
Hallo max,
aus irgendeinem Grund akzeptiert Excel 2010 und scheinbar auch Excel 2007 für den Bezug des Namens nicht nicht die Formelschreibweise im R1C1-Format sonden möchte die A1-Schreibweise.
Passse den folgenden Abschnitt des Makros an.
Die Hochkommata hab ich eingefügt, damit auch Blatt namen mit Leerzeichen oder anderen Sonderzeichen akzeptiert werden.
Gruß
Franz
      With Reihe
.Name = "='" & wks.Name & "'!" & wks.Cells(Daten.Row + i, _
Daten.Column).Address(ReferenceStyle:=xlA1)
.XValues = "='" & wks.Name & "'!R" & Daten.Row + i & "C" & Daten.Column + 1
.Values = "='" & wks.Name & "'!R" & Daten.Row + i & "C" & Daten.Column + 2
.BubbleSizes = "='" & wks.Name & "'!R" & Daten.Row + i & "C" & Daten.Column + 3
'.ApplyDataLabels Type:=xlDataLabelsShowBubbleSizes 'Wert Blasengröße wird angezeigt
End With

Anzeige
AW: Blasendiagramm per Makro
20.02.2014 18:54:44
Beverly
Hi Max,
      With Reihe
.Name = Worksheets(wks.Name).Cells(Daten.Row + i, Daten.Column)
.XValues = Worksheets(wks.Name).Cells(Daten.Row + i, Daten.Column + 1)
.Values = Worksheets(wks.Name).Cells(Daten.Row + i, Daten.Column + 2)
.BubbleSizes = Worksheets(wks.Name).Cells(Daten.Row + i, Daten.Column + 3)
'.ApplyDataLabels Type:=xlDataLabelsShowBubbleSizes 'Wert Blasengröße wird angezeigt
End With


AW: Blasendiagramm per Makro
24.02.2014 14:50:31
Max
Danke an fcs und Beverly.
Funktioniert jetzt einwandfrei.
Konnte mich nur nicht eher melden.
MfG Max
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige