Balkenhöhe im Diagramm per VBA ermitteln

Moderator: ModerationP

Balkenhöhe im Diagramm per VBA ermitteln

Beitragvon 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
SramkloV
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3
Registriert: 16. Feb 2021, 12:03

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitragvon 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.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5741
Registriert: 19. Apr 2008, 00:14

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitragvon 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
SramkloV
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3
Registriert: 16. Feb 2021, 12:03

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitragvon 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.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5741
Registriert: 19. Apr 2008, 00:14

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitragvon 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...
SramkloV
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3
Registriert: 16. Feb 2021, 12:03

Re: Balkenhöhe im Diagramm per VBA ermitteln

Beitragvon 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...
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5741
Registriert: 19. Apr 2008, 00:14


Zurück zu PowerPoint Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste