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

VBA: Im Einzelschritt i.O. / Sonst nicht

Forumthread: VBA: Im Einzelschritt i.O. / Sonst nicht

VBA: Im Einzelschritt i.O. / Sonst nicht
16.09.2024 10:39:51
UweD
Hallo

Habe ein komisches Phänomen.
                With Ch2.Chart.FullSeriesCollection(3)

' Zuerst alle Datenbeschriftungen durchlaufen um auszuschalten
For i = 1 To .Points.Count
If .Points(i).HasDataLabel Then
.Points(i).HasDataLabel = False
End If
Next i

' Dann für den gewünschten Punkt die Schriftgröße auf 16 setzen
With .Points(Zeile - Z1)
.HasDataLabel = True ' Falls es noch keine Datenbeschriftung gibt
.DataLabel.Format.TextFrame2.TextRange.Font.Size = 16 ' Größere Schriftgröße für diesen Punkt
End With
End With


Ich blende in einem Diagramm (bei Aktivierung) die Datenbeschriftung des Vortages ein und setze auf größere Schrift
Vorher werden erst alle Punkte ausgeschaltet.

Lasse ich den 2. Teil im Einzelschritt laufen, klappt es, im Automatikmodus ist die eine Beschriftung weg.

Habe schon versucht:
- Bildschirmaktualisierung aktivieren: Application.ScreenUpdating = True am Ende des Makros.
- Prozesse ablaufen lassen: Verwende DoEvents, um Excel Zeit für die Aktualisierung zu geben.
- Diagramm aktualisieren: Verwende .Refresh, um das Diagramm explizit zu aktualisieren.
- Diagramm vorher aktivieren:

Kein Erfolg.

Kennt jemand eine weitere Lösungsmöglichkeit?

Datei ist momentan zu umfangreich. Ich versuche mal eine abgespeckte Datei zu erstellen.

Danke vorab.

UweD
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Im Einzelschritt i.O. / Sonst nicht
16.09.2024 11:00:49
Ulf
Hi,
wenn i=Zeile-Z1:


With Ch2.Chart.FullSeriesCollection(3)
' Zuerst alle Datenbeschriftungen durchlaufen um auszuschalten
For i = 1 To .Points.Count
If i=Zeile-Z1 then
' Dann für den gewünschten Punkt die Schriftgröße auf 16 setzen
With .Points(i)
.HasDataLabel = True ' Falls es noch keine Datenbeschriftung gibt
.DataLabel.Format.TextFrame2.TextRange.Font.Size = 16 ' Größere Schriftgröße für diesen Punkt
End With
Else
If .Points(i).HasDataLabel Then
.Points(i).HasDataLabel = False
End If
Endif
Next i
End With

hth
Ulf
Anzeige
AW: VBA: Im Einzelschritt i.O. / Sonst nicht
16.09.2024 11:40:08
Beverly
Hi Uwe,

du musst nicht in einer Schleife über die Datenpunkte laufen um die Beschriftungslabel auszublenden - du kannst das auf einen Ritt machen nach diesem Prinzip:

    With ActiveSheet.ChartObjects(1).Chart

.SeriesCollection(1).HasDataLabels = False
End With


Vielleicht hilft das ja schon, da die Grafik-Engine es oft zeitlich nicht schafft alle Veränderungen anzuzeigen.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: VBA: Im Einzelschritt i.O. / Sonst nicht
16.09.2024 12:00:59
UweD
Hallo Karin

So hatte ich das vorher auch.
Aber da trat das genannte Phänomen auch auf.
Und da werden auch Textfarbe usw. zurückgesetzt.

Über die Schleife mit wenn dann sonst klappt es nun prima.

Danke und Gruß UweD
AW: VBA: Im Einzelschritt i.O. / Sonst nicht
16.09.2024 11:38:46
UweD
Hallo Ulf


Manchmal kann es so einfach sein...

Danke für den Tipp. Klappt nun Bestens.

LG UweD
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige