Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1808to1812
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
VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 13:25:01
MarC
Hallöchen,
ich möchte den Inhalt eines Textfeldes an eine Tabelle in PowerPoint übergeben und erhalte immer die Meldung 438 das Objekt unterstützt das nicht. Mit Value habe ich es schon versucht das ging auch nicht. Woran könnte es denn liegen dass das nicht geht?
pptxVorlage.Tables(1).Cell(1, 1).Range = ThisWorkbook.Worksheets("Sales").Shapes("Textfeld 200").TextFrame.TextRange.Text
PS: ich habe nur eine Tabelle in der Datei, aber der Name steht nirgends. Wie findet man den denn raus?

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 14:13:16
MarC
Kann man überhaupt Werte und Grafiken von Excel gezielt in eine Tabelle in Powerpoint übergeben? In Word funktionirt es. In PowerPoint kann ich aber anscheinend nichts gezielt in eine Tabelle kopieren =/
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 14:20:42
ralf_b
lass doch mal .Range weg
einen Text auf ein Objekt zu werfen, klappt nicht immer.
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 14:48:54
MarC
Geht leider auch nicht. Hm an was könnte es noch liegen?
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 15:01:53
ralf_b
dazu müßte ich mich damit näher beschäftigen, aber ohne Beispieldaten geht das in die Hose.
einst weilen, lies mal dort
https://www.ms-office-forum.net/forum/showthread.php?t=280321
Anzeige
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 16:32:28
volti
Hallo Marc,
nachfolgend ein Beispiel, wie Du mit einem PPt-Makro den Namen der markierten Tabelle herausbekommen kannst.
Das zweite Makro setzt von Excel aus den Wert in Deiner Tabelle.
Hier solltest Du einmalig den Tabellennamen ermitteln und dann dort einsetzen. Man kann ja nicht davon ausgehen, dass die Tabelle immer markiert ist.
Teste mal:
Code:

[Cc]

Sub Makro_in_PowerPoint() Dim sFole As String, sTabelle As String sFolie = ActiveWindow.View.Slide.Name ' Name der Folie sTabelle = ActiveWindow.Selection.ShapeRange.Name ' Name der markierten Tabelle ' Beispiel ActivePresentation.Slides(sFolie).Shapes(sTabelle).Table.Cell(1, 1).Shape.TextFrame.TextRange.Text _ = "Mein Wert" End Sub Sub Makro_in_Excel() Dim pptApp As Object, pptxVorlage As Object Dim sTabelle As String Set pptApp = GetObject(, "PowerPoint.Application") Set pptxVorlage = pptApp.ActivePresentation Set pptxVorlage = pptApp.ActiveWindow.View.Slide sTabelle = pptApp.ActiveWindow.Selection.ShapeRange.Name ' Name der markierten Tabelle pptxVorlage.Shapes(sTabelle).Table.Cell(1, 1).Shape.TextFrame.TextRange.Text _ = "Mein Wert" End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 20:18:47
MarC
Hm doofe Frage bei "Mein Wert" und Cell ist mir klar was da rein kommt aber was soll ich bei PowerPoint.Application Name hinzufügen?
Bei Name kann ich ja nicht .Name("Tabelle 1") schreiben. also ich habe schon rum probiert aber so ganz komme ich damit nicht zurecht
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 22:06:08
Tobias
Du schon wieder :)
Set pptApp = GetObject(, "PowerPoint.Application") ermittelt nur das aktive PowerPoint programm um darauf aus Excel heraus Zugriff zu bekommen. Der Satz so ist schon komplett richtig da brauchst du nichts ändern.
Schöne Grüße
Tobias
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 22:28:47
MarC
Hm dann check ich es nicht. Ich bekomme immer an der Stelle die Meldung Laufzeitfehler .....
sTabelle = pptApp.ActiveWindow.Selection.ShapeRange.Name = "Tabelle 1" ' Name der markierten Tabelle
Vielleicht hätte ich dazu sagen müssen das ich die Tabelle nicht markiert habe. Ich bin davon ausgegangen das es sich so ähnlich verhält wie von schreibe von excel zu excel oder von excel in Word. Aber bei PP ist es wohl etwas anders. Aktuell sieht der Code so aus:
Sub Create_Presentation()
Dim Pfad As String
Dim appPowerPoint As Object
Dim pptxVorlage As Object
Dim pInt As Integer
Set appPowerPoint = CreateObject("PowerPoint.Application")
appPowerPoint.Visible = True
Application.ScreenUpdating = False
If appPowerPoint.Presentations.Count = 0 Then
Set pptxVorlage = appPowerPoint.Presentations.Open("C:\Users\xxxxxx\Vorlage Report.pptx" _
, WithWindow:=msoTrue, Untitled:=msoTrue)
End If
pptxVorlage.Slides(2).Shapes("Tabelle 1").Cell(1, 1).Shape.TextFrame.TextRange.Text =  _
ThisWorkbook.Worksheets("Sales").Shapes("Textfeld 200").TextFrame.TextRange.Text
Sheets("Sales").ChartObjects("Diagramm 1").Copy
pptxVorlage.Slides(2).Shapes.Paste
pInt = pptxVorlage.Slides(2).Shapes.Count
pptxVorlage.Slides(2).Shapes(pInt).Name = "Diagramm 1"
pptxVorlage.Slides(2).Shapes("Diagramm 1").Left = 248
pptxVorlage.Slides(2).Shapes("Diagramm 1").Top = 70
pptxVorlage.SaveAs Pfad & "pptx"
Set appPowerPoint = Nothing
pptxVorlage.Close
End Sub

Anzeige
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 22:36:28
volti
Hallo Marc,
hier noch mal ein Versuch:
Es ging um die Frage, den Tabellennamen der aktuellen Tabelle herauszubekommen, um diesen dann später verwenden zu können.
Dazu kann das PPt-Makro oder der erste Teil des Excelcodes verwendet werden.
Den ermittelten Tabellennamen dann in den zweiten Teil des Excelmakros einsetzen.
Ich unterstelle, dass Du in pptxVorlage schon Deine Folie referenziert hast, dann brauchst Du ja nur den zweiten Teil des Codes.
Code:

[Cc]

Sub Makro_in_Excel() Dim pptApp As Object, pptxVorlage As Object ' Nur zur Ermittlung des Tabellenamens, die Tabelle ist markiert Set pptApp = GetObject(, "PowerPoint.Application") ' PPt-Object referenzieren Set pptxVorlage = pptApp.ActiveWindow.View.Slide ' Aktuelle Folie referenzieren MsgBox pptApp.ActiveWindow.Selection.ShapeRange.Name ' Name der markierten Tabelle ' Dein Code angepasst, PPt-Tabellenname ggf. anpassen ' Unterstellt wurde, dass Du die Folie schon in pptxVorlage referenziert hast pptxVorlage.Shapes("Tabelle 6").Table.Cell(1, 1).Shape.TextFrame.TextRange.Text _ = ThisWorkbook.Worksheets("Sales").Shapes("Textfeld 200").TextFrame.TextRange.Text End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: VBA: Textfeldinhalt an PowerPoint überge
26.01.2021 23:14:59
MarC
Ja das stimmt Heinz am Anfang wusste ich nicht wie ich zu den Tabellennamen kommen soll, aber dann habe ich die Tabelle angeklickt bin auf Layout und Auswahl und da stand er dann ^^.
Leider erhalte ich immer noch die Meldung 438 in der letzten Zeile. Objekt unterstützt die Eigenschaft nicht.
AW: VBA: Textfeldinhalt an PowerPoint überge
27.01.2021 12:53:11
volti
Hallo MarC,
da kann ich jetzt wenig zu sagen, weil
ich nicht weiß,
- ob in Variable pptxVorlage eine gültige Folie referenziert wurde
- ob Du den richtigen Tabellennamen dort eingesetzt hast
- ob das Textfeld in Excel richtig referenziert wurde.
Woher hast Du Deinen Excelpart ThisWorkbook.Worksheets("Sales").Shapes("Textfeld 200")...?
Wenn ich das bei mir mal aufnehme, gibt Excel mir etwas anderes und das funktioniert auch...
pptxVorlage.Shapes("Tabelle 6").Table.Cell(1, 1).Shape.TextFrame.TextRange.Text _
= ThisWorkbook.Worksheets("Sales").Shapes("Textfeld 200").TextFrame2.TextRange.Characters.Text

viele Grüße
Karl-Heinz
Anzeige
AW: VBA: Textfeldinhalt an PowerPoint überge
27.01.2021 21:11:10
Marc
Hallo Heinz meinen Excelpart habe ich aus einem Tutorial. Mit deinem Teil kann ich die Tabelle füllen, aber dann erhalte ich die Meldung 438 beim kopieren der Diagramme.
Also das mit den referenzieren verstehe ich noch nicht so ganz. Reicht es nicht wenn ich weiß wie der Start und das Ziel heißt? Muss ich die Datei, Folie und/oder das Shape vorher markieren z.B. mit select?
AW: VBA: Textfeldinhalt an PowerPoint überge
27.01.2021 22:17:02
volti
Hallo,
nein, weder die Folie noch die Tabelle müssen markiert werden.
Das war ja nur zum einmaligen Ermitteln des Tabellennamens anhand der aktuell markierten Tabelle.
Sobald der Tabellenname bekannt ist, brauchst Du den Teil ja nicht mehr. Dann müsste der blaue Teil reichen.
VG KH
Anzeige
Danke für deine Hilfe
29.01.2021 14:06:10
MarC
Servus Heinz,
es funktioniert. Ich habe jetzt alles nochmal neu aufgesetzt und bekomme keine Fehlermeldungen mehr. Keine Ahnung woran es lag aber jetzt geht es. Die Shapes werden ausgelesen und der Inhalt übertragen genauso wie die Diagramme. Danke nochmal für deine Hilfe.
Grüße Marc

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige