Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
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
Excel - Powerpoint Grafik und Daten übergeben
Sue
Guten Morgen liebe Excel-Gemeinde
Versuche seit Stunden Grafiken und Texte (Zellinhalte) von Excel an Powerpoint zu übergeben.
Mit folgendem Code kann ich alle Grafiken des aktiven Registers nach Powerpoint übertragen:
Sub jede_Grafik_nach_PowerPoint()
'Extras - Verweise: Microsoft PowerPoint x.x Object Library
Dim Grafik As Shape
Dim PP As PowerPoint.Application
Dim PP_Datei As PowerPoint.Presentation
Dim PP_Folie As PowerPoint.Slide
On Error GoTo Hell
Set PP = CreateObject("Powerpoint.Application")
With PP
.Visible = True
.Presentations.Add
End With
Set PP_Datei = PP.ActivePresentation
For Each Grafik In ActiveSheet.Shapes
'neue Folie einfügen
PP.ActivePresentation.Slides.Add 1, ppLayoutBlank
Set PP_Folie = PP_Datei.Slides(1)
'kopieren
Grafik.CopyPicture
'einfügen
PP_Folie.Shapes.Paste
Next
Set PP_Folie = Nothing
Set PP_Datei = Nothing
Set PP = Nothing
Exit Sub
Hell:
Set PP_Folie = Nothing
Set PP_Datei = Nothing
Set PP = Nothing
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End Sub

Nun zu meinen Fragen:
Wie schaffe ich es, dass die Grafiken (die immer gleich gross sind), so in Powerpoint einfügen kann, dass diese nach meinen Vorgaben ausgerichtet werden (im Moment stimmt der "Nullpunkt" nicht)?
Wie kann ich Powerpoint mitteilen, dass ich eine bestimmte Blattgrösse möchte (also nicht die Standardgrösse A4 sondern z.B. 10 x 15cm -> die Grafiken sind z.B. genau so gross)?
Wie kann ich die Titel, welche jeweils über den Grafiken stehen (auch die Titel sind immer an genau derselben Stelle, also z.B. A5, A25, E5, E25...) zur entsprechenden Folie übertragen und diese ebenfalls nach meinen Vorgaben formatiert darstellen?
Hat jemand eine Lösung, einen Hinweis - ich wäre Euch sehr dankbar.
Beste Grüsse
Sue
AW: Excel - Powerpoint Grafik und Daten übergeben
06.12.2011 08:25:12
guentherh
Hallo Sue,
ich habe mal das Einstellen von Seitenformat und Diagrammgröße in Powerpoint aufgezeichnet.
Vielleicht reicht Dir das, um es in Deinen Code zu integrieren.
Einstellen der Blattgröße auf 10*15 cm
With ActivePresentation.PageSetup
.SlideSize = ppSlideSizeCustom
.SlideWidth = 425.25
.SlideHeight = 283.5
.FirstSlideNumber = 1
.SlideOrientation = msoOrientationHorizontal
.NotesOrientation = msoOrientationVertical
End With
Einstellen des Objektformats auf 5 cm hoch, (der Rest kam vom Dialog mit fester Ratio)
With ActiveWindow.Selection.ShapeRange
.Fill.Transparency = 0#
.Height = 141.75
.Width = 269.75
.Left = 28.25
.Top = 56.62
End With
beste Grüße,
Günther
Anzeige
AW: Excel - Powerpoint Grafik und Daten übergeben
06.12.2011 11:07:58
Sue
Hallo Günther
Danke für Deine Hilfestellung - bin leider mit Deinen Anweisungen nicht zurecht gekommen (diese müsste ich in Powerpoint integrieren - richtig?).
Inzwischen konnte ich den "Open-Befehl" und die Ausrichtung realisieren.
Was mir noch fehlt, ist die Titelbeschriftung - dort habe ich echt keine Ahnung.
Wie bekomme ich aus definierten Zellen den Textinhalt als Titel für die Folien in der richtigen Reihenfolge (=in der Reihenfolge, wie die Grafiken eingefügt werden)?
Weisst Du weiter?
Wer könnte es wissen?
Nochmals lieben Dank
Sue
PS. Das momentan bestehende Makro:
Sub jede_Grafik_nach_PowerPoint2()
'Extras - Verweise: Microsoft PowerPoint x.x Object Library
Dim Grafik As Shape
Dim PP As PowerPoint.Application
Dim PP_Datei As PowerPoint.Presentation
Dim PP_Folie As PowerPoint.Slide
On Error GoTo Hell
Set PP = CreateObject("Powerpoint.Application")
With PP
.Visible = True
.Presentations.Add
End With
Set PP_Datei = PP.Presentations.Open("C:\......pptx")
For Each Grafik In ActiveSheet.Shapes
'neue Folie einfügen
PP.ActivePresentation.Slides.Add 1, ppLayoutBlank
Set PP_Folie = PP_Datei.Slides(1)
Grafik.CopyPicture              'kopieren
PP_Folie.Shapes.Paste          'einfügen
PP_Folie.Shapes(1).Left = 0  'neu: Abstand links
PP_Folie.Shapes(1).Top = 0
Next
Set PP_Folie = Nothing
Set PP_Datei = Nothing
Set PP = Nothing
Exit Sub
Hell:
Set PP_Folie = Nothing
Set PP_Datei = Nothing
Set PP = Nothing
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End Sub

Anzeige
AW: Excel - Powerpoint Grafik und Daten übergeben
06.12.2011 11:54:26
guentherh
Die Integration erfolgt in deinem bestehenden Excel-Code
gefragt ist die übergreifende Nutzung des Objektmodells.
Ein paar Anregungen - ungetestet
Sub jede_Grafik_nach_PowerPoint2()
'Extras - Verweise: Microsoft PowerPoint x.x Object Library
Dim Grafik As Shape
Dim PP As PowerPoint.Application
Dim PP_Datei As PowerPoint.Presentation
Dim PP_Folie(50)  As PowerPoint.Slide
Dim PP_Shape(50)  As PowerPoint.shaperange
Dim Titeltext as string
Dim i as integer
On Error GoTo Hell
Set PP = CreateObject("Powerpoint.Application")
With PP
.Visible = True
.Presentations.Add
End With
Set PP_Datei = PP.Presentations.Open("C:\......pptx")
With PP.ActivePresentation.PageSetup
.SlideSize = ppSlideSizeCustom
.SlideWidth = 425.25
.SlideHeight = 283.5
.FirstSlideNumber = 1
.SlideOrientation = msoOrientationHorizontal
.NotesOrientation = msoOrientationVertical
End With
I=0
For Each Grafik In ActiveSheet.Shapes
Titeltext = "hier den zugehörigen titel holen"
i=i+1
'neue Folie einfügen
Set PP_Folie(i)=PP.ActivePresentation.Slides.Add (1, ppLayoutTitleOnly)
PP_Folie(i).shapes(1).textrange.text= Titeltext
Grafik.CopyPicture              'kopieren
Set PP_Shape(i) = PP_Folie.Shapes.Paste          'einfügen und referenz belegen
PP_Shape(i).Left = 0  'neu: Abstand links
PP_Shape(i).Top = 0
PP_Shape(i).Height= 141.75 'z.B. Höhe einstellen
Next
Set PP_Folie = Nothing
Set PP_Datei = Nothing
Set PP = Nothing
Exit Sub
Hell:
Set PP_Folie = Nothing
Set PP_Datei = Nothing
Set PP = Nothing
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End Sub

Anzeige
AW: Excel - Powerpoint Grafik und Daten übergeben
06.12.2011 12:05:14
Sue
Hallo Günther
Besten Dank - habe aber noch kurz eine Frage (da ich nicht weitertesten kann).
Es erscheint der Fehler 461 in der Zeile:
PP_Folie(i).Shapes(1).TextRange.Text = Titeltext
Wie kann ich diesen beheben?
Beste Grüsse
Sue
AW: Excel - Powerpoint Grafik und Daten übergeben
06.12.2011 13:25:39
guentherh
Hallo Sue,
da habe ich mich beim Objektbezug verschätzt.
Probier mal die Zeile
PP_Folie(i).shapes.Title.TextFrame.TextRange =Titeltext
Das ist speziell für den Titel und sollte funktionieren
Das was ich aufgezeichnet habe war
ActiveWindow.Selection.SlideRange.Shapes("Rectangle 2").Select
ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Characters(Start:=1, Length:=0).Select
ActiveWindow.Selection.TextRange.Text = "Test2"
Da ist für mich als PP-Neuling nicht richtig erkennbar wie Selection in Bezug zu PP_Folie(i) steht.
gerade habe ich die Hilfepassage fur title
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes.Title.TextFrame.TextRange.Text = "Welcome!"
gefunden. da ist klar, das myDocument mit PP_Folie(i) korrespondiert.
obere Codezeile habe ich zumindest in PP schon mal getestet
beste Grüße,
Günther
Anzeige
AW: Excel - Powerpoint Grafik und Daten übergeben
06.12.2011 13:53:18
Sue
Hallo Günther
Hey danke für Deine Hilfe.
Also, ich bin ein Stücklein weiter - siehe nachstehend:
Aber: mir fehlt noch ein kleines Stücklein und zwar die Formatierung der Titelzeile.
Irgendwie muss ich noch die Position des Textfeldes, die Ausrichtung des Textes, die Textgrösse und Schriftart sowie Schriftfarbe festlegen (ist immer gleich).
...der letzte Schritt - ...?
...wie muss ich dies einfügen?
Irgendwie so?
PP_Folie.Shapes.Title.TextFrame.TextRange.Font.Size = 24 -> das funktioniert aber nicht.
Hast Du noch eine Idee?
Grüsse
Sue
Sub jede_Grafik_nach_PowerPoint4()
'Extras - Verweise: Microsoft PowerPoint x.x Object Library
Dim Grafik As Shape
Dim PP As PowerPoint.Application
Dim PP_Datei As PowerPoint.Presentation
Dim PP_Folie As PowerPoint.Slide
lngZe = lngZe + 5
lngSp = 1
On Error GoTo Hell
Set PP = CreateObject("Powerpoint.Application")
With PP
.Visible = True
.Presentations.Add
End With
Set PP_Datei = PP.Presentations.Open("C:\........pptx")
For Each Grafik In ActiveSheet.Shapes
'neue Folie einfügen
PP.ActivePresentation.Slides.Add 1, ppLayoutBlank
Set PP_Folie = PP_Datei.Slides(1)
Grafik.CopyPicture              'kopieren
PP_Folie.Shapes.Paste           'einfügen
PP_Folie.Shapes(1).Left = 0   'neu: Abstand links
PP_Folie.Shapes(1).Top = 0
If Cells(lngZe, lngSp) = 0 Then
lngSp = lngSp + 9
lngZe = 5
End If
PP_Folie.Layout = ppLayoutTitleOnly
PP_Folie.Shapes.Title.TextFrame.TextRange.Text = Cells(lngZe, lngSp)
lngZe = lngZe + 21
Next
Set PP_Folie = Nothing
Set PP_Datei = Nothing
Set PP = Nothing
Exit Sub
Hell:
Set PP_Folie = Nothing
Set PP_Datei = Nothing
Set PP = Nothing
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End 

Sub

Anzeige
AW: Excel - Powerpoint Grafik und Daten übergeben
06.12.2011 14:12:24
guentherh
Also da gäbe es die programmierfreie Alternative den Folienmaster in Deiner Ursprungsdatei zu formatieren.
Sinnvoll wenn Du Zb eine Datei ohne Folien verwendest in die Deine Excel Bilder eingefügt werden, oder wenn Deine Excelbilder sich in eine vorhandene Präsentation mit gleicher Titelformatierung einfügen sollen
AW: Excel - Powerpoint Grafik und Daten übergeben
06.12.2011 16:45:37
Sue
Hallo Günther
Ja, diese Alternative habe ich ebenfalls geprüft.
Bald bin ich am Ende mit meinem Tageswerk - eine Kleinigkeit ist noch offen.
Ich kann leider keine Makros in PP (versionsbedingt)aufzeichnen - wie ich bemerkt habe, verfügst Du über die Möglichkeit.
Darf ich Dich um einen Gefallen bitten?
Pro PP ergeben sich jeweils 69 Folien - diese sind aufgrund des Auslesens (mein Makro) in der Reihenfolge vertauscht.
Ist es möglich, dass Du mir ein kurzes Makro aufzeichnest, aus dem ein Tausch der Folien hervorgeht. Also z.B. exisiteren 3 Folien (diese heissen auch 1-3). Folie 3 müsste nun zuerst erscheinen, Folie 2 bleibt, Folie 1 rutscht nach Position 3?
Würdest Du dies für mich tun?
Herzlichen Dank falls ja, und sonst danke ich Dir auch für die heutige "Betreuung".
Liebe Grüsse
Sue
Anzeige
AW: Excel - Powerpoint Grafik und Daten übergeben
07.12.2011 08:15:08
guentherh
Hall Sue,
habe versucht einen Tausch aufzuzeichnen.
Das Verschieben mit der Maus wird leider nicht aufgezeichnet, einen Menübefehl habe ich nicht gefunden.
für das Slide-Objekt gibt es allerdings die Moveto-Methode.
die sollte dir helfen. Hier der Hilfe-Eintrag:
MoveTo-Methode
Verschiebt das angegebene Objekt an eine bestimmte Position innerhalb derselben Auflistung, wobei alle übrigen Elemente der Auflistung entsprechend neu durchnummeriert werden.
Ausdruck.MoveTo(toPos)
Ausdruck Erforderlich. Ein Ausdruck, der eines der Objekte zurückgibt, die in der Liste Betrifft aufgeführt sind.
toPos Erforderlicher Long-Wert. Die Indexnummer der Position, an die das Objekt verschoben werden soll.
Beispiel
In dem folgenden Beispiel wird für eine angegebene Form ein Animationseffekt an die zweite Position innerhalb der zur Form gehörigen Auflistung der Animationseffekte verschoben.
Sub MoveEffect()
Dim sldFirst as Slide
Dim shpFirst As Shape
Dim effAdd As Effect
Set sldFirst = ActivePresentation.Slides(1)
Set shpFirst = sldFirst.Shapes(1)
Set effAdd = sldFirst.TimeLine.MainSequence.AddEffect _
(Shape:=shpFirst, effectId:=msoAnimEffectBlinds)
effAdd.MoveTo toPos:=2
End Sub

In dem folgenden Beispiel wird die zweite Folie der aktiven Präsentation an die Stelle der ersten Folie verschoben.
Sub MoveSlideToNewLocation()
ActivePresentation.Slides(2).MoveTo toPos:=1
End Sub

liebe Grüße,
Günther
Anzeige
AW: Excel - Powerpoint Grafik und Daten übergeben
12.12.2011 16:45:10
Sue
Hallo Günther
Ich danke Dir herzlich für Deine Hilfe und entschuldige mich für meine späte Rückmeldung (ich war etwas abseits vom www).
Inzwischen konnte ich Dein PP-Makro erweitern und es funktioniert tadellos.
Nochmals lieben Dank - beste Grüsse
Sue

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige