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 :
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 :
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“
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
Gibs da schon nen update? hab nämlich das gleiche Problem.
Musst im Editor unter Extras/Verweise und dann den Microsoft Excel .. Verweis und Microsoft Scripting Runtime verweis aktivieren
Bei mir war es nicht „MS Scripting Runtime“ sondern die „MS Excel 14.0 Object Library“ die angekreuzt/aktiviert werden musste.
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?
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
Das klappt ja prima!
Geht das auch entspreechend bei der Befüllung von Texten in Smart-Art-Grafiken?
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?
Da ich gerade unterwegs bin, ich würde den Bereich entsprechend setzen, wenn die Excel Datei geöffnet wird.
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?
Probiere mal : Set wb = Workbooks.Open(FileName:=“C:\Users\jill_weinmann\Desktop\Test_Makro.xlsx“, ReadOnly:=True)
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??
Kann man aus einer Excel Zelle den Hyperlink auch nach PowerPoint übertragen (nicht als Text sondern als Link)?
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?
Hallo Tina,
hast Du schon eine Lösung??
Danke
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
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?
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?
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
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.
Correct.