Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1628to1632
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

Diagramm mit Subtitel

Diagramm mit Subtitel
23.06.2018 12:21:03
Norman
Hallo Leute,
ich hab ein Makro geschrieben, das ein Diagramm erstellt.
Dieses würde ich nun gerne so ändern. Das das Diagramm einen Subtitel bekommt und der dem Dateinamen entspricht.
Ich hab erst versucht im Titel nen Zeilenumbruch zu machen und die beiden Zeilen getrennt zu formatieren, aber das will nicht recht gelingen.
Im Internet habe ich zu Subtitel hinzufügen folgenden Code gefunden:
Quelle:

https://stackoverflow.com/questions/31814454/adding-a-subtitle-to-a-chart-vba

Sub AddSubtitle(Ch As Chart, subtitle As String, Optional fontsize As Long = 12)
Dim NewTitle As String
Dim i As Long, n As Long
Dim CT As ChartTitle
Set CT = Ch.ChartTitle
NewTitle = CT.Text
NewTitle = NewTitle & Chr(13)
i = 1 + Len(NewTitle)
NewTitle = NewTitle & subtitle
n = Len(subtitle)
CT.Text = NewTitle
CT.Format.TextFrame2.TextRange.Characters(i, n).Font.Size = fontsize
End Sub
Sub test()
Dim myChart As Chart
Set myChart = ActiveSheet.ChartObjects(1).Chart
AddSubtitle myChart, "Subtitle", 10
End Sub

bekomme ich aber gerade irgendwie nicht in mein bestehendes Makro eingebaut.
Hier mal mein verkürztes Makro:

Sub Datei_import()
' ###### Varibalen initialisieren - START ######
' --- Variablen für Programmablauf ---
Dim zDatei              As String   ' Zieldatei
Dim zPfad               As String   ' Zielpfad mit Datei
Dim zPfadH              As String   ' Zielpfad ohne Datei
Dim zDateiH             As String   ' Zieldatei mit Pfad
Dim startzeile          As Long
Dim endzeile            As Long
Dim Spaltenzaehler      As Integer
Dim i                   As Long
' --- Variablen für Charts ---
Dim co      As ChartObject
Dim cht     As Chart
Dim isCharttitel    As ChartTitle
Dim subtitle        As String
Dim sc1     As SeriesCollection
Dim ser1    As Series
' ###### Varibalen initialisieren - Ende ######
Application.ScreenUpdating = False
' ###### Dateien laden und verknüpfen  - START ######
' #### Arbeitsdatei ####
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Datei wählen"
If .Show = -1 Then
zDateiH = .SelectedItems(1)
End If
End With
UserForm1.Show 0
UserForm1.Repaint
Set fso = CreateObject("Scripting.FileSystemObject")
oname = fso.getfilename(zPfadH)
' aktive Datei "Workbooks wird genau der Datei aus dem gebauten Pfad zugeordnet
Workbooks.Open zDateiH                  ' Zieldatei
zDatei = ActiveWorkbook.Name
' ###### Dateien laden und verknüpfen  - START ######
' ###### Spalten und Zeilen zählen  - START ######
Spaltenzaehler = Workbooks(zDatei).Sheets(1).Cells(1, Columns.Count).End(xlToLeft). _
Column
endzeile = Workbooks(zDatei).Sheets(11).Cells(Rows.Count, 1).End(xlUp).Row
' ###### Spalten und Zeilen zählen  - ENDE ######
With Workbooks(zDatei).Sheets(11)
Set co = .ChartObjects.Add(.Range("A5").Left, .Range("A5").Top, 500, 300)
End With
co.Name = "F to s Graph"
Set cht = co.Chart
With Workbooks(zDatei)
With cht
.ChartType = xlXYScatterLinesNoMarkers
.ChartStyle = 241
.HasLegend = True
' ====== Beschriftung Diagramm ======
.HasTitle = True
.ChartTitle.Text = "Kraft-Weg-Diagramm von" & vbCrLf & zDatei
' Set isCharttitel = isCharttitel.ChartTitle
' NewTitle = isCharttitel.Text
' NewTitle = NewTitle & Chr(13)
' i = 1 + Len(NewTitle)
' NewTitle = NewTitle & subtitle
' n = Len(subtitle)
' isCharttitel.Text = NewTitle
' isCharttitel.Format.TextFrame2.TextRange.Characters(i, n).Font.Size =  _
FontSize
' ====== Beschriftung Achsen - START ======
' --- X-Achse ---
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Weg in mm"
.Axes(xlCategory).TickLabelPosition = xlLow
' --> x-Achsenbeschriftung unter das Diagramm setzen
' --- Y-Achse ---
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Kraft in N"
' ====== Beschriftung Achsen - ENDE ======
' ====== Formatierung Achsen - START ======
' --- X-Achse ---
.PlotArea.Select
.Axes(xlCategory).TickLabels.NumberFormat = "#.##0"
' --- Y-Achse ---
.PlotArea.Select
.Axes(xlValue).TickLabels.NumberFormat = "#.##0"
' ====== Formatierung Achsen - ENDE ======
' ### Variante 2 - mit SeriesCollection - START ### (geht)
For i = 1 To Spaltenzaehler - 4
With .SeriesCollection.NewSeries
.Name = "M" & i
.XValues = Sheets(7).Range(Sheets(7).Cells(5, i), Sheets(7). _
Cells(endzeile, i))
.Values = Sheets(9).Range(Sheets(9).Cells(5, i), Sheets(9). _
Cells(endzeile, i))
With .Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(145, 145, 145)
.Weight = 0.5
.Transparency = 0
End With
End With
Next
' ### Variante 2 - mit SeriesCollection - ENDE ### ()
' ##### Graph erstellen - Start #####
End With
End With
Unload UserForm1
Application.ScreenUpdating = True
MsgBox "Datenimport und -aufbereitung fertig!"
End Sub
Kann mir da jemand weiterhelfen?

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

Betreff
Datum
Anwender
Anzeige
Diagrammtitel mit Subtitel
23.06.2018 14:11:50
Beverly
Hi,
versuche es mal so (ungetestet):
                ' ====== Beschriftung Diagramm ======
.HasTitle = True
.ChartTitle.Text = "Kraft-Weg-Diagramm von"
AddSubtitle cht, zDatei

Und in der Sub AddSubtitle(Ch As Chart, subtitle As String, Optional fontsize As Long = 12) die 12 für die betreffende Schriftgröße anpassen.


AW: Diagrammtitel mit Subtitel
23.06.2018 14:59:08
Norman
Funktioniert :-)
Super vielen Dank!
Ich hatte die ganze Zeit versucht den Code in meinen einzubauen, anstatt einfach die Funktion aufzurufen -_-
Anzeige
geht leider doch nicht
23.06.2018 15:34:44
Norman
Es funktioniert leider nicht.
Ich hatte den alten Code nicht auskommentiert.
Dann wurde der Titel als Zweizeiler angezeigt. Hab es leider erst nicht bemerkt :-/
Lade eine Mappe mit Daten hoch...
23.06.2018 15:39:45
Beverly
...sodass man die Erstellung des Diagramms mit den Originaldaten nachvollziehen kann.


Lösungsvorschlag
23.06.2018 15:53:20
Beverly
Ändere den Code in deiner Sub wie folgt
                ' ====== Beschriftung Diagramm ======
.HasTitle = True
.ChartTitle.Text = "Kraft-Weg-Diagramm von" & vbLf & zDatei
AddSubtitle cht, Len(zDatei)

Und die ausgelagerte Prozedur:
Sub AddSubtitle(Ch As Chart, lngLaenge As Long, Optional fontsize As Long = 12)
Dim i As Long
Dim CT As ChartTitle
Set CT = Ch.ChartTitle
i = InStr(CT.Text, vbLf) + 1
CT.Format.TextFrame2.TextRange.Characters(i, lngLaenge).Font.Size = fontsize
End Sub



Anzeige
es geht jetzt - lag an der Reihenfolge
23.06.2018 16:17:17
Norman
Es geht jetzt.
Es lag an der Reihenfolge.
Ich hab zuerst das Skript aufgerufen und darunter stand der Code, der den Titel formatiert.
Dieser hat den Subtitel wohl überschrieben.
verbessert nun so:

.ChartType = xlXYScatterLinesNoMarkers
.ChartStyle = 241
'====== Beschriftung Diagramm ======
.HasTitle = True
.HasLegend = True
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).HasTitle = True
' ====== Formatierung Diagrammtitel ======
If .HasTitle = True Then
With .ChartTitle
.Text = "Kraft-Weg-Diagramm" '& vbCrLf & zDatei
With .Font
.Name = "Arial"
.FontStyle = vbProperCase
.Size = 12
End With
End With
End If
AddSubtitle cht, Dateinamen, 6
Vielen Dank nochmal!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige