Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
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

Aus Excel heraus Abschnitt in PP

Aus Excel heraus Abschnitt in PP
14.04.2020 08:18:43
David
Guten Morgen,
ich möchte gerne aus einem Excel Makro eine PowerPoint erzeugen und mit Daten befüllen. Das klappt auch ganz gut. Jetzt möchte ich an bestimmten Stellen Abschnitte in die PP einfügen. Dies versuche ich mit der Codezeile
oSlide = oPPT.ActivePresentation.SectionProperties.AddSection(i, "Test")
Dabei bekomme ich immer die Fehlermeldung "Integer is out of Range"). "i" habe ich als Integer deklariert und lasse es durch eine Schleife immer um +1 hochlaufen.
Ich hoffe mir kann jemand helfen
Gruß David

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
probiers doch mal mit Long statt Integer ... owT
14.04.2020 08:31:23
Matthias
AW: probiers doch mal mit Long statt Integer ... owT
14.04.2020 08:56:56
David
Funktioniert leider auch nicht. Jetzt kommt die Fehlermeldung "objekt unterstützt Eigenschaft oder Methode nicht" :(
Integer ist richtig, kann aber max 512 sein! (owT)
14.04.2020 08:58:26
EtoPHG

AW: Integer ist richtig, kann aber max 512 sein! (owT)
14.04.2020 09:02:40
David
ja, allerdings übersteige ich die 512 nicht. Woran kann es liegen? Wird der Befehl ansonsten richtig aufgerufen?
Weiss ich nicht, ich sehe ja nicht den ganzen Code
14.04.2020 09:35:53
EtoPHG

AW: Weiss ich nicht, ich sehe ja nicht den ganzen Code
14.04.2020 12:08:43
David

Sub AddSection()
Dim oPPT As PowerPoint.Application
Dim oSlide As PowerPoint.Slide
Dim oSection As PowerPoint.SectionProperties
Dim oPres As PowerPoint.Presentation
Dim oShape As Shape
Dim i As Integer
Set oPPT = New PowerPoint.Application
oPPT.Visible = msoTrue 'oder True
oPPT.Presentations.Open "Mein Dateipfad"
i = InputBox("Vor welcher Folie soll der Abschnitt eingefügt werden")
Set oSection = oPPT.ActivePresentation.SectionProperties
oSection = oPPT.ActivePresentation.SectionProperties.AddSection(i, "Test")
End Sub
Ich hoffe das hilft weiter
Anzeige
Nur ne Vermutung, kein Slide ist aktiviert...
14.04.2020 12:24:33
EtoPHG
Hallo David,
Mit PP-VBA kenn ich mich kaum aus. Meine Vermutung ist, dass die AddSection Methode nur funktioniert, wenn (ein) bestimmte(s) Slide selektiert/aktiviert ist. Andernfalls weiss ja der Code nicht, welche Slides die Section umfassen soll.
Ich würde den Code zum Addieren einer Section, mal in einer leeren VBA aufzeichnen und studieren und ggf. bereinigen.
Gruess Hansueli
AW: Weiss ich nicht, ich sehe ja nicht den ganzen Code
14.04.2020 15:21:24
volti
Hallo David,
vorab: Ich kenne mich mit der gewünschten Funktionalität zu Sektoren nicht aus, habe das nie verwendet und weiß auch nicht, wozu das gut ist.
Aber vielleicht helfen Dir meine Gedanken hierzu ja etwas weiter:

i = InputBox("Vor welcher Folie soll der Abschnitt eingefügt werden")
Set oSection = oPPT.ActivePresentation.SectionProperties
oSection = oPPT.ActivePresentation.SectionProperties.AddSection(i, "Test")

  • Ich bin mir nicht sicher, ob die Abfrage "Vor welcher Folie..." so richtig ist. Ich konnte immer nur Abschnitte vor der ersten Folie einfügen.
    Aber wie gesagt, ich kenne mich hier nicht aus.

  • Die Zeile Set oSection = … ist überflüssig, es sei denn, Du möchtest das Objekt weiterverwenden (s.u.)

  • Die Funktion gibt eine Ganzzahl zurück, und zwar die Indexnummer der gerade erstellten Sektion
    Das heißt, es kann auf keinen Fall auf ein Objekt wie oSection oder oSlide angewendet werden
    oSection = oPPT.ActivePresentation.SectionProperties.AddSection(i, "Test") =>
    iSec = oPPT.ActivePresentation.SectionProperties.AddSection(i, "Test") oder auch
    iSec = oSection.AddSection(i, "Test")

  • Die übergebene Index-Nummer darf nur um 1 größer sein, als die bereits vergebenen Indexnummern, sonst kommt Fehler ""Integer is out of Range""
    Das heißt, am Anfang kann maximal eine 1 angegeben werden, später können alle Indexwerte kleiner der Maxzahl+1 angegeben werden
    iSecAnz=oPPT.ActivePresentation.SectionProperties.Count oder iSecAnz=oSection.Count

  • Hansuelis Vermutung, dem Fehler liege "Kein Slide aktiviert" zugrunde teile ich nicht, da dies m.E. eine Funktion des Presentation-Objektes ist

viele Grüße
Karl-Heinz
Anzeige
AW: Weiss ich nicht, ich sehe ja nicht den ganzen Code
17.04.2020 09:44:51
David
Vielen Dank Karl-Heinz! Du lagst, wie so oft, richtig. Das Einfügen der Abschnitte klappt schon mal. Allerdings werden die Abschnitte immer am Ende der Präsentation eingefügt und nicht hinter einer bestimmten Seite. Kennst du noch einen Lösungsansatz, wie ich den Abschnitt hinter oder vor einer bestimmten Folie einfügen?
Viele Grüße :)
Aus Excel heraus Abschnitt in PP
17.04.2020 10:13:06
Anton
Hallo David,
wenn ich dich richtig verstanden habe, suchst du sowas, wie das hier (im neuen Tab öffnen).
mfg Anton
AW: Aus Excel heraus Abschnitt in PP
17.04.2020 10:39:32
volti
Hallo Anton,
wer lesen kann,...
Steht bei der MS-Seite ja direkt über dem AddSection-Item. Aber nun gut, man sieht nicht immer alles, schon gar nicht, wenn man nicht weiß, was man eigentlich sucht.
Ägän wat lörnt
VG KH
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige