Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1428to1432
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
Bubble Chart: VBA neues Textfeld & RGB Farben
17.06.2015 12:29:49
Susanne
Hallo,
ich habe 2 Probleme:
1. Neues!, zentriertes Textfeld in einem Bubblechart erstellen und Text auslesen
Ausgangslage:
a) Es existiert ein Bubblechart in dem die Bubblegröße zentriert angezeigt wird (siehe Beispiel).
b) Mittels eines Makros (aus dem Forum) lassen ich Text (Beschriftung) aus einer Spalte einlesen.
Problem: Das Makro nimmt das Textfeld in dem vorher die Bubblegröße stand und erzeugt kein neues, ebenfalls zentriertes Textfeld (Makro im Beispiel enthalten).
2. RGB-Farbzuweisung in einem Bubbelchart aus einer Spalte
Ziel: Es existiert ein Bubblechart (siehe Beispiel). Jeder Bubble soll die RGB-Farbe haben, die in der Spalte E steht.
Anmerkung: Per Google habe ich nur so etwas ähnliches gefunden (http://mollerhansen.blogspot.de/2013/02/excel-bubble-chart-macro.html) und bin leider zu unerfahren es zu adaptieren.
Beispiel: https://www.herber.de/bbs/user/98265.xlsm
Vielen Dank im Voraus
Susanne

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bubble Chart: VBA neues Textfeld & RGB Farben
17.06.2015 19:42:31
Beverly
Hi Susanne,
weshalb benötigst du ein extra Textfeld - du kannst doch sowohl den Wert als auch den Inhalt der Spalte A im Beschriftungslabel anzeigen lassen:
Sub Beschriftung()
Dim lngPunkt As Long
Dim strFormel As String
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
strFormel = Application.Substitute(Split(.Formula, ",")(1), ")", "")
For lngPunkt = 1 To .Points.Count
.Points(lngPunkt).DataLabel.Text = Range(strFormel).Cells(lngPunkt).Offset(0, -1) _
& ": " & vbLf & Range(strFormel).Cells(lngPunkt).Offset(0, 2)
.Points(lngPunkt).DataLabel.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = _
RGB(0, 0, 0)
Next lngPunkt
End With
End Sub

Die Farbe kannst du wie folgt zuweisen:

Sub Farbe()
Dim lngPunkt As Long
Dim strFormel As String
Dim intR As Integer
Dim intG As Integer
Dim intB As Integer
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
strFormel = Application.Substitute(Split(.Formula, ",")(4), ")", "")
For lngPunkt = 1 To .Points.Count
If Range(strFormel).Cells(lngPunkt).Offset(0, 1)  "" Then
intR = CInt(Split(Range(strFormel).Cells(lngPunkt).Offset(0, 1).Value, ",")(0))
intG = CInt(Split(Range(strFormel).Cells(lngPunkt).Offset(0, 1).Value, ",")(1))
ingb = CInt(Split(Range(strFormel).Cells(lngPunkt).Offset(0, 1).Value, ",")(2))
.Points(lngPunkt).Format.Fill.ForeColor.RGB = RGB(intR, intG, intB)
End If
Next lngPunkt
End With
End Sub



Anzeige
AW: Bubble Chart: VBA neues Textfeld & RGB Farben
18.06.2015 09:17:16
Susanne
Hallo Karin,
das mit den Farben (Problem 2) funktioniert super. Danke für Deine Hilfe!
Zu Problem 1: Beides in einem Textfeld anzeigen lassen, kann Excel von sich aus. Ich benötige jedoch ein neues Textfeld, weil ich dieses manuell ausrichten will und gleichzeitig jedoch die Bubblegröße zentriert anzeigen lassen möchte (habe sehr viele Daten, sehr enge Datenpunkte und lange Texte weswegen ich sie händisch ausrichten muss damit sich nichts überlagert).
Daher meine Frage: Wie muss das Makro (das aus dem Beispiel) editiert werden, damit es ein neues! Textfeld erzeugt?
Gruß
Susanne

Anzeige
AW: Bubble Chart: VBA neues Textfeld & RGB Farben
18.06.2015 10:32:02
Beverly
Hi Susammen,
Zitat: Beides in einem Textfeld anzeigen lassen, kann Excel von sich aus.
Das trifft nur bedingt zu, und zwar nur dann, wenn man X- und/oder Y-Wert und/oder Name der Datenreihe zusammen anzeigen will - also Angaben, auf denen das Diagramm basiert. In deinem Fall willst du jedoch keine der 3 genannten Beschriftungen anzeigen sondern den Inhalt völlig von den Daten unabhängiger Zellen - und das geht, soweit ich weiß - jedoch erst ab Excelversion 2013. Falls das schon ab 2010 geht, will ich nichts gesagt haben - in den Versionen vor 2010 geht es jedenfalls definitiv nicht.
Vorschlag: benutze eine zusätzliche Datenreihe mit identischen X-/Y-Werten wie die erste Reihe, nur die Blasengröße als 0 und blende die Beschriftungslabel ein. Diese kannst du dann mit Zellen verknüpfen.


Anzeige
AW: Bubble Chart: VBA neues Textfeld & RGB Farben
18.06.2015 13:58:46
Susanne
Hallo Karin,
Du hast bestimmt Recht. Ich habe Excel 2013 (daher geht es wohl bei mir).
Den Workaround mit identischen x und y Werten mache ich schon. Ich dachte, es gäbe einen "Befehl" wie Shapes.AddTextbox-Methode z.B.:
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 30, 200, 20).Select
Laut Microsoft müsste es eigentlich funktionieren
https://msdn.microsoft.com/de-de/library/office/ff838832.aspx
Ich weiss nur nicht was AddTextbox(Orientation, Left, Top, Width, Height) ist, wenn ich x und y Werte habe und wie ich das in das vorhandene Makro bekomme. Falls es überhaupt der richtige Weg ist... ?!
Gruß
Susanne

Anzeige
AW: Bubble Chart: VBA neues Textfeld & RGB Farben
18.06.2015 16:30:39
Beverly
Hi Susammen,
in deiner Mappe kann ich nicht erkennen, dass du eine zusätzliche Datenereihe als Hilfsanzeige verwendest...
Sub Textfelder()
Dim objText As Object
Dim lngPunkt As Long
Dim strFormel As String
Dim rngZelle As Range
Dim dblOben As Double
Dim dblLinks As Double
Application.ScreenUpdating = False
With ActiveSheet.ChartObjects(1).Chart
strFormel = Split(.SeriesCollection(1).Formula, ",")(1)
For lngPunkt = 1 To .SeriesCollection(1).Points.Count
dblOben = .SeriesCollection(1).Points(lngPunkt).DataLabel.Top
dblLinks = .SeriesCollection(1).Points(lngPunkt).DataLabel.Left + _
.SeriesCollection(1).Points(lngPunkt).DataLabel.Width + 0.05
Set objText = .Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 0, 0)
With objText
.Top = dblOben
.Left = dblLinks
.TextFrame2.MarginLeft = 0
.TextFrame2.MarginRight = 0
.TextFrame2.MarginTop = 0
.TextFrame2.MarginBottom = 0
.TextFrame2.WordWrap = msoFalse
.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
.DrawingObject.Formula = "=" & _
Range(strFormel).Cells(lngPunkt).Offset(0, -1).Address
End With
Next lngPunkt
End With
Set objText = Nothing
Application.ScreenUpdating = False
End Sub


Anzeige
AW: Bubble Chart: VBA neues Textfeld & RGB Farben
19.06.2015 08:42:43
Susanne
Guten Morgen Karin,
Du bist ja klasse :-) Ich hätte das nie hinbekommen.
Großen Dank für Deine Hilfe
Susanne

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige