Clever-Excel-Forum

Normale Version: Anzeige bei Datenbeschriftung in Diagramm
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich erstelle ein Punktdiagramm, wobei die Datenpunkte mit je dem ersten Buchstaben zweier Spalten beschriftet werden. Das funktioniert auch alles soweit.

Was mich hierbei jedoch noch stört, ist wenn man mit der Maus über die Datenpunkte geht, dass dort eine Anzeige bei jedem Datenpunkt aufploppt, die die komplette Datenreihe anzeigt. Ich füge einen Screenshot bei, sodass ihr mein Problem nachvollziehen könnt.

Mein Code ist folgender:
Code:
Sub ErzeugungGraph()
 
Dim data As Worksheet
Dim name As Range
Set data = ActiveWorkbook.Worksheets("Sternenhimmel")

Dim ZeileMax As Integer
ZeileMax = Worksheets("Gehaltsdaten").Cells(Rows.Count, 2).End(xlUp).Row

Application.ScreenUpdating = False
Worksheets("Sternenhimmel").Activate
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=data.Range("D1:D" & ZeileMax)

ActiveSheet.ChartObjects(1).Top = Range("F8").Top
ActiveSheet.ChartObjects(1).Left = Range("F8").Left

ActiveChart.SeriesCollection.NewSeries

   With ActiveChart.SeriesCollection(1)
   
       .XValues = "=Sternenhimmel!$C$1:$C$" & ZeileMax
       .Values = "=Sternenhimmel!$D$1:$D$" & ZeileMax
       .name = "=Sternenhimmel!$A$1:$A$" & ZeileMax
       .Trendlines.Add Type:=xlLinear
     
   End With
 
ActiveChart.location Where:=xlLocationAsObject, _
  name:=ThisWorkbook.Worksheets(2).name
 
'Formatierung des Graphen
 
   With ActiveChart
   
       .PlotArea.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorBackground1
       .HasLegend = False
       .Parent.Height = 600
       .Parent.Width = 1200
       .HasTitle = True
       .HasTitle = False
       .Axes(xlCategory, xlPrimary).HasTitle = True
       .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Alter"
       .Axes(xlValue, xlPrimary).HasTitle = True
       .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "JEK 35H"
       .Axes(xlValue).MinimumScale = 0
       .Axes(xlCategory).MaximumScale = 80
       .SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbBlue
   
       
   End With
   
Worksheets(2).ChartObjects(1).Activate

With ActiveChart

   .Axes(xlValue).AxisTitle.Font.Size = 20
   .Axes(xlCategory).AxisTitle.Font.Size = 20
   .PlotArea.Interior.ColorIndex = 15
         
End With
   
Sheets("Sternenhimmel").Select
Application.CutCopyMode = False


Dim lngPunkt As Long
                                   
  With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
     .ApplyDataLabels
     
     For lngPunkt = 1 To .Points.Count
     
       .Points(lngPunkt).DataLabel.Text = Left(data.Cells(lngPunkt, 1), 1) & " " & Mid(data.Cells(lngPunkt, 2), 1, 1)
             
     Next lngPunkt
     
  End With
           
End Sub

Ist es möglich entweder die Anzeige ganz auszublenden oder diese sogar so abzuändern, dass bspw. der komplette Name angezeigt wird?
Hallöchen,

Du hast bei den Excel-Optionen unter "Erweitert | Diagramm" bisschen was zum Einstellen Smile
Hallo schauan,

du meinst also, dass es bei Excel auch ohne VBA geht den Text zu ändern bzw. auszublenden?

Könntest du mir konkret nennen wo ich das finde, falls dies zutrifft?

Vielen Dank dir schonmal!
Hallo Jonas,

ändern geht nicht, aber, wie beschrieben, das einstellen von Optionen, also z.B. das Ausschalten. Du must nur mal zu den beschriebenen Einstellungen gehen. Ich hoffe, die gibt's auch beim MAC.
Hallo zusammen,

ich hatte das Problem schon mal angesprochen, jedoch habe ich das Problem nicht ganz gelöst bekommen.

Ich habe ein Punktdiagramm, welches beschriftet werden soll. Leider gelingt es mir nicht, die einzelnen Punkte mit dem zugehörigen Datenreihennamen zu beschriften. Wenn man mit der Maus über den Datenpunkt fährt wird dabei jedes Mal die komplette Datenreihe angezeigt (s. Foto). Ich hätte gerne, dass bspw. bei dem 1. Datenpunkt "Nachname1, Vorname1" angezeigt wird. 
Hat jemand eine Idee dazu?

Das Makro mit dem ich das Diagramm erstelle und beschrifte:
Code:
Sub ErzeugungGraph()
 
Dim data As Worksheet
Dim name As Range
Set data = ActiveWorkbook.Worksheets("Sternenhimmel")

Dim ZeileMax As Integer
ZeileMax = Worksheets("Gehaltsdaten").Cells(Rows.Count, 2).End(xlUp).row

Application.ScreenUpdating = False
Worksheets("Sternenhimmel").Activate
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=data.Range("D1:D" & ZeileMax)

ActiveSheet.ChartObjects(1).Top = Range("E1").Top
ActiveSheet.ChartObjects(1).Left = Range("E1").Left

ActiveChart.SeriesCollection.NewSeries

   With ActiveChart.SeriesCollection(1)
   
       .XValues = "=Sternenhimmel!$C$1:$C$" & ZeileMax
       .Values = "=Sternenhimmel!$D$1:$D$" & ZeileMax
       .name = "=Sternenhimmel!$A$1:$A$" & ZeileMax
       .Trendlines.Add Type:=xlLinear
     
   End With
 
ActiveChart.location Where:=xlLocationAsObject, _
  name:=ThisWorkbook.Worksheets(2).name
 
'Formatierung des Graphen
 
   With ActiveChart
   
       .PlotArea.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorBackground1
       .HasLegend = False
       .Parent.Height = 600
       .Parent.Width = 1200
       .HasTitle = True
       .HasTitle = False
       .Axes(xlCategory, xlPrimary).HasTitle = True
       .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Alter"
       .Axes(xlValue, xlPrimary).HasTitle = True
       .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "JEK 35H"
       .Axes(xlValue).MinimumScale = 0
       .Axes(xlCategory).MaximumScale = 80
       .SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbBlue
   
       
   End With
   
Worksheets(2).ChartObjects(1).Activate

With ActiveChart

   .Axes(xlValue).AxisTitle.Font.Size = 20
   .Axes(xlCategory).AxisTitle.Font.Size = 20
   .PlotArea.Interior.ColorIndex = 15
         
End With
   
Sheets("Sternenhimmel").Select
Application.CutCopyMode = False


Dim lngPunkt As Long
                                   
  With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
     .ApplyDataLabels
     
     For lngPunkt = 1 To .Points.Count
     
       .Points(lngPunkt).DataLabel.Text = Left(data.Cells(lngPunkt, 1), 1) & " " & Mid(data.Cells(lngPunkt, 2), 1, 1)
             
     Next lngPunkt
     
  End With
           
End Sub

Vielen Dank für eure Hilfe :)
Hola,

warum hast du dich dann da nicht mehr gemeldet?

https://www.clever-excel-forum.de/Thread...n-Diagramm

Gruß,
steve1da
Die beiden Themen habe ich zusammengefügt
Tut mir leid, ja das "Abstellen" hat funktioniert. Das ist auch schon besser als fehlerhafte Namen anzeigen zu lassen.

Aber ich wollte nochmal nachfragen, ob es keine Lösung gibt für das korrekte anzeigen lassen der Namen.