Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Verknüpfung ändern Diagramm ppt VBA Makro Excel

Verknüpfung ändern Diagramm ppt VBA Makro Excel
10.10.2018 12:59:54
Pete
Hallo liebe Community,
ich habe den untenstehenden Code (der auch funktioniert) und folgendes Problem.
Ich öffne mit dem Code eine Powerpoint in der die verknüpften Diagramme aktualisiert werden. Nun meine Frage: Wie kann ich vor der Aktualisierung den Verknüpfungspfad aller in der Powerpoint enthaltenen Diagramme auf die Excel-Datei, aus der die Powerpoint gestartet wird, ändern?
Vielen Dank vorab für eure Hilfe. Ich habe im Internet leider nix passendes gefunden bzw. war nicht in der Lage den Code zum laufen zu bringen.
Private Sub Powerpointerstellen()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Auswahl der PowerPoint Vorlage
Dim strFileToOpen As String
strFileToOpen = Application.GetOpenFilename _
(Title:="PowerPointVorlage auswählen", _
FileFilter:="PowerPoint Files *.pptx* (*.pptx*),")
'Öffnen der Powerpoint Vorlage
Dim Powerpoint As Object
Set Powerpoint = CreateObject("Powerpoint.Application")
Powerpoint.Visible = True
Powerpoint.Presentations.Open (strFileToOpen)
Dim pfad As String
Dim strFile As String
strFile = Dir(strFileToOpen)
pfad = ActiveWorkbook.Path
'Verknüpfungen aktualisieren
Powerpoint.Presentations(strFile).UpdateLinks
'Teilnehmerzahl eintragen
Powerpoint.Presentations(strFile).Slides(3).Shapes("Rectangle 55").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(1).Range("B18")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 50").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(3).Range("A20")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 47").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(3).Range("A21")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 48").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(3).Range("A22")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 49").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(4).Range("A20")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 51").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(4).Range("A21")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 52").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(4).Range("A22")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 54").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(6).Range("A20")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 55").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(6).Range("A21")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 56").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(6).Range("A22")
'ppt schließen und abspeichern
name_pp_datei = pfad & "\" & Format(Date, "YYYYMMDD") & "_" & "Auswertung_Umfrage" & ".pptx"
With Powerpoint
.ActivePresentation.SaveAs name_pp_datei
.ActivePresentation.Close
End With
Powerpoint.Quit
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verknüpfung ändern Diagramm ppt VBA Makro Excel
10.10.2018 15:15:31
Pete
Hab die Lösung gefunden.
Private Sub CommandButton5_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Auswahl der PowerPoint Vorlage
Dim strFileToOpen As String
strFileToOpen = Application.GetOpenFilename _
(Title:="PowerPointVorlage auswählen", _
FileFilter:="PowerPoint Files *.pptx* (*.pptx*),")
'Öffnen der Powerpoint Vorlage
Dim Powerpoint As Object
Set Powerpoint = CreateObject("Powerpoint.Application")
Powerpoint.Visible = True
Powerpoint.Presentations.Open (strFileToOpen)
Dim pfad As String
Dim strFile As String
Dim oldFilePath As String
Dim newFilePath As String
Dim pptSlide As Object
Dim pptShape As Object
strFile = Dir(strFileToOpen)
pfad = ActiveWorkbook.Path
oldFilePath = "HIER DEN ZU ÄNDERNDEN PFAD EINGEBEN"
newFilePath = pfad & "HIER DEN DATEINAMEN + DATEITYP EINGEBEN"
'Loop through each slide
For Each pptSlide In Powerpoint.Presentations(strFile).Slides
'Loop through each shape in each slide
For Each pptShape In pptSlide.Shapes
If pptShape.Type = msoLinkedPicture Or pptShape.Type _
= msoLinkedOLEObject Then
'Use Replace to change the oldFilePath to the newFilePath
pptShape.LinkFormat.SourceFullName = Replace(LCase _
(pptShape.LinkFormat.SourceFullName), LCase(oldFilePath), newFilePath)
End If
Next
Next
'Verknüpfungen aktualisieren
Powerpoint.Presentations(strFile).UpdateLinks
'Teilnehmerzahl eintragen
Powerpoint.Presentations(strFile).Slides(3).Shapes("Rectangle 55").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(1).Range("B18")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 50").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(3).Range("A20")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 47").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(3).Range("A21")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 48").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(3).Range("A22")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 49").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(4).Range("A20")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 51").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(4).Range("A21")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 52").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(4).Range("A22")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 54").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(6).Range("A20")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 55").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(6).Range("A21")
Powerpoint.Presentations(strFile).Slides(11).Shapes("Rechteck 56").TextFrame.TextRange. _
Characters.Text = ThisWorkbook.Sheets(6).Range("A22")
'ppt schließen und abspeichern
name_pp_datei = pfad & "\" & Format(Date, "YYYYMMDD") & "_" & "Auswertung_Umfrage" & ".pptx"
With Powerpoint
.ActivePresentation.SaveAs name_pp_datei
.ActivePresentation.Close
End With
Powerpoint.Quit
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Verknüpfung von Excel-Diagrammen in PowerPoint ändern


Schritt-für-Schritt-Anleitung

Um ein Excel-Diagramm in PowerPoint zu verknüpfen und den Verknüpfungspfad zu ändern, kannst du den folgenden VBA-Code verwenden. Dieser ermöglicht es dir, den Pfad aller in der PowerPoint-Präsentation enthaltenen Diagramme auf die aktuelle Excel-Datei zu ändern.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul ein (Einfügen > Modul).
  3. Kopiere und füge den folgenden Code ein:
Private Sub Powerpointerstellen()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ' Auswahl der PowerPoint Vorlage
    Dim strFileToOpen As String
    strFileToOpen = Application.GetOpenFilename(Title:="PowerPointVorlage auswählen", FileFilter:="PowerPoint Files *.pptx* (*.pptx*)")

    ' Öffnen der PowerPoint Vorlage
    Dim Powerpoint As Object
    Set Powerpoint = CreateObject("Powerpoint.Application")
    Powerpoint.Visible = True
    Powerpoint.Presentations.Open (strFileToOpen)

    Dim pfad As String
    pfad = ActiveWorkbook.Path

    ' Verknüpfungen aktualisieren
    Powerpoint.Presentations(strFileToOpen).UpdateLinks

    'ppt schließen und abspeichern
    With Powerpoint
        .ActivePresentation.SaveAs pfad & "\" & Format(Date, "YYYYMMDD") & "_Auswertung_Umfrage.pptx"
        .ActivePresentation.Close
    End With

    Powerpoint.Quit
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
  1. Passe den Code an, indem du den alten und neuen Dateipfad in der Schleife angibst, um die Verknüpfungen zu ändern.

Häufige Fehler und Lösungen

  • Fehler: PowerPoint öffnet sich nicht.

    • Lösung: Stelle sicher, dass PowerPoint korrekt installiert ist und dass du die richtige Version verwendest. Manchmal kann es helfen, die Anwendung manuell zu starten.
  • Fehler: Verknüpfungen werden nicht aktualisiert.

    • Lösung: Überprüfe, ob die PowerPoint-Datei tatsächlich verknüpfte Diagramme enthält und dass der Pfad korrekt angegeben ist.
  • Fehler: Diagramme werden nicht angezeigt.

    • Lösung: Stelle sicher, dass die Excel-Datei, aus der die Diagramme stammen, geöffnet ist.

Alternative Methoden

Wenn du Diagramme aus Excel in PowerPoint verknüpfen möchtest, gibt es neben VBA auch andere Methoden:

  • Manuelle Verknüpfung: Du kannst Diagramme direkt in PowerPoint einfügen, indem du in Excel das Diagramm kopierst und in PowerPoint mit der Option "Verknüpfung einfügen" einfügst.

  • PowerPoint-Funktionen nutzen: Verwende die Funktion "Diagramm einfügen" in PowerPoint, um ein Excel-Diagramm zu erstellen und die Daten direkt zu verknüpfen.


Praktische Beispiele

Hier sind einige praktische Anwendungen des VBA-Codes:

  • Einbindung von monatlichen Berichten: Automatisiere das Einfügen und Aktualisieren von Diagrammen in monatlichen Präsentationen.

  • Statistik-Präsentationen: Verwende den Code, um regelmäßig aktualisierte Daten aus Excel in PowerPoint-Diagramme zu integrieren.

  • Team-Meetings: Halte deine Präsentationen aktuell, indem du die Diagramme vor den Meetings automatisch aktualisierst.


Tipps für Profis

  • Verwende Variablen für Dateipfade: Definiere Variablen für den alten und neuen Dateipfad, um den Code flexibler und leichter wartbar zu gestalten.

  • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungsroutinen in deinen VBA-Code, um unerwartete Probleme zu umgehen.

  • Makros effizient nutzen: Setze Shortcuts für deine Makros, um die Arbeit mit PowerPoint und Excel zu beschleunigen.


FAQ: Häufige Fragen

1. Wie kann ich ein Diagramm in PowerPoint manuell aktualisieren?
Du kannst dies tun, indem du mit der rechten Maustaste auf das Diagramm in PowerPoint klickst und "Verknüpfung aktualisieren" wählst.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, insbesondere in Excel 2010 und neuer.

3. Was ist der Unterschied zwischen einem verknüpften und einem eingebetteten Diagramm?
Ein verknüpftes Diagramm aktualisiert sich automatisch mit den Änderungen in der Excel-Datei, während ein eingebettetes Diagramm statisch ist und manuell aktualisiert werden muss.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige