Anzeige bei Datenbeschriftung in Diagramm
#1
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?


Angehängte Dateien Thumbnail(s)
   
Top
#2
Hallöchen,

Du hast bei den Excel-Optionen unter "Erweitert | Diagramm" bisschen was zum Einstellen Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
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!
Top
#4
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Shocked 
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 :)


Angehängte Dateien Thumbnail(s)
   
Top
#6
Hola,

warum hast du dich dann da nicht mehr gemeldet?

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

Gruß,
steve1da
Top
#7
Die beiden Themen habe ich zusammengefügt
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#8
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.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste