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.
Ich freue mich auf jeden Rat und vielen Dank im Voraus! Solltet ihr noch weitere Infos benötigen, meldet euch gerne.
Lieben Gruß
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
- Option Explicit
- Sub MES_Rollout_Lib_15()
- Dim MES_sheet As Presentation
- Dim path As String
- Dim file_name As String
- Dim pptApp As Object
- Dim Folie As Slide
- Dim form As Shape
- Dim wb As Workbook, wks As Worksheet
- path = "Pfad PowerPoint Datei"
- file_name = "Name PowerPoint Datei"
- Set pptApp = CreateObject("PowerPoint.Application")
- pptApp.Visible = True
- With pptApp.Presentations.Open(path, False, True, True)
- End With
- Set MES_sheet = pptApp.ActivePresentation
- Folie = MES_sheet.Slides(1)
- If ThisWorkbook.ActiveSheet.Range("A10").Text = ("Text A") Then
- Folie.TextBox("Textfeld 4").BackColor = 15
- End If
- 'Hier noch der Versuch einer Schleife, allerdings fehlt hier noch die Verlinkung von Excel zu PowerPoint
- Dim rg As Range
- Dim c As Range
- Set rg = ThisWorkbook.ActiveSheet.Range("A10:B25")
- 'Set Folie = MES_sheet.Slides(1)
- For Each c In rg
- If c.Value = "Text A" Then
- Folie.Shape("A1").BackColor = 15 'Hintergrundfarbe
- Folie.Shape("A1").Font.ColorIndex = 2 'Änderung Schriftfarbe
- ElseIf c.Value = "Text B" Then
- Folie.Shape("A1").BackColor = 44
- Folie.Shape("A1").Font.ColorIndex = 2
- ElseIf c.Value = "Text C" Then
- Folie.Shape("A1").BackColor = 6
- Folie.Shape("A1").Font.ColorIndex = 2
- ElseIf c.Value = "Text D" Then
- Folie.Shape("A1").BackColor = 4
- Folie.Shape("A1").Font.ColorIndex = 2
- End If
- Next c
- 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“ ()