Information in MS Office austauschen

Liebe Gemeinde,

ich möchte von einem *.ppt Dokument aus diverse *.xls Dokumente „öffnen“ (wir reden leider immer noch von MS Office 2002 / 2003), darin einen Range, den Wert einer Zelle (String), und eine unbekannte Anzahl von Bildern kopieren. Bei den Bildern kommt erschwerend hinzu, dass zwei Shapes vom Typ 13 nicht kopiert werden sollen, Kommentare und Checkboxen die Selektion oder das Kopieren erschweren, und die Anzahl der Bilder variieren kann.

Der Wert der Zelle soll als Text (String) in ein Rectangle oder eine TextBox geschrieben werden. Der Range als Tabelle oder Bild eingefügt und platziert werden und Schließlich sollen alle kopierten Bilder in einer vernünftigen Größe auf dem Slide positioniert und skaliert werden.

Danach würde dieses Slide in *.ppt dupliziert werden, die Tabelle und Bilder gelöscht werden, und das Rectangle oder die TextBox verbleiben, um sie später mit neuem Inhalt zu füllen.

Dieser Vorgang würde solange wiederholt werden, bis alle Excel-Dateien eines bestimmten Verzeichnisses (das zu Beginn selektiert werden soll) durchlaufen sind.

Solange ich mich in einer Applikation bewege (entweder Excel oder PowerPoint) kann ich das einigermaßen über den Recorder in den Griff bekommen. Hier aber (applikationsübergreifend) bin ich hoffnungslos überfordert.

Kann mir die Gemeinde eventuell weiterhelfen?

Ich danke Euch vielmals.

Mit freundlichen Grüßen

MwieMichel

Hallo Michel,

ich weiß noch nicht ob ich Lust hab dir zu helfen. Du willst da einiges. Aber du sagts innerhalb von PP bzw. Excel kommste klarer.
Okay, von PP-Vba Excel ufzurufen und zu bedienen ist recht einfach.

Auf die Schnelle habe ich das Nachstehende gefunden, jetzt für PP. Rufste das in Excel auf mußte halt Powerpoint.Application da reinschreiben. Prinzip ist das gleiche.
Danach ist Excelobjekt „Excel“. Warum auch immer ist es erstmal nicht sichtbar also das noch anfügen, falls nötig.
Excelobjekt.visible=true.

Eine z.B. Zelle kannste dann so referenzieren (ansprechen)

msgbox Excelobjekt.workbooks(„abc.xls“).Worksheets(„Tabelle1“).Range(„A1“).Value

Wie das umgekehrt mit Start in XL läuft weißich nicht, da ich ich nicht weiß wie man da in PP Slides oder was es noch so gibt anspricht.

Ich hoffe das nützt dir was.

Gruß
Reinhard

Dim ExcelObjekt As Excel.Application
On Error Resume Next
 Set ExcelObjekt = GetObject(, "Excel.Application")
 If Err.Number = 429 Then
 '--\>Fehler bei ActiveX-Erstellung, vermutlich ist Excel nicht gestartet!
 Err.Clear
 Set ExcelObjekt = CreateObject("Excel.Application")
 If Err.Number = 429 Then
 Err.Clear
 MsgBox "Es konnte nicht auf 'Microsoft Excel' zugegriffen werden! Vielleicht ist Excel nicht installiert!", vbExclamation, "Fehler beim Zugriff auf MS Excel"
 End If
 End If

Hallo Reinhard,
vielen Dank, dass Du Dir die Mühe gemacht hast. In der Tat ist / war das einiges was ich wollte. Und das Objektmodell von PowerPoint ist nicht gerade einfach zu durchschauen.
Wie ich PowerPoint aus Excel aufrufe, dazu habe ich im WWW zwei brauchbare links gefunden. Trotzdem war es noch ein langer Weg des Probierens um festzustellen, welche Objekte ich vorher als Variablen definieren muss.
Was ich manuell als copy & paste über die Zwischenablage machen würde, lässt sich im VBA-Code dann doch nicht so ohne weiteres darstellen (oder etwa doch?).
Vielen Dank für Deine Anregungen, und Geduld und vor allem für die Antwort auf diese ungewöhnliche Anfrage.
Mit freundlichen Grüßen
MwieMichel

Hallo Michel,

Und das Objektmodell von
PowerPoint ist nicht gerade einfach zu durchschauen.

das Objektmodell von Excel habe ich noch nie kapiert. F2 im VB-Editor bringt mir nahezu nichts. Ich weiß ein Fehler, müßte ich schon kennen inzwischen aber tja nun.
Okay, in Excel weiß ich halt von vielen Objekten Elementen wie ich sie ansprechen muß per Vba-Code.

In Word-Vba schon beträchtlich weniger und Outlook, Powerpoint, Access, oha, da ist das ein limes der gegen 0 strebt :smile:

Wie ich PowerPoint aus Excel aufrufe, dazu habe ich im WWW
zwei brauchbare links gefunden. Trotzdem war es noch ein
langer Weg des Probierens um festzustellen, welche Objekte ich
vorher als Variablen definieren muss.

Ich gehe davon aus du meinst damit wie ich wie du das was immer da PP an Objekten hat mit Vba ansprechen kannst.
Tja nun, ich hab das oben nicht ohne Grund erwähnt, zumindest glaube ich wenn ich F2 in Excel indus hätte hätte ich es bedeutend leichter in z.B. PP.

Was ich manuell als copy & paste über die Zwischenablage
machen würde, lässt sich im VBA-Code dann doch nicht so ohne
weiteres darstellen (oder etwa doch?).

Zeige bitte den Code den du hast. Damit ich keine Probleme bekomme das in PP nachzubauen am liebsten mit ner xls und einer ppt, pps, oder was auch immer.

Gruß
Reinhard