Daten von Excel nach PowerPoint übertragen

PowerPoint

In dem heutigen Beispiel möchte ich zeigen, wie Daten von Excel nach PowerPoint übertragen werden können. Diese Übertragung erfolgt komplett ohne eine Verknüpfung zwischen dem Excel-Dokument und der PowerPoint-Präsentation. Verknüpfungen zwischen zwei Office-Dokumenten sind nur schwer zu handhaben, da eine Reihe von Regeln befolgt werden müssen. Hinzu kommt noch ein hoher Aufwand, wenn sich ein Dateiname oder ein Pfad zu einem entsprechenden Dokument ändert. Diesen Aufwand kann man sich sparen, wenn die Daten per VBA zwischen den Programmen Excel und PowerPoint ausgetauscht werden. Aber nun Schritt für Schritt.

Vorbereitung

Als erstes erstellen Sie eine leere Excel-Datei. Dann schreiben Sie etwas in die Zelle C4 und die Zelle C15. Diese Datei in einem Verzeichnis Ihrer Wahl speichern und Excel schließen. Als nächstes öffnen Sie PowerPoint und erstellen eine neue leere PowerPoint Präsentation mit zwei leeren Folien.

Die Daten aus dem Excel Dokument holen

Als erstes öffnen wir den Reiter „Start“ in PowerPoint. Dann in der Gruppe „Bearbeiten“ den Punkt „Markieren“ auswählen. Aus dem nun erscheinenden Menü den Punkt „Auswahlbereich…“ auswählen. Nun erscheint rechts eine Anzeige mit Titel 1 und Untertitel 2. Wenn jetzt einer der beiden Kästen ausgewählt wird, wird die entsprechende Zeile markiert, wie das folgende Bild zeigt :
Auswahlbereich anzeigen

Sollen jetzt in den oberen Kasten die Daten von Excel geschrieben werden, so benötigen wir den Namen „Titel 1“. Als nächstes muss der VBA-Editor geöffnet werden. Dieses kannst Du über die Tastenkombination ALT+F11 oder Du blendest den Reiter „Entwicklungstools“ ein und klickst in der Gruppe „Code“ auf das Icon Visual Basic. Danach solltest Du das folgende Fenster erhalten :
VBA Editor ohne Modul

Nun mit der rechten Maustaste auf VBAProject(Präsentation2) klicken und aus dem Kontextmenü den Punkt Einfügen und dann Modul auswählen. Dann wird ein leere Modul1 erstellt. In dieses leere Modul muss nun folgender Quelltext eingefügt werden :

Sub Daten_ausExcel_holen()
    'Werte aus Exceldatei holen und in PowerPoint Textfeldern zuweisen
    Dim wb As Workbook, wks As Worksheet
    Dim Folie As Slide, Textfeld As Shape
    'Exceldatei öffen und Tabellenblatt zuweisen
    Set wb = Workbooks.Open(FileName:="C:\Transfer\Mappe1.xlsx", ReadOnly:=True)   '<--- Pfad zur Excel Datei anpassen
    Set wks = wb.Worksheets("Tabelle1")   '<--- Den Namen der Tablle anpassen
    
    'Textfeldern in PowerPoint Folien Wete aus der Exceldatei zuweisen
    
    Set Folie = ActivePresentation.Slides(1)
    Set Textfeld = Folie.Shapes("Titel 1")   '<--- Den Namen der Form anpassen
    Textfeld.TextFrame.TextRange.Text = wks.Range("C4").Text   '<--- Die Zelle anpassen
    
    Set Folie = ActivePresentation.Slides(2)
    Set Textfeld = Folie.Shapes("Titel 1")   '<--- Den Namen der Form anpassen
    Textfeld.TextFrame.TextRange.Text = wks.Range("C15").Text   '<--- Die Zelle anpassen
    
    'Exceldatei schliessen
    wb.Close savechanges:=False
End Sub

Wenn Du nicht das hier aufgeführte Beispiel ausprobierst, musst Du die kommentierten Zeilen mit dem Pfeil entsprechend anpassen.

Diese Routine öffnet als erstes das Excel-Dokument aus dem Pfad C:\Transfer\Mappe1.xlsx. Als nächstes wird in den Titel auf Folie 1 der Text aus Zelle C4 aus dem Excel Dokument geschrieben. Als zweites wird noch der Text aus Zelle C15 ebenfalls in den Titel von Folie 2 geschrieben. Danach wird das Excel Dokument wieder geschlossen. Diese kann natürlich noch für weitere Formen und Textfelder entsprechend erweitert werden.

Abschluss

Während der Ausführung der Routine muss das Excel Dokument nicht in Excel geöffnet sein. Dieses übernimmt PowerPoint und nimmt sich dann die entsprechenden Daten aus der vordefinierten Tabelle und Zelle. Um jetzt wieder auf das Anfangsproblem zurückzukommen, wenn Sich jetzt zum Beispiel der Dateiname des Excel Dokumentes ändert, brauchst Du nur in Zeile 6 den Pfad anpassen. Damit reduziert sich der Aufwand zur Pflege auf ein minimum, wenn mehrere Daten von Excel nach PowerPoint übertragen werden.

Zusätzlich kann das Makro noch als Icon in das Menüband aufgenommen werden oder manuell über den Reiter „Entwicklertools“ –> Makros gestartet werden.

21 Gedanken zu „Daten von Excel nach PowerPoint übertragen

  1. Hallo Herr Warnecke,

    vielen Dank für die grundlegenden Infos für den Übertrag von Excel zu PowerPoint per VBA.

    Wenn ich Ihren Code 1 zu 1 kopieren und lediglich den Dateipfad des Excel-Dokuments ändere erhalte ich folgenden Fehler für folgenden Code:

    wb As Workbook
    ___
    Fehler beim Komplilieren:
    Benutzerdefinierter Typ nicht definiert

    Ich wäre sehr dankbar für eine kurze Rückmeldung.

    Vielen Dank und mit freundlichen Grüßen
    Marco

  2. Musst im Editor unter Extras/Verweise und dann den Microsoft Excel .. Verweis und Microsoft Scripting Runtime verweis aktivieren

  3. Geht das auch mit zufälligen Zellen, die dann aus Excel in Powerpoint übernommen werden? Oder einem Bereich von Zellen? Also nicht C4 => sondern nimm etwas aus den Spalten A?

  4. Versucht
    Set wb = CreateObject(„excel.Application“).workbooks.Open(„C:\Transfer\Mappe1.xlsx“, ReadOnly:=True) ‚<— Pfad zur Excel Datei anpassen
    statt
    Set wb = Workbooks.Open(FileName:="C:\Transfer\Mappe1.xlsx", ReadOnly:=True) '<— Pfad zur Excel Datei anpassen

  5. Hallo,
    ist es möglich das VBA so zu schreiben, dass immer die letzte Zeile eines Bereiches beim aktualisieren dazu genommen wird?
    Mein benötigter Bereich erweitert sich wöchentlich um eine Zeile und es wäre toll wenn das automatisch unten dazu, und oben weggenommen wird.
    ZB Woche 1: A1:B4
    Woche 2: A2:B5 usw
    Hatt da wer eine Idee wie das funktionieren könnte, ohne es händisch immer ändern zu müssen?

  6. Hallo! Ich bekomme die ganze Zeit den Laufzeitfehler „429“ und als Zeile wird mir die des Pfades angezeigt. Das wäre die Zeile bei mir:
    Set wb = Workbooks.Open(FileName:=“/Users/jill_weinmann/Desktop/Test_Makro.xlsx“, ReadOnly:=True) ‚<— Pfad zur Excel Datei anpassen

    Da sollte doch alles stimmen?

  7. Hallo,

    ich habe ein ähnliches Problem, was aber etwas komplexer ist.

    Und zwar habe ich eine PowerPoint-Folie und eine Excel-Tabelle.

    In der Exceltabelle habe ich in Spalte A eine ID und in Spalte B einen Wert.

    Ich möchte es jetzt irgendwie schaffen, dass ich in PowerPoint gebeten werde eine ID einzugeben (z. 5). Daraufhin soll sich PowerPoint den Wert aus Spalte B holen, der zur ID passt und auf Basis vom Wert (der kann 0 oder 1 sein) entweder eine Grafik mit einem roten Kreis oder die Grafik mit einem grünen Haken anzeigen.

    Geht das irgendwie??

  8. Ich habe auch das Problem mit der Übertragung von Hyperlinks aus der Excel-Zelle in die PowerPoint-Präsentation. Gibt es da eine Lösung?

  9. Hallo zusammen,

    ich habe ein ähnliches Problem. Besteht die Möglichkeit einen Wert aus einer Excel-Tabelle an eine bestimmte Stelle innerhalb eines Textfeldes zu kopieren? Die Werte ändern sich monatlich.
    Danke

  10. Hallo Leute,

    bis jetzt klappt es prima, ich frage mich nur, wenn ich 10.o00 Zellen in die pptx importieren will, welche Schleife wäre da am sinnvollsten?

  11. Hallo,

    vielleicht falle ich mit meiner Frage hier etwas aus der Rolle. Gerne würde ich so ein Script auch auf meinem Mac nutzen. Jedoch erhalte ich schon bei „Dim wb As Workbook, wks As Worksheet“ den Fehler „Fehler beim Kompilieren.: Ein benutzerdefinierter Typ ist nicht definiert.“ Hat jemand einen Tipp?

  12. Thank you for your Code.
    I want to use this code for different rows and columns to be link with different shapes in powerpoint. How can I define it?
    I have 3 Columns with 500 Rows! Already from A2:C500

  13. Also ich halte mich an alles was hier geschrieben wurde. Habe nur zwei Zeilen hinzugefügt und dementsprechend den Code angepasst. Keine einzige Zahl erscheint in der Powerpoint wenn ich diese öffne. Die Kommentare mit den Verweisen hat auch leider nicht geholfen. Schon sehr schade, denn der Beitrag sah sehr vielversprechend aus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert