PDA

Vollständige Version anzeigen : Schriftgröße einer Zeile im Diagrammtitel ändern


holger-wi
26.02.2008, 11:09
Hallo zusammen,
ich habe da mal wieder eine Frage an die Experten :-) Ich möchte in einem Diagramm den Titel verändern. Ich habe unten mal den Code eingefügt, um den es geht. Ich möchte dabei die mittlere Zeile mit einer größeren Schrift versehen. Der Text ist aber variabel, so dass die Variante, wie ich sie weiter unten gezeigt habe nicht wirklich gut funktioniert. Hier bezieht es sich ja nur auf eine feste Anzahl an zeichen von hier 32. Ich würde aber gerne, wie gesagt, die mittlere Zeile größer gestalten. Ist das möglich?

Vielen Dank für Eure Hilfe


ActiveChart.Select
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "EFFICIENCY: " & userfrm_getrinfo.getriebetyp & " FD " & userfrm_uebers.eing_i_fd & " - GEAR SET " & userfrm_getrinfo.radsatz & Chr(10) & z & ". GEAR 800 - 4000RPM / 80°C" & Chr(10) & userfrm_getrinfo.oelsorte & " / " & userfrm_getrinfo.oelmenge
'.Selection.AutoScaleFont = False
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x-Achse
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y-Achse"
.SizeWithWindow = 18
End With

ActiveChart.ChartTitle.Select
Selection.AutoScaleFont = False
With Selection.Characters(Start:=1, Length:=32).Font
.Name = "Arial"
.FontStyle = "Fett"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = False
.ColorIndex = xlAutomatic
End With

IngGi
26.02.2008, 11:19
Hallo Holger,

ermittle die Positionen der Zeilenschaltungen und schreibe die Positionen des ersten und letzten Zeichens der mittleren Zeile in Variablen (ungeprüft):
ActiveChart.Select
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "EFFICIENCY: " & userfrm_getrinfo.getriebetyp & " FD " & userfrm_uebers.eing_i_fd & " - GEAR SET " & userfrm_getrinfo.radsatz & Chr(10) & z & ". GEAR 800 - 4000RPM / 80°C" & Chr(10) & userfrm_getrinfo.oelsorte & " / " & userfrm_getrinfo.oelmenge
'.Selection.AutoScaleFont = False
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x-Achse"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y-Achse"
.SizeWithWindow = 18
intStart = InStr(1, .ChartTitle.Characters.Text, Chr(10))
intEnde = InStr(InStr(1, .ChartTitle.Characters.Text, Chr(10)), .ChartTitle.Characters.Text, Chr(10))
End With



ActiveChart.ChartTitle.Select
Selection.AutoScaleFont = False
With Selection.Characters(Start:=intStart, Length:=intEnde).Font
.Name = "Arial"
.FontStyle = "Fett"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = False
.ColorIndex = xlAutomatic
End With
Gruß Ingolf

holger-wi
26.02.2008, 15:54
Hallo Ingolf,
vielen Dank für die extrem schnelle Antwort!
Ich habe es gleich eingebaut, doch funktioniert es noch nicht ganz richtig. Es wurde bei beiden Variablen der gleiche Wert herausgegeben. Bin am versuchen, es zu lösen, habe es aber bisher noch nicht geschafft :-(

Grüße
Holger

IngGi
26.02.2008, 16:45
Hallo Holger,

da hab ich wohl nach der letzten Korrektur die Zwischenablage nicht mehr aktualisiert. Das sollte eigentlich so aussehen:
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre> <span class="TOKEN">With</span> ActiveChart
.HasTitle = <span class="TOKEN">True</span>
.ChartTitle.Characters.Text = &quot;EFFICIENCY: &quot; &amp; userfrm_getrinfo.getriebetyp &amp; &quot; FD &quot; &amp; userfrm_uebers.eing_i_fd &amp; &quot; - GEAR SET &quot; &amp; userfrm_getrinfo.radsatz &amp; Chr(10) &amp; z &amp; &quot;. GEAR 800 - 4000RPM / 80°C&quot; &amp; Chr(10) &amp; userfrm_getrinfo.oelsorte &amp; &quot; / &quot; &amp; userfrm_getrinfo.oelmenge
<span class="REM"> '.Selection.AutoScaleFont = False</span>
.Axes(xlCategory, xlPrimary).HasTitle = <span class="TOKEN">True</span>
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = &quot;x-Achse&quot;
.Axes(xlValue, xlPrimary).HasTitle = <span class="TOKEN">True</span>
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = &quot;y-Achse&quot;
.SizeWithWindow = 18
intStart = InStr(1, .ChartTitle.Characters.Text, Chr(10)) + 1
intEnde = InStr(InStr(.ChartTitle.Characters.Text, Chr(10)) + 1, .ChartTitle.Characters.Text, Chr(10)) - 1
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
&nbsp;
&nbsp;
&nbsp;
ActiveChart.ChartTitle.Select
Selection.AutoScaleFont = <span class="TOKEN">False</span>
<span class="TOKEN">With</span> Selection.Characters(Start:=intStart, Length:=intEnde).Font
.Name = &quot;Arial&quot;
.FontStyle = &quot;Fett&quot;
.Size = 14
.Strikethrough = <span class="TOKEN">False</span>
.Superscript = <span class="TOKEN">False</span>
.Subscript = <span class="TOKEN">False</span>
.OutlineFont = <span class="TOKEN">False</span>
.Shadow = <span class="TOKEN">False</span>
.Underline = <span class="TOKEN">False</span>
.ColorIndex = xlAutomatic
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
&nbsp;</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Gruß Ingolf

holger-wi
27.02.2008, 11:47
Hallo Ingolf,

vielen vielen Dank für die Hilfe. Ich habe es jetzt endlich geschafft, mich an die Programmierung zusetzen. Es klappt einwandfrei!
Es ist echt spitze, dass es so super Leute Gibt, die denen Helfen, die nicht so viel Erfahrung mit VBA haben!

Danke und Gruß
Holger