Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Txtfelder in Powerpoint aus Excel füllen

Forumthread: Txtfelder in Powerpoint aus Excel füllen

Txtfelder in Powerpoint aus Excel füllen
07.12.2020 11:37:06
TR
Hallo zusammen,
zunächst bitte zu entschuldigen, falls ich nicht gängige "Foren-Regeln" einhalte - sie sind mir einfach nicht bewusst, weil ich bisher so gut wie noch nie selbst Einträge erstellt habe.
ich möchte folgende Situation per VBA automatisieren: Ich habe eine Adresssliste über mehrere Spalte und Zeilen in Excel verfügbar, die ich nach Powerpoint übertragen möchte. Bisher habe ich mir hierzu ein Makro zusammen gebastelt, was die ganzen Daten in eine Tabelle auf einer Powerpointfolie schreibt. Jetzt (als Variante zu dem bereits bestehenden Makro) möchte ich aber nicht, dass die Daten in eine Tabelle in PPT geschrieben werden, sondern für jeden Zellenwert soll in PPT ein eigenes Textfeld angelegt und entsprechend befüllt werden. Grundsätzlich soll dabei auch die Struktur aus Excel beibehalten werden (also Anzahl Spalten und Zeilen), da jede dieser Zeile einen Datensatz (Person) darstellt, der so auch in Powerpoint wiedergegeben werden soll. Auch die Schriftart und Schriftgröße soll analog der Formatierung in Excel sein. Und bestenfalls werden nur die DAten übertragen, die in Excel auch markiert (Selection) sind (also nicht zwangsläufig die vollständige Tabelle).
Es wäre Prima, wenn mir dabei jemand helfen könnte, weil ich das auch nach längerer Recherche nicht richtig hinbekommen habe. Freue mich über entsprechende Rückmeldung.
Danke & vG
tr
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Txtfelder in Powerpoint aus Excel füllen
07.12.2020 17:04:22
TR
Hallo zusammen,
mittlerweile habe ich es zumindest hinbekommen, die Daten aus dem markierten Zellenbereich in Excel in einzelne Textfelder Powerpoint zu schreiben. Wo ich momentan hänge, ist die Anordnung der einzelnen Textfelder auf der Powerpointfolie, so dass wieder eine Tabellenstruktur zu erkennen ist. Weitere Herausforderung (zumindest für mich) ist, dass die Textfelder bzw. deren Daten in Excel auch unterschiedlich groß, also unterschiedliche Spaltenbreiten haben (z. B. Spaltenüberschriften, Länge der Straßen etc.). Das heißt, in dem VBA Code müsste zunächst die "breiteste" Spalte ermittelt werden, damit der Abstand der einzelnen Textfelder entsprechend bestimmt werden kann. Aktuell habe ich die Positionierung mittels Multiplikation und dem Counter vorgenommen (überhaupt nicht sinnvoll, eher als Test gewesen)
Kann mir bitte jemand einen Tipp geben?
Mein bisheriger Code sieht aus wie folgt:
Sub Export_Range_into_Txtfld()
Dim pp As New PowerPoint.Application
Dim ppt As PowerPoint.Presentation
Dim sld As PowerPoint.Slide
Dim shptxtfld As PowerPoint.Shape
Dim i As Long, j As Long
Dim myTextBox As Shape
Dim rng As Excel.Range
Dim sht As Excel.Worksheet
Set rng = Selection
pp.Visible = True
If pp.Presentations.Count = 0 Then
Set ppt = pp.Presentations.Add
Else
Set ppt = pp.ActivePresentation
End If
Set sld = ppt.Slides.Add(1, ppLayoutTitleOnly)
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
Set shptxtfld = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 50 + (i * _
50), 100 + (j * 50), 200, 50)
shptxtfld.TextFrame.TextRange.Text = rng.Cells(i, j).Text
Next
Next
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
If (rng.Cells(i, j).MergeArea.Cells.Count > 1) And _
(rng.Cells(i, j).Text  "") Then
shpTable.Table.Cell(i, j).Merge _
shpTable.Table.Cell(i + rng.Cells(i, j).MergeArea.Rows.Count - 1, _
j + rng.Cells(i, j).MergeArea.Columns.Count - 1)
End If
Next
Next
sld.Shapes.Title.TextFrame.TextRange.Text = _
rng.Worksheet.Name & " - " & rng.Address
End Sub
Danke & Grüße
Anzeige
AW: Txtfelder in Powerpoint aus Excel füllen
08.12.2020 11:32:06
TR
Hallo,
kann mir niemand weiterhelfen? Würde schätzen, dass es für einen VBA Profi kein Problem sein sollte (für ich allerdings schon). Über jegliche Tipps würde ich mich sehr freuen.
VG
tr
AW: Txtfelder in Powerpoint aus Excel füllen
08.12.2020 12:56:06
Firmus
Hi tr,
einen kleinen Beitrag kann ich dir leisten.
             Next
Next
sld.Shapes(1).Width = 200      'diese Zeile ist hinzugefügt (nur zum Test).
For i = 1 To rng.Rows.Count

Der Width-parameter sollte an passender Stelle die Breite des textfeldes setzen.
z. B. nach dem Einfüllen der Textfelder, alle auf das Maximum gleich ziehen per Schleife.
Ermittelt habe ich den Parameter über das Überwachungsfenster.
Tiefere, bessere Ideen kann ich hierzu nicht leisten.
Gruß,
Firmus
Anzeige
AW: Txtfelder in Powerpoint aus Excel füllen
08.12.2020 14:23:30
TR
Hallo Firmus,
vielen Dank für Deine Rückmeldung. Ich habe den Width-parameter an entsprechender Stelle getestet und das funktioniert soweit. Allerdings ist es glaub ich nicht ganz das was ich suche - habe mich auch umständlich ausgedrückt. Was ich gerne hätte ist, dass die Textfelder auf der Powerpointfolie so angeordnet werden, dass es wieder der Tabellenstruktur aus der Excel entspricht. Problem habe ich bspw. dass eines Textfelder einen so lange Text beinhaltet und dadurch das benachbarte Text "überlappt". Ich denke von der Herangehensweise müsste es eig. sein wie folgt:
a) der Code prüft die markierten Zellen in Excel hinsichtlich Anzahl Zeichen und ermittelt den maximalen Wert (also die "größte" Zelle)
b) An der STelle der Anordung der Textfelder, wird dann der maximale Wert der Koordinate hinzugefügt, so dass dadurch es nicht mehr zu einer Überlappung der Textfelder kommen kann. Ich denke das müsste an folgender STelle im Code erfolgen
 1 To rng.Columns.Count
Set shptxtfld = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 50 +  _
(i * _
50), 100 + (j * 50), 200, 50)

Oder alternativ könnte man ggfs. nach dem alle Textfelder erstellt und beschrieben wurden, abschließend noch per VBA alle vorhanden Objekte der Folie ermitteln und ansprechend und gleichmäßig auf der Folie verteilen ohne einen Overlap der einzelnen Objekte zu haben. Aber da bin ich völlig überfragt, ob und geschweige denn wie das funktionieren könnte!?!
VG
TR
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Txtfelder in Powerpoint aus Excel füllen


Schritt-für-Schritt-Anleitung

Um Textfelder aus Excel in PowerPoint zu füllen, kannst du folgendermaßen vorgehen:

  1. Vorbereitung der Excel-Daten: Stelle sicher, dass die Daten in Excel in einem markierten Bereich vorliegen, den du in PowerPoint übertragen möchtest.

  2. Öffne den Visual Basic for Applications (VBA) Editor: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.

  3. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf „VBAProject (deine Arbeitsmappe)“.
    • Wähle „Einfügen“ > „Modul“.
  4. Füge den folgenden VBA-Code ein:

    Sub Export_Range_into_Txtfld()
       Dim pp As New PowerPoint.Application
       Dim ppt As PowerPoint.Presentation
       Dim sld As PowerPoint.Slide
       Dim shptxtfld As PowerPoint.Shape
       Dim i As Long, j As Long
       Dim rng As Excel.Range
       Set rng = Selection
       pp.Visible = True
       If pp.Presentations.Count = 0 Then
           Set ppt = pp.Presentations.Add
       Else
           Set ppt = pp.ActivePresentation
       End If
       Set sld = ppt.Slides.Add(1, ppLayoutTitleOnly)
       For i = 1 To rng.Rows.Count
           For j = 1 To rng.Columns.Count
               Set shptxtfld = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 50 + (i * 50), 100 + (j * 50), 200, 50)
               shptxtfld.TextFrame.TextRange.Text = rng.Cells(i, j).Text
           Next
       Next
    End Sub
  5. Führe den Code aus: Markiere den gewünschten Bereich in Excel und drücke F5, um den Code auszuführen.


Häufige Fehler und Lösungen

  • Problem: Textfelder überlappen sich.

    • Lösung: Überprüfe die Anordnung der Textfelder im Code und passe die Koordinaten basierend auf der maximale Zellbreite an. Verwende die Breitenparameter, um sicherzustellen, dass genügend Platz zwischen den Textfeldern bleibt.
  • Problem: PowerPoint wird nicht angezeigt.

    • Lösung: Stelle sicher, dass die PowerPoint-Anwendung im Code mit pp.Visible = True sichtbar gemacht wird.

Alternative Methoden

  • PowerPoint-Textfeld in Platzhalter umwandeln: Wenn du eine Vorlage in PowerPoint hast, kannst du Textfelder direkt in Platzhalter umwandeln, um die Struktur zu vereinheitlichen.

  • PowerPoint-Zellen gleichmäßig verteilen: Um gleichmäßige Abstände zwischen den Textfeldern zu erreichen, kannst du VBA verwenden, um die Positionen der Textfelder nachträglich zu berechnen und anzupassen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du Textfelder aus Excel in PowerPoint erstellen kannst. Nutze den oben angegebenen Code und passe die AddTextbox-Methode an, um verschiedene Textfeldgrößen zu testen.

Ein Beispiel für ein angepasstes Layout könnte so aussehen:

Set shptxtfld = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 50 + (i * MaxWidth), 100 + (j * MaxHeight), CellWidth, CellHeight)

Hierbei ist MaxWidth die Breite des größten Textfeldes in deiner Excel-Tabelle.


Tipps für Profis

  • Verknüpfen von PowerPoint Textfeldern mit Excel Zellen: Du kannst Textfelder dynamisch verknüpfen, sodass sie sich automatisch aktualisieren, wenn sich die Excel-Daten ändern. Nutze hierzu die LinkFormat-Eigenschaft.

  • Automatisierung mit Schleifen: Verwende Schleifen und Bedingungen im VBA-Code, um komplexere Layouts zu erstellen und die Textfelder nach der Größe der Inhalte auszurichten.


FAQ: Häufige Fragen

1. Frage
Wie kann ich die Schriftart und -größe der Textfelder anpassen?
Antwort: Du kannst die TextFrame.TextRange.Font-Eigenschaften im VBA-Code verwenden, um Schriftart und -größe festzulegen, z.B. shptxtfld.TextFrame.TextRange.Font.Size = 12.

2. Frage
Kann ich mehrere Folien mit unterschiedlichen Daten aus Excel erstellen?
Antwort: Ja, du kannst den Code so anpassen, dass er für jede Zeile oder jeden Datensatz eine neue Folie erstellt, indem du ppt.Slides.Add in die Schleife einfügst.

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