Balkenhöhe im Diagramm per VBA ermitteln

Antwort erstellen

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :razz: :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :badgrin: :doubt:
BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet
Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Balkenhöhe im Diagramm per VBA ermitteln

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitrag von theoS » 25. Mär 2021, 11:38

Das geht doch ganz einfach. Du machst das Diagramm so, dass du den Balken immer bis zum Maxwert nach oben auffüllst.
Dann kannst du den Pfeil ins Blatt einmal einfügen, kopieren, in den oberen Teil der Ergänzungsdatenreihe klicken und strg+v den Pfeil einfügen.
Wenn du dir das dann noch als Vorlage speicherst...

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitrag von SramkloV » 25. Mär 2021, 09:44

Korrekt!
Wenn du allerdings eine Präsentation mit 20 Folien hast in denen die Daten sich regelmäßig ändern und du je Diagramm 4 Pfeile von der oberen Kante bis zur Oberkante des Datenbalkens ziehen musst kann das manuell (80 Pfeile) ganz schön nerven / Zeitaufwendig sein...

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitrag von theoS » 25. Mär 2021, 08:10

Weiß nicht, waa so schwer ist an einem senkrechten Pfeil. Da musst du doch nur eine Grafik nehmen, die einen Pfeil nach unten darstellt.

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitrag von SramkloV » 25. Mär 2021, 06:57

Hallo Theo,

Danke für die Antwort auf meine Frage.
Leider funktionieren gestapelte Balken die nicht da ich ja einen Senkrechten Peil formatieren möchte.

Ich habe zwischenzeitlich aber eine Lösung gebastelt die zumindest für meinen Zweck funktioniert.

Vielleicht hilft es ja dem einen oder anderen

Code: Alles auswählen
Sub Test()
    Dim PPt_Slide As Slide, PPt_Shape As Shape, PPt_Diagramm As Shape
    Dim axleHeight As Long, maxScale As Long, minScale As Long, barValue As Single, barHeight As Single
   
    Set PPt_Slide = ActivePresentation.Slides(1)
    Set PPt_Diagramm = PPt_Slide.Shapes("TestDiagramm")
   
'Setzen des Balkenwertes (erste Balken)
    PPt_Diagramm.Chart.ChartData.Activate
    barValue = PPt_Diagramm.Chart.ChartData.Workbook.Worksheets(1).Range("b2")

'Oberer und unterer Wert der Achsenbeschriftung
    maxScale = PPt_Diagramm.Chart.Axes(xlValue).MaximumScale
    minScale = PPt_Diagramm.Chart.Axes(xlValue).MinimumScale
'Höhe der Achsenbeschriftung
    axleHeight = PPt_Diagramm.Chart.Axes(xlValue).Height
'Berechnen der Box-Höhe
    barHeight = axleHeight / (maxScale - minScale) * (maxScale - barValue)
   
    Set PPt_Shape = PPt_Slide.Shapes("Rechteck 3")
    PPt_Shape.Height = barHeight
    Set PPt_Shape = PPt_Slide.Shapes("Pfeil1")
    PPt_Shape.Height = barHeight
       
End Sub


Viele Grüße
V

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitrag von theoS » 24. Mär 2021, 21:21

Das machst du doch mit einem gestapeltem Diagramm viel besser.
Schau dich mal um, wie das in Excel gemacht wird, mit VBA kommst du hier nicht weiter.

Balkenhöhe im Diagramm per VBA ermitteln

Beitrag von SramkloV » 16. Feb 2021, 12:06

Hallo liebes Forum,

ich möchte gerne die Höhe einer Form (Pfeil) auf einer Folie per VBA anpassen so dass dieser genau die Differenz zweier Balken in einem Diagramm entspricht. Beispiel: Das Diagramm hat zwei Datenbalken, Balken 1 hat den Wert 100, Balken 2 den Wert 120. Der Pfeil soll also die Differenz von 20 darstellen.

Da die Skala des Diagramms sich mit den Werten verändert kann ich nicht einfach die Werte der Balken zugrunde legen sondern ich benötige die Höhe der einzelnen Balken im Diagramm und muss diese Differenz zugrunde legen

Hat jemand eine Idee wie ich das verwirklichen kann?

Danke schon einmal für eure Lösungsvorschläge!

vg
V

Nach oben