[Powerpoint 2013] Folien xxx bis xxx kopieren und einfügen

  • PowerPoint

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Mesopartos.

    [Powerpoint 2013] Folien xxx bis xxx kopieren und einfügen

    Hallo Leute,

    ich stehe vor einem Problem. Ich habe eine Präsentation, die in der Grundform aus 32 Folien besteht.
    • Folie 1: Einleitung
    • Folien 2-11: Teil a
    • Folien 12-21: Teil b
    • Folien 22-31: Teil c
    • Folie 32: Schluss
    Der mittlere Teil (a,b,c) wird bisher so lange dupliziert bis 1822 Folien entstanden sind. Dies ist natürlich sehr aufwendig und ich würde dies gerne mit VBA realisieren. Leider funktioniert mein Code dazu nicht richtig.
    Der Benutzer soll später die Powerpoint-Datei öffnen, die Folien ändern und dann das Skript ausführen können, das die "große" Präsentation erzeugt. Das endgültige Schema soll dabei wie folgt aussehen:

    Einleitung, Teil a, Teil b, Teil a, Teil c; ...; Teil a, Teil b, Teil a, Teil c, Schluss

    Anschließend soll die geänderte Präsentation unter einem neuem Namen gespeichert werden (bspw. "alter Dateiname"_Kopie). Das ganze soll in der aktuell geöffneten Präsentation geschehen.


    Vielen Dank schon einmal für eure Hilfe.

    Quellcode

    1. ​Sub PPT_Erstellen()
    2. Const maxSeitenzahl As Long = 1822
    3. Dim AnzSeiten, KopierFaktor, EndVar As Long
    4. Dim name As String
    5. AnzSeiten = ActivePresentation.Slides.Count
    6. EndVar = AnzSeiten - 1
    7. name = ActivePresentation.name
    8. KopierFaktor = maxSeitenzahl / AnzSeiten
    9. For Counter = 1 To KopierFaktor
    10. ActivePresentation.Slides.InsertFromFile name, 1, 2, EndVar
    11. Next Counter
    12. End Sub
    1. Was ist das Problem? Also was funktioniert nicht (gibt es Fehlermeldungen, kopiert er gar nichts, zu wenig oft, ...)?
    2. Wie kommst du auf die Zahl 1822? Weder 1822 noch 1820 (ohne Anfang und Ende) lässt sich ohne Rest durch 30 Dividieren...
    Hi Sandiro,

    zu 1.
    Ich habe den Code in der originalen .pptx erstellt und dann die Datei als .pptm gespeichert. Damit ist gewährleistet, dass das Makro in der .pptm gespeichert ist und ein Dritter dieses über die Entwicklerwerkzeuge aufrufen kann. Wenn ich jetzt nur die .pptm öffne, dann lässt sich das Makro nicht ausführen. Es erscheint ein Laufzeitfehler mit der Meldung: Slides (unknown member): Failed. Bezieht sich auf die Codezeile 16 (s.o.). Öffne ich aber zusätzlich zur .pptm auch noch die ursprüngliche .pptx, dann kann ich das Makro ohne Probleme ausführen. Woran liegt das? Ich möchte eigentlich nur eine Datei öffnen und nicht immer beide.

    zu 2.
    Jede Folie wird für eine bestimmte Zeit dargestellt und wechselt dann zu nächsten. In Summe werden ca. 1822 Folien benötigt um die Präsentation 6h laufen zu lassen. Demzufolge ermittle ich mir den Quotienten aus den 1822 benötigten Folien und den aktuell in der Grundform enthaltenen 32 Folien. Daraus ergibt sich der KopierFaktor, der die Anzahl der Schleifendurchgänge vorgibt. Das es dabei einen Rest gibt, habe ich erstmal ignoriert. Würde es dann aber so gestalten, dass der Faktor immer aufgerundet wird.
    bei 32 Folien hast du eigentlich 1824 Folien gesamt und jede der 32 Folien 57 mal. Mich würde interessieren was mich dazu bringt eine Folie 57x mit dem selben Inhalt zu haben und
    eine Präsentation mit 1824 Folien ist auch sicher nicht mehr die kleinste :D
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    @Mesopartos
    Warum lässt du deine Präsi nicht einfach in einer Schleife laufen?

    Bildschirmpräsentation - Bildschirmpräsentation einrichten - Häkchen bei "Wiederholen bis Esc gedrückt wird".

    Quelle
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Die Präsentation wird über einen Samsung Präsentationsmonitor ( smart signage) abgespielt. Dieser ist über eine Zeitschaltuhr gesteuert. DIe Powerpoint wird automatisch per USB aufgespielt und verbleibt dann im Speicher. Morgens geht er an um 8 Uhr an und öffnet automatisch die Präsentation.

    @Schamash: Leider funktioniert bei diesem alten Modell keine Endlosschleife, die man in Powerpoint eigentlich auswählen könnte. Daher erhöhe ich einfach die Anzahl der Folien, um eine fortlaufende Präsentation an dem Bildschirm realisieren zu können.

    Die Größe der Präsentation ist dann ca. 20mb. Also noch im Rahmen ;)
    Ich hab gerade mal danach gegooled, angeblich haben die Dinger einen auto repeat modus.

    Bin aber nicht sicher ob das für alle Geräte gilt.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Hab den Fehler jetzt behoben. Es lag wahrscheinlich daran, dass ich bei ActivePresentation.Slides.InsertFromFile den aktuellen Dateipfad nicht angegeben hatte. Ich habe den jetzt extra hinzugefügt und jetzt läuft es :)

    -Thema erledigt-