VBA Makro | Verlinkung Excel zu PowerPoint

  • Excel

    VBA Makro | Verlinkung Excel zu PowerPoint

    Hallo zusammen,

    ich versuche mich gerade zum ersten Mal an einer Verlinkung von Excel zu Powerpoint mit VBA Makros.



    Aufgabenstellung:

    In meiner Excel-Zelle habe ich eine Dropdown-Funktion integriert, mit welcher 4 verschiedene Texte (A,B,C,D) ausgewählt werden können.

    Nun möchte ich, je nachdem welcher Text in meiner Zelle ausgewählt wurde, die Hintergrundfarbe einer bestimmten PowerPoint-Form (Shape) einfärben.

    Hierfür gilt:

    Text A (Zelle in Excel) --> Farbe grau (Shape in PowerPoint)

    Text B (Zelle in Excel) --> Farbe orange (Shape in PowerPoint)

    Text C (Zelle in Excel) --> Farbe gelb (Shape in PowerPoint)

    Text D (Zelle in Excel) --> Farbe grün (Shape in PowerPoint)

    In jeder PowerPoint-Form befindet sich bereits ein Text, dieser soll seine Schriftfarbje nach Hintergrund ebenfalls anpassen. (Grauer Hintergrund = weiße Schriftfarbe, orangener Hintergrund = schwarze Schriftfarbe, gelber HIntergrund = schwarze Schriftfarbe, grüner Hintergrund = weiße Schriftfarbe).



    Folgendes Vorgehen habe ich mir hierfür überlegt.

    1. Das Makro wird in der Excel programmiert und öffnet bei Start des Makro automatisch eine Kopie der PowerPoint-Datei.

    2. Nun stelle ich eine Verlinkung der Excel zur PowerPoint her, insb. der Zellen zu den entsprechenden Shapes in PowerPoint.

    3. Als nächstes stelle ich eine If...then und IfElse-Anweisung auf, indem ich bspw. sage: Wenn das Feld "A1" in der Excel den Text "A" beinhaltet, dann Färbe das Feld "A1" in der PowerPoint-Datei grau und ändere die Schriftfarbe auf weiß.

    Da ich insgesamt 80 Zellen in Excel habe, die jeweils Shapes in Pptx zugeordnet werden müssen, würde es sich vermutlich anbieten eine Schleife einzubauen. Allerdings gebe ich mich auch damit zufrieden, erstmal die Verlinkung von einer bestimmten Zelle in Excel zur einer bestimmten Shape in PowerPoint herzustellen, diese mit der entsprechenden Farbe zu befüllen und die Schriftfarbe entsprechend anzupassen.

    Anbei ein erster Startversuch - wie gesagt ich bin noch Anfänger - und dies ist noch längst keine fertige Lösung. Bisher habe ich nur das automatische Öffnen der PowerPoint-Datei bei Start des Makros fehlerfrei programmiert bekommen.


    Visual Basic-Quellcode

    1. Option Explicit
    2. Sub MES_Rollout_Lib_15()
    3. Dim MES_sheet As Presentation
    4. Dim path As String
    5. Dim file_name As String
    6. Dim pptApp As Object
    7. Dim Folie As Slide
    8. Dim form As Shape
    9. Dim wb As Workbook, wks As Worksheet
    10. path = "Pfad PowerPoint Datei"
    11. file_name = "Name PowerPoint Datei"
    12. Set pptApp = CreateObject("PowerPoint.Application")
    13. pptApp.Visible = True
    14. With pptApp.Presentations.Open(path, False, True, True)
    15. End With
    16. Set MES_sheet = pptApp.ActivePresentation
    17. Folie = MES_sheet.Slides(1)
    18. If ThisWorkbook.ActiveSheet.Range("A10").Text = ("Text A") Then
    19. Folie.TextBox("Textfeld 4").BackColor = 15
    20. End If
    21. 'Hier noch der Versuch einer Schleife, allerdings fehlt hier noch die Verlinkung von Excel zu PowerPoint
    22. Dim rg As Range
    23. Dim c As Range
    24. Set rg = ThisWorkbook.ActiveSheet.Range("A10:B25")
    25. 'Set Folie = MES_sheet.Slides(1)
    26. For Each c In rg
    27. If c.Value = "Text A" Then
    28. Folie.Shape("A1").BackColor = 15 'Hintergrundfarbe
    29. Folie.Shape("A1").Font.ColorIndex = 2 'Änderung Schriftfarbe
    30. ElseIf c.Value = "Text B" Then
    31. Folie.Shape("A1").BackColor = 44
    32. Folie.Shape("A1").Font.ColorIndex = 2
    33. ElseIf c.Value = "Text C" Then
    34. Folie.Shape("A1").BackColor = 6
    35. Folie.Shape("A1").Font.ColorIndex = 2
    36. ElseIf c.Value = "Text D" Then
    37. Folie.Shape("A1").BackColor = 4
    38. Folie.Shape("A1").Font.ColorIndex = 2
    39. End If
    40. Next c
    41. End Sub




    Ich freue mich auf jeden Rat und vielen Dank im Voraus! Solltet ihr noch weitere Infos benötigen, meldet euch gerne.

    Lieben Gruß

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()