Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Füllung von Diagramm und Legende per VBA ändern

Füllung von Diagramm und Legende per VBA ändern
15.08.2018 17:06:56
Diagramm
Hallo an Alle,
ich lasse mir auf einer UserForm ein Diagramm anzeigen. Das funktioniert soweit problemlos. Da mir das weiße Diagramm auf einer grauen UserForm nicht so ganz zusagt möchte ich es in grau umfärben und nach dem Auslesen des Diagramms als Bild, färbe ich es wieder weiß. Dazu habe ich das ganze aufgezeichnet.
Ich lasse das Bild in einer kleinen Sub auslesen und übergebe hier die Chartnummer und das Image auf der UserForm.
Mir geht es jetzt eigentlich "nur" um die Sytax, wie ich von diesem statisch aufgezeichneten Daten es dynamisieren kann? In der letzten Zeile vor Makrorecorder habe ich das mal ersucht, leider ohne Erfolg.
Sub teste_Diagramm()
Call Bild_Anzeigen(5, UF_Main.Image_Chart_1)
End Sub

Public Sub Bild_Anzeigen(ByVal Chart As Integer, ByVal Bild As Object)
Dim Diagramm As Object
Dim Dateiname As String
Dim Chart_Height As Integer
Dim Chart_Width As Integer
Dim Img_Height As Integer
Dim Img_Width As Integer
Img_Height = UF_Main.Image_Chart_1.Height
Img_Width = UF_Main.Image_Chart_1.Width
Set Diagramm = Worksheets(Chart).ChartObjects(1).Chart
Chart_Width = Diagramm.Parent.Width
Chart_Height = Diagramm.Parent.Height
Diagramm.Parent.Width = Img_Width
Diagramm.Parent.Height = Img_Height
Diagramm.Shapes(Chart).Fill.ForeColor.Brightness = -0.0500000007 'es geht um die Syntax dieser Zeile
'------> Makrorecorder
'Sub GrauFärben()
' ActiveSheet.ChartObjects("Diagramm 1").Activate
' With ActiveSheet.Shapes("Diagramm 1").Fill
' .ForeColor.Brightness = -0.0500000007
' End With
' ActiveChart.Legend.Select
' With Selection.Format.Fill
' .ForeColor.Brightness = -0.0500000007
' End With
'End Sub

'Sub WeißFärben()
' ActiveSheet.ChartObjects("Diagramm 1").Activate
' With ActiveSheet.Shapes("Diagramm 1").Fill
' .ForeColor.ObjectThemeColor = msoThemeColorBackground1
' End With
' ActiveChart.Legend.Select
' With Selection.Format.Fill
' .ForeColor.ObjectThemeColor = msoThemeColorBackground1
' End With
'End Sub
Ich hoffe ich konnte mein Problem hinreichend erläutern und mir kann jemand helfen.
Vielen Dank und viele Grüße
Frank

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ungetestet: in deiner Codezeile...
16.08.2018 09:58:38
Beverly
Hi Frank,
Diagramm.Shapes(Chart).Fill.ForeColor.Brightness = -0.0500000007
einfach mal den Teil .Shapes(Chart) durch .Parent ersetzen, denn mit der Variablen Diagramm greifst du auf das "eigentliche" Diagramm zu, benötigst aber das Diagrammobjekt, also den Container, der das "eigentliche" Diagramm enthält


AW: Ungetestet: in deiner Codezeile...
16.08.2018 15:17:04
toyy1
Hallo Beverly,
vielen Dank für Deine Antwort. Ich habe jetzt geschrieben:
Diagramm.Parent.Fill.ForeColor.Brightness = -0.0500000007
Und erhalte diese Meldung: "Objekt unterstützt diese Eigenschaft oder Methode nicht."
Hast du sonst noch eine Idee?
Vielen Dank und viele Grüße
Frank
Anzeige
Dann löse es...
16.08.2018 16:57:16
Beverly
Hi Frank,
...auf diesem Weg:
    Diagramm.ChartArea.Interior.Color = 15921906
Diagramm.Legend.Format.Fill.Visible = msoFalse



AW: Dann löse es...
17.08.2018 11:21:00
toyy1
Hallo Beverly,
ich habe gesehen das dir doch noch etwas eingefallen ist :-). Ich freue mich sehr, denn es funktioniert. Vielen Lieben Dank für deine Hilfe, das ist wonach ich gesucht habe.
Ich wünsche dir einen schönen Freitag bzw. anschließend ein erholsames Wochenende.
Viele Grüße
Frank

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige