Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Liniendiagramm letzte Datenpunkte beschriften

VBA Liniendiagramm letzte Datenpunkte beschriften
06.11.2023 21:43:04
Sven
Hallo zusammen,

ich bin am verzweifeln und hoffe mir kann einer von euch weiterhelfen.
Und zwar habe ich folgendes Problem:
benötigt wird ein VBA-Code der nur den letzten Datenpunkt des Diagramms 3 der jeweiligen Datenreihe aus meiner Beispiel-Datei (https://www.herber.de/bbs/user/164079.xlsm) beschriftet.
VBA-Skills sind noch nicht so ausgeprägt und ich komme einfach nicht weiter und hoffe auf schlaue Köpfe die mir auf mein exaktes Beispiel einen VBA-Code schreiben können und das gerne mit ausführlicher Erklärung.
Das Diagramm unter Diagramm 3 soll ebenfalls auf gleiche Art beschriftet werden.

Ich bedanke mich schonmal im Voraus!

Gruß,
Sven

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Liniendiagramm letzte Datenpunkte beschriften
07.11.2023 00:51:48
ralf_b
vorab, es gibt keine Abkürzung, um VBA zu lernen.
ChatGPT oder wie die ganzen KI Dinger heißen helfen nur wenn man weis was man da geliefert bekommt.
der code wirkt auf das aktuell ausgewählte Diagramm.

Sub bezeichnungletzterDatenPunkt()


Dim scoll As series
Dim lastindx&

With ActiveChart
For Each scoll In .SeriesCollection
lastindx = getlastpointwithvalue(scoll.Values)
If lastindx > 0 Then 'fehler vermeiden
scoll.ApplyDataLabels xlDataLabelsShowNone 'vorhanden labels ausblenden
scoll.Points(lastindx).ApplyDataLabels Type:=xlShowValue ' letzten Punkt mit Wert , wert anzeigen
End If
Next
End With
End Sub


Function getlastpointwithvalue(arrtmp)
'ist notwendig weil deine letzten Datenpunkte teilweise keine Werte haben

Dim i&
On Local Error Resume Next
For i = UBound(arrtmp) To LBound(arrtmp) Step -1
If Not IsEmpty(arrtmp(i)) Then getlastpointwithvalue = i: Exit For
Next
If Err > 0 Then Err.Clear: getlastpointwithvalue = 0
End Function

Anzeige
AW: VBA Liniendiagramm letzte Datenpunkte beschriften
07.11.2023 11:20:16
Sven
Hallo Ralf,

vielen Dank für deine Rückmeldung und den Code!
Mir geht es nicht darum vba über Abkürzungen zu lernen, nur hatte ich hier einen akuten Fall und brauchte schnell Hilfe.

Vg
Liniendiagramm letzten Datenpunkt mit Wert
07.11.2023 08:58:36
Beverly
Hi Sven,

dein Code nimmt den tatsächlich letzten Datenpunkt - und der ist bei beiden Datenreihen noch nicht vorhanden. Du musst also zuerst feststellen, welcher Datenpunkt der letzte mit einem Wert ist und dann für diesen das Beschriftungslabel anzeigen:

Sub LetztenWertAnzeigen()

Dim serReihe As series
Dim lngPunkt As Long
Dim strValues As String
With ActiveSheet.ChartObjects("Diagramm 3").Chart
.SetElement (msoElementDataLabelNone)
For Each serReihe In .SeriesCollection
' Zellbereich der Datenquelle für die Y-Werte ermitteln
strValues = Split(serReihe.Formula, ",")(2)
' Schleife über alle Zellen der Datenquelle
For lngPunkt = serReihe.Points.Count To 1 Step -1
If Range(strValues).Cells(lngPunkt) > "" Then
serReihe.Points(lngPunkt).ApplyDataLabels
serReihe.Points(lngPunkt).DataLabel.Text = "Wert: " & Range(strValues).Cells(lngPunkt)
Exit For
End If
Next lngPunkt
Next serReihe
End With
End Sub


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Liniendiagramm letzten Datenpunkt mit Wert
07.11.2023 11:23:10
Sven
Hi Karin,

vielen Dank! Der Code macht auch genau das was ich brauche. Ich habe jetzt noch den Code für Diagramm2 mit deinem kombiniert und jetzt läuft es genau nach Vorstellung.

Vielen Dank an alle für die schnelle Hilfe!

Vg
Sven

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige