Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

gestapelte Säulen, Datenbeschriftung außerhalb

Betrifft: gestapelte Säulen, Datenbeschriftung außerhalb von: Andreas
Geschrieben am: 22.08.2014 11:10:50

Guten Morgen miteinander.

ich hoffe, wie schon sehr oft in diesem Forum, auf Eure Hilfe, auch wenn ich diesmal glaube, dass es keinen Lösung gibt. Aber die Hoffnung stirbt bekanntlich zuletzt.

Ich habe sehr viele Diagramme (mehr als 50 Stk) mit gestapelte Säulen. Dabei ist die Datenbeschriftung innerhalb der Säulen. Wegen den verwendeten Farben sind die Beschriftungen manchmal nicht gut lesbar. Die Schriftfarbe schwarz sollte überall beibehalten werden. Daher würde ich gern die Datenbeschriftung neben die Säulen ziehen. Das funktioniert sehr gut für einzelne Beschriftungsfelder. Nun würde ich aber gern a) automatisch oder b) wenigstens für ganz Datenreihen die Verschiebung vornehmen.
Nach einiger Recherche habe ich rausgefunden, dass das wohl für Excel 2007 praktisch nicht geht, aber ich habe seit neustem auch Excel 2010 und hoffe dass es inzwischen vielleicht klappt.
Denkbar wäre auch, dass man vor die Datenbeschriftung einige Leerzeichen einfügt, sodass dann der eigentliche Beschriftungstext neben die Säulen rutscht, aber auch das habe ich nicht gefunden, ob und wie das geht.

Vielleicht habt Ihr eine Idee. Ich wäre euch sehr, sehr dankbar wenn ihr eine Lösung für mich parat hättet.

Danke schon einmal vorab!

Andreas

  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Andreas
Geschrieben am: 22.08.2014 11:23:53

Huhu.

absolutes Novum: ich hab mir selbst geholfen. Bei der Datenbeschriftungsformatierung gibt man einfach mit Gänsefüßchen vorher die Anzahl der Leerzeichen ein. z.B.: " "#.##0,0

Nicht sehr elegant aber pragmatisch.

Nun hoffe ich somit auch an das Forum etwas zurückzugeben, wenn das jemand mit dem gleichen Problem liest.

Andreas


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Daniel
Geschrieben am: 22.08.2014 11:31:18

Hi

probiere mal für die Datenreihen:
- Datenbeschriftungen formatieren - Zahl - Benutzerdefiniert
hier dann im Formatcode Leerzeichen vor den Zahlensymbolen einfügen, "Hinzufügen" klicken und auswählen

Gruß Daniel


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Andreas
Geschrieben am: 22.08.2014 11:49:47

Hi Daniel,

vielen Dank für Deine Antwort.

Ich hab mir soeben selbst helfen können und grad die Lösung auch gepostet. Aber sehr gut zu Wissen, dass auf deine Hilfe zu zählen war. Ich hoffe deine Mühe nicht zu sehr beansprucht zu haben. Ich hab erst wirklich nicht gewusst wie es geht und nach dem ich die Frage im Forum gestellt habe, habe ich nochmal einfach probiert. Das Glück des Dummen hat mir dabei in die Hände gespielt.


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Beverly
Geschrieben am: 22.08.2014 17:55:11

Hi Andreas,

auch in Excel2010 lassen sich die Beschriftungslabel nicht komplett für eine gesamte Datenriehe verschieben.
Allerdings kannst du es mit folgendem Makro für jeden Datenpunkt machen:

Sub beschriftungslabel_verschieben()
    Dim inReihen As Integer
    Dim inPunkte As Integer
    With ActiveSheet.ChartObjects(1).Chart
        For inReihen = 1 To .SeriesCollection.Count
            With .SeriesCollection(inReihen)
                For inPunkte = 1 To .Points.Count
                    .Points(inPunkte).DataLabel.Left = .Points(inPunkte).DataLabel.Left - 10
                Next inPunkte
            End With
        Next inReihen
    End With
End Sub

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Andreas
Geschrieben am: 25.08.2014 13:29:42

Hallo Beverly,

entschuldige, ich habe erst eben deine Antwort gesehen.
Das wäre ja so cool wenn das klappen würde.
Allerdings kommt bei mir eine Fehlermeldung und der Debugger sagt für folgende Zeile:
.Points(inPunkte).DataLabel.Left = .Points(inPunkte).DataLabel.Left - 10

Ich habe folgendes gemacht. Makro eingerichtet, dann des Diagramm angeklickt (ist bei mir frei beweglich in einer Tabellenblatt (also nicht ein eignes Tabellenblatt mit nur dem Diagramm) und dann das Makro ausgeführt. Ich hab auch mal nur eine Datenbeschriftungsreihe und eine Datenreihe im Diagramm und einen einzelnen Beschriftungswert vor dem Ausführen des Makros angeklickt. in allen Fällen kommt an dieser Stelle die Fehlermeldung. Hast du eine Ahnung, was ich noch falsch mache?

Danke, danke. Ich hoffe ganz sehr wir bekommen das hin :)

Andreas


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Andreas
Geschrieben am: 25.08.2014 13:38:42

Die Fehlermeldung ist übrigens: Die Methode'Left' für das Objekt 'DataLabel'ist fehlgeschlagen


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Beverly
Geschrieben am: 25.08.2014 14:04:55

Hi Andreas,

kann ich leider nicht nachvollziehen - bei mir kommt kein Fehler (sonst hätte ich den Code nicht gepostet).

https://www.herber.de/bbs/user/92278.xlsm


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Andreas
Geschrieben am: 26.08.2014 07:10:26

Hi Beverly,

also deins klappt schonmal super. ich muss mal auf suche gehen woran es liegt, aber ich bin mir einigermaßen sicher, dass ich das hinbekomme. Danke an dieser Stelle schoneinmal. Wirklich ein sehr hilfreiches Makro.
Ein kleines Problem hab ich nun doch noch: Wenn ich zwei Diagramme in dem Tabellenblatt habe (s. Anhang), verschiebt er mir immer nur von dem ersten die Beschriftungen, obwohl ich z.b. das zweite angeklickt habe.
Wenn du hier noch eine Lösung weißt bin ich glücklich.

Dankesehr, Andreas

https://www.herber.de/bbs/user/92295.xlsm


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Beverly
Geschrieben am: 26.08.2014 07:39:04

Hi Andreas,

der Code berücksichtigt nur das zuerst im Tabellenblatt erstellte Diagramm. Es stellt sich nun die Frage: soll der Code sofort für alle im Tabellenblatt enhalten Diagramme ausgeführt werden oder immer nur für dasjenige, welches mit dem Cursor markiert wurde?


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Andreas
Geschrieben am: 26.08.2014 08:59:05

Hallo Beverly,

super (und DANK!), dass du schon gleich geantwortet hast. Das Makro läuft bei mir jetzt ohne Fehlermeldung. Genau kann ich es nicht erklären, aber ich hab einmalig ein Diagramm angeklickt und danach ging es ... also alles wunderbar.

Da die Beschriftungen je nach Diagramm unterschiedlich weit verschoben werden sollen, wäre absolut klasse, wenn ich ein Diagramm anklicken könnte und nur für dieses Diagramm die Beschriftungsverschiebung durchführen könnte.
Und ich hoffe ich beanspruche deine Geduld nicht zu sehr (weil ich glaube dass ich das mit bisschen probieren sogar selbst hinbekommen würde): Wenn die Verschiebungsparameter dann noch in Zellen stehen würden (bspw. unter dem Button "Schaltfläche1", wäre das der Hammer. Ich glaube auch, dass du dann nicht nur mir einen riesen Gefallen machen würdest.

Über eine Antwort würde ich mich nochmal sehr freuen!

ein großes Danke, Andreas.


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Beverly
Geschrieben am: 26.08.2014 09:25:18

Hi Andreas,

schreibe die Verschiebung z.B. in E5 (bei negativer Verschiebung als negative Zahl)

Sub beschriftungslabel_verschieben()
   Dim inReihen As Integer
   Dim inPunkte As Integer
   If TypeName(Selection) <> "ChartArea" Then
      MsgBox "Bitte die Diagrammfläche markieren"
   Else
      With Selection.Parent
          For inReihen = 1 To .SeriesCollection.Count
              With .SeriesCollection(inReihen)
                  For inPunkte = 1 To .Points.Count
                      .Points(inPunkte).DataLabel.Left = _
                          .Points(inPunkte).DataLabel.Left + Range("E5")
                  Next inPunkte
              End With
          Next inReihen
      End With
   End If
 End Sub
Betreffende Diagrammfläche muss aktiviert sein.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: gestapelte Säulen, Datenbeschriftung außerhalb von: Andreas
Geschrieben am: 26.08.2014 10:29:57

Beverly, das ist WAHNSINN!!!

Genau so hab ich es mir erhofft. Toll! Zum einen hast du mir damit viel Arbeit erspart. Aber das Tool ist vorallem auch sehr viel exakter, als wenn man die Beschriftungen einzeln verschieben muss und sehr viel robuster (gegenüber z.B. späteren Größenänderungen des Diagramm) als meine vorherige Methode mit den Leerzeichen vor dem Beschriftungstext.

ganz großes Dankeschön Dir und diesem Forum

Andreas


 

Beiträge aus den Excel-Beispielen zum Thema "gestapelte Säulen, Datenbeschriftung außerhalb"