Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Beschriftung der Rubrikenachse mittels VBA

Beschriftung der Rubrikenachse mittels VBA
14.04.2005 10:37:09
alex
Hallo,
ich habe ein kleines Problem mit der Beschriftung der Rubrikenachse.
Habe folgendes Makro programmiert. Das Problem ist leider dass bei der grafischen Darstellung die Beschriftung der Rubrikenachse falsch übernommen wird. Die Werte für die Beschriftung steht im Bereich A1 - F1. (0, 100, 250, 500, ...). In der grafischen Auswertung wird die Achse jedoch mit 1, 2, 3,... beschriftet.
Hat vielleicht jemand eine Lösung für dieses Problem?
Wär für jeden Tip dankbar.
Gruß Alex

Sub Diagramm()
Dim xlWS As Object
Dim xlRange As Range
Dim lngNumRows As Long
Dim lngNumCols As Long
Set xlWS = ThisWorkbook.Worksheets("Daten Bewertung")
lngNumRows = xlWS.Range("A1").End(xlDown).Row
lngNumCols = xlWS.Range("A1").End(xlToRight).Column
Set xlRange = xlWS.Range(xlWS.Cells(2, 1), xlWS.Cells(lngNumRows, lngNumCols))
CreateChartObjectRange xlRange
Set xlRange = Nothing
Set xlWS = Nothing
End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beschriftung der Rubrikenachse mittels VBA
14.04.2005 11:30:49
Herbert
hallo alex,
ob du hier ein bestehendes aktualisieren willst,
oder überhaupt ein neues erstellen willst,
ist mir nicht ganz klar...
so kannst du ein neues erstellen:


Sub Diagramm()
Dim xlWS As Object, xlRange As Range
Dim lngNumRows As Long, lngNumCols As Long
Set xlWS = ThisWorkbook.Worksheets("Daten Bewertung")
  lngNumRows = xlWS.Range("A1").End(xlDown).Row
  lngNumCols = xlWS.Range("A1").End(xlToRight).Column
Set xlRange = xlWS.Range(xlWS.Cells(1, 1), xlWS.Cells(lngNumRows, lngNumCols))
 
Charts.Add
With ActiveChart
    .ChartType = xlLineMarkers
    .SetSourceData Source:=xlRange, PlotBy:=xlRows
    .Location Where:=xlLocationAsObject, Name:="Daten Bewertung"
End With
Application.SendKeys "{esc}"
Set xlRange = Nothing
Set xlWS = Nothing
End Sub

     gruß Herbert
Anzeige
AW: Beschriftung der Rubrikenachse mittels VBA
14.04.2005 11:55:27
Alex
Hallo Herbert,
vielen Dank für deine schnelle Antwort. Hab vorher aus versehen nicht den ganzen Quellcode gepostet. Hier ist der ganze Code für die Grafische Auswertung von Testdaten.
Diese Auswertung soll immer wieder mit neuen Daten erstellt werden. Das Problem war dass die Rubrikenachse im Diagramm 1,2,3,... heißt. Die richtige Beschriftung soll jedoch lauten (0, 100, 250, ...) Diese Werte stehen in den Feldern A1 - F1. Leider bekomm ich es nicht hin, dass das Diagramm diese Werte für die Überschrift übernimmt.
Wär dir super-dankbar, wenn Du mir weiterhelfen könntest.
Gruß Alex
Sub Diagramm()
Dim xlWS As Object

Dim xlRange As Range

Dim lngNumRows As Long
Dim lngNumCols As Long
Set xlWS = ThisWorkbook.Worksheets("Daten Bewertung")
lngNumRows = xlWS.Range("A1").End(xlDown).Row
lngNumCols = xlWS.Range("A1").End(xlToRight).Column
Set xlRange = xlWS.Range(xlWS.Cells(2, 1), xlWS.Cells(lngNumRows, lngNumCols))

CreateChartObjectRange xlRange
Set xlRange = Nothing
Set xlWS = Nothing
End Sub

Sub CreateChartObjectRange(ByVal xlRange As Range)
Dim oChart As Object
Set oChart = Application.Charts.Add
ActiveSheet.Name = ("Diagramm Bewertung")
With oChart
.ChartType = xlLineMarkers
.SetSourceData Source:=xlRange, PlotBy:=xlRows
'Beschriftung Diagramm
.HasTitle = True
.ChartTitle.Text = "Temperature"
'Beschriftung Achsen
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Cycles"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Relative optical Power"
End With
oChart.HasLegend = False
oChart.HasDataTable = False
Set oChart = Nothing
End Sub

Anzeige
AW: Beschriftung der Rubrikenachse mittels VBA
14.04.2005 12:23:16
Herbert
hast du dir dises Zeile von meinem Makro angesehen...
Set xlRange = xlWS.Range(xlWS.Cells(1, 1), xlWS.Cells(lngNumRows, lngNumCols))
gruß Herbert
AW: Beschriftung der Rubrikenachse mittels VBA
14.04.2005 12:52:38
Alex
hallo herbert,
ja hab das auch schon versucht. Leider erscheint dann das diagramm mit lediglich der werte von A1 - F1 (0, 100, 250, ...). Die Beschriftung der Größenachse würde jetzt die Werte anzeigen, die ich gerne für die Rubrikenachse hätte.
Die Beschriftung der Rubrikenachse bleibt jedoch weiterhin bei 1,2,3,...
Anzeige
AW: Beschriftung der Rubrikenachse mittels VBA
14.04.2005 13:08:43
Herbert
könntest du eine Mustertabelle mit dem Makro hochladen...
gruß Herbert
AW: Beschriftung der Rubrikenachse mittels VBA
14.04.2005 13:57:48
Herbert
warum machst du das nicht in einem Makro:


Sub Diagramm()
Dim xlWS As Object, xlRange As Range
Dim lngNumRows As Long, lngNumCols As Long
Dim oChart As Object, xv
xv = Array([a1], [b1], [c1], [d1], [e1], [f1])
Set xlWS = ThisWorkbook.Worksheets("Daten Bewertung")
  lngNumRows = xlWS.Range("A1").End(xlDown).Row
  lngNumCols = xlWS.Range("A1").End(xlToRight).Column
Set xlRange = xlWS.Range(xlWS.Cells(2, 1), xlWS.Cells(lngNumRows, lngNumCols))
  
Application.ScreenUpdating = False
Set oChart = Application.Charts.Add
ActiveSheet.Name = ("Diagramm Bewertung")
  
  With oChart
    .ChartType = xlLineMarkers
    .SetSourceData Source:=xlRange, PlotBy:=xlRows
        
    'Beschriftung Diagramm
    .HasTitle = True
    .ChartTitle.Text = "Auswertung"
    
    'Beschriftung Achsen
    .Axes(xlCategory, xlPrimary).HasTitle = True
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Zyklen"
    .Axes(xlValue, xlPrimary).HasTitle = True
    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Power"
    .SeriesCollection(1).XValues = xv
   End With
       
   oChart.HasLegend = False
   oChart.HasDataTable = False
  ActiveWindow.Zoom = 85
  ActiveChart.Deselect
  Application.ScreenUpdating = True
Set oChart = Nothing
Set xlRange = Nothing
Set xlWS = Nothing
End Sub

     
gruß Herbert
Anzeige
AW: Beschriftung der Rubrikenachse mittels VBA
14.04.2005 14:40:19
Alex
Hallo Herbert,
jetzt klappt es. vielen dank für deine hilfe.
Gruß Alex
;
Anzeige
Anzeige

Infobox / Tutorial

Beschriftung der Rubrikenachse in Excel-Diagrammen mit VBA


Schritt-für-Schritt-Anleitung

Um die Rubrikenachse in einem Excel-Diagramm korrekt zu beschriften, kannst du das folgende VBA-Makro verwenden. Stelle sicher, dass die Werte für die Beschriftung der Rubrikenachse in den Zellen A1 bis F1 stehen.

Sub Diagramm()
    Dim xlWS As Object
    Dim xlRange As Range
    Dim lngNumRows As Long
    Dim lngNumCols As Long

    Set xlWS = ThisWorkbook.Worksheets("Daten Bewertung")
    lngNumRows = xlWS.Range("A1").End(xlDown).Row
    lngNumCols = xlWS.Range("A1").End(xlToRight).Column
    Set xlRange = xlWS.Range(xlWS.Cells(2, 1), xlWS.Cells(lngNumRows, lngNumCols))

    CreateChartObjectRange xlRange
    Set xlRange = Nothing
    Set xlWS = Nothing
End Sub

Sub CreateChartObjectRange(ByVal xlRange As Range)
    Dim oChart As Object
    Set oChart = Application.Charts.Add
    ActiveSheet.Name = ("Diagramm Bewertung")

    With oChart
        .ChartType = xlLineMarkers
        .SetSourceData Source:=xlRange, PlotBy:=xlRows

        'Beschriftung Diagramm
        .HasTitle = True
        .ChartTitle.Text = "Temperature"

        'Beschriftung Achsen
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Cycles"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Relative optical Power"
    End With

    oChart.HasLegend = False
    oChart.HasDataTable = False
    Set oChart = Nothing
End Sub

Häufige Fehler und Lösungen

  1. Die Rubrikenachse wird nicht korrekt beschriftet:

    • Stelle sicher, dass du die Werte in den Zellen A1 bis F1 hast. Wenn du Set xlRange = xlWS.Range(xlWS.Cells(1, 1), xlWS.Cells(lngNumRows, lngNumCols)) verwendest, wird die Beschriftung möglicherweise nicht korrekt übernommen. Achte darauf, die richtigen Zeilen und Spalten zu wählen.
  2. Diagramm zeigt nur 1, 2, 3,... anstatt der gewünschten Werte:

    • Überprüfe, ob die X-Werte im Diagramm korrekt gesetzt sind. Du musst die SeriesCollection(1).XValues korrekt anpassen, um die Rubrikenachse richtig zu beschriften.

Alternative Methoden

Wenn du mit VBA nicht vertraut bist, kannst du die horizontale Achsenbeschriftung in Excel auch manuell anpassen:

  1. Klicke mit der rechten Maustaste auf die Rubrikenachse im Diagramm.
  2. Wähle „Achse formatieren“.
  3. Im Bereich „Achsenoptionen“ kannst du die Achsenbeschriftungen anpassen und die gewünschten Werte eingeben.

Praktische Beispiele

Angenommen, du hast folgende Werte in den Zellen A1 bis F1: 0, 100, 250, 500. Mit dem oben genannten VBA-Makro wird das Diagramm diese Werte als Beschriftung auf der Rubrikenachse verwenden. Achte darauf, dass deine Daten in der richtigen Reihenfolge und im richtigen Format vorliegen.


Tipps für Profis

  • Nutze die xlws-Objekte, um eine bessere Performance bei der Arbeit mit großen Datensätzen zu erzielen.
  • Experimentiere mit verschiedenen Diagrammtypen, um das beste Ergebnis für deine Daten zu erzielen.
  • Verwende das Application.ScreenUpdating = False-Kommando, um die Bildschirmaktualisierung während des Makroablaufs zu deaktivieren, was die Ausführungsgeschwindigkeit erhöht.

FAQ: Häufige Fragen

1. Wie kann ich die Achsentitel in einem Diagramm ändern?
Du kannst die Achsentitel im VBA-Code anpassen, indem du den Text in .AxisTitle.Characters.Text änderst.

2. Funktioniert dieses Makro in allen Excel-Versionen?
Das Makro sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2010 und neuer. Achte darauf, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige