Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datenbeschriftung per VBA formatieren

Datenbeschriftung per VBA formatieren
30.01.2021 09:18:06
Frank
Ich bin VBA-Anfänger und habe mir mit dem Makrorecorder ein VBA-Modul zusammengestellt, mit dem ich allerhand Formatierungen (Größe, Schriftarten, Positionierungen von Überschrift, Fußzeile usw.) eines aktivierten(!) Charts (Name ändert sich natürlich ständig) einstellen kann. Funktioniert soweit gut.
Jetzt möchte ich die bereits eingefügten/vorhandenen(!) Datenbeschriftungen per VBA so einstellen, dass sie
- eine bestimmte Schriftgröße haben,
- die Füllung weiß haben,
- bei "Ausrichtung" alle Ränder NULL sind.
Kann mir hier jemand helfen?
Besten Dank und schöne Grüße
Frank
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenbeschriftung per VBA formatieren
30.01.2021 10:16:42
Beverly
Hi Frank,
nach diesem Prinzip:
Sub Formatieren()
With ActiveChart
With .SeriesCollection(1)
.DataLabels.Delete
.ApplyDataLabels
With .DataLabels
With .Format.TextFrame2
.MarginLeft = 0
.MarginRight = 0
.MarginTop = 0
.MarginBottom = 0
.TextRange.Font.Name = "Arial"
.TextRange.Font.Size = 11
End With
With .Format
.Fill.BackColor.RGB = 16777215
End With
End With
End With
End With
End Sub


Anzeige
AW: Datenbeschriftung per VBA formatieren
30.01.2021 14:35:41
Frank
Liebe Karin, im Prinzip ja, aber ...
im ersten Schritt werden ja alle vorhandenen Datenbeschriftungen erstmal gelöscht. Das soll aber gar nicht so sein, weil ich ja schon nach bestimmten Kriterien eingefügte Datenbeschriftungen habe.
Dann werden Datenbeschriftungen eingefügt und die dann formatiert. Die Formatierung klappt prima.
Wie kann man es machen, dass nur die schon vorhandenen Datenbeschriftungen (bei mir nicht in .SeriesCollection(1) formatiert werden?
Besten Dank und schöne Grüße
Frank
Anzeige
AW: Datenbeschriftung per VBA formatieren
30.01.2021 19:58:44
Beverly
Hi Frank,
lade doch bitte eine Beispielmappe hoch.


AW: Datenbeschriftung per VBA formatieren
31.01.2021 00:16:21
Beverly
Hi Frank,
Sub Formatieren()
Dim serReihe As Series
With ActiveSheet.ChartObjects(1).Chart
For Each serReihe In .SeriesCollection
If serReihe.Name = "Sonderpunkte" Then
With serReihe.DataLabels
With .Format.TextFrame2
.MarginLeft = 0
.MarginRight = 0
.MarginTop = 0
.MarginBottom = 0
.TextRange.Font.Name = "Arial"
.TextRange.Font.Size = 11
End With
With .Format
.Fill.BackColor.RGB = 16777215
End With
End With
Exit For
End If
Next serReihe
End With
End Sub


Anzeige
AW: Datenbeschriftung per VBA formatieren
31.01.2021 08:28:21
Frank
Hallo Karin,
in der angehängten Datei funktioniert das Modul wunderbar, besten Dank.
Allerdings habe ich viele von diesen Dateien, bei denen der Name der Reihe wechselt (hier:"Sonderpunkte"). Gibt es eine Möglichkeit, dass das Modul selbständig prüft, ob es eine Reihe mit Beschriftungen gibt und dann, unabhängig vom Reihenname, die vorhandenen Beschriftungen entsprechend formatiert?
Besten Dank und schöne Grüße
Frank
Anzeige
AW: Datenbeschriftung per VBA formatieren
31.01.2021 09:33:43
Beverly
Hi Frank,
ändere die Zeile:
            If serReihe.HasDataLabels Then


AW: Datenbeschriftung per VBA formatieren
31.01.2021 11:58:23
Frank
... leider nein.
Die Schleife wird dreimal durchlaufen aber keinmal erkannt, dass es DataLabels gibt.
Ich glaube, ich gebe auf.
Besten Dank und schöne Grüße
Frank
Anzeige
AW: Datenbeschriftung per VBA formatieren
31.01.2021 14:29:31
Beverly
Das kann ich nicht nachvollziehen - in deiner hochgeladenen Mappe wird die richtige Datenreihe erkannt. Allerdings wird die Füllfarbe der Label nicht richtig übernommen - die Schriftart, Schriftgröße und Formatierung dagegen schon. Damit auch die Füllfarbe passt ersetze die 3 Zeilen
                    With .Format
.Fill.BackColor.RGB = 16777215
End With
durch diese eine Zeile
                    .Interior.Color = 16777215
In der angehängten Mappe habe ich mal zur Verdeutlichung die Zeichenfläche orange formatiert, denn die Füllfarbe Weiß der Beschriftunglabel sieht man auf weißer Zeichenfläche nicht.
https://www.herber.de/bbs/user/143473.xlsm


Anzeige
AW: Datenbeschriftung per VBA formatieren
31.01.2021 21:24:15
Frank
Hallo Beverly,
in der von Dir bereitgestellten Mappe funktioniert es wunderbar. In meiner Originaldatei geht es nicht. Ich habe keine Ahnung, woran es liegen kann. In der Originaldatei stammen die Daten aus Abfragen auf andere Dateien, die Daten sind ordentlich als Tabelle formatiert usw. Die Makros sind in der PERSONAL.XLNB gespeichert. Vielleicht liegt die Fehlerquelle in irgendeinem Detail?
Schöne Grüße
Frank
Anzeige
AW: Datenbeschriftung per VBA formatieren
31.01.2021 23:08:36
Beverly
Hi Frank,
woher die Daten kommen ist unerheblich und dass das Makro in der PERSONAL.XLSB gespeichert ist kann auch nicht die Ursache sein - der Code bezieht sich ja auf das ActiveSheet. Außerdem habe ich das sicherheitshalber gerade eben getestet.
Worin unterschiedet sich denn deine hochgeladene Mappe von deiner Originalmappe? Gewiss wäre es hifreich, wenn du von deiner Orignalmappe mal eine Kopie erstellst, alles was nicht mit dem Problem zu tun hat herauslöschst und diese Kopie dann hochlädst.


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige