Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge