Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Macro VBA Power Point - Excel

1,064 views
Skip to first unread message

LZ

unread,
Oct 18, 2007, 2:19:01 PM10/18/07
to
Hola a todos,

Hago esta consulta en este foro de Excel en la suposicion de que hay mas
experiencia en este ambito que en Power Point.

Necesito resolver el siguiente problema:

Dada una PPT basada en un template necesito generar una macro VBA en Power
Point que ejecute a su vez macros en workbooks excel para obtener un conjunto
de datos y graficos que finalmente pueblen la PPT.

Es posible generar esa macro VBA en Power Point que redireccione su
ejecucion a Excel, obtenga datos y graficos y los pegue en la presentacion
PPT ?

Soy un neofito en el tema que no paso de generacion de macros VBA a traves
de la grabadora de macros.

Anticipadamente gracias

Leonardo

Héctor Miguel

unread,
Oct 18, 2007, 9:07:45 PM10/18/07
to
hola, !

> Dada una PPT basada en un template necesito generar una macro VBA en Power Point
> que ejecute a su vez macros en workbooks excel para obtener un conjunto de datos y graficos que finalmente pueblen la PPT.
> Es posible generar esa macro VBA en Power Point que redireccione su ejecucion a Excel

> obtenga datos y graficos y los pegue en la presentacion PPT ?
> Soy un neofito en el tema que no paso de generacion de macros VBA a traves de la grabadora de macros.

puedes usar objetos de automatizacion entre aplicaciones (p.e.)
si excel ya esta abierto... -> GetObject(, "excel.application")
iniciar una nueva instancia > CreateObject("excel.application")

hecho lo anterior, ya puedes trabajar con el modelo de objetos de la aplicacion instanciada/automatizada/...
el siguiente ejemplo es una macro ejecutable desde un modulo de codigo en PPT

-> (de ser necesario) complementa con otras instrucciones dependiendo de "quien" realiza las acciones
(la obtencion del conjunto de datos y graficos que finalmente pueblen la PPT)
macros desde excel ???
macros desde powerpoint ???

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Sub Preparar_desde_Excel()
With CreateObject("Excel.Application")
.Visible = True
.Workbooks.Open "pases a ppt.xls" ' <= por aqui la ruta y el nombre del archivo .XLS '
.Run "Macro_para_PPT" ' <= pon aqui el nombre de la macro que se ejecuta desde excel '
.ActiveWorkbook.Close False
.Quit
End With
MsgBox "Terminadas las macros desde excel, y ahora que ???"
End Sub


LZ

unread,
Oct 18, 2007, 10:57:01 PM10/18/07
to
Hola Hector Miguel,

Tu ejemplo responde exactamente a mi pregunta, por lo cual ya pude comenzar
a elaborar la solucion a mi problema de generacion de una PPT a partir de un
template con datos y graficos obtenidos desde multiples workbooks.

Seguramente no soy el primero en pensar en este tipo de 'merge' de datos y
objetos de una aplicacion office en otra, en mi caso objetos Excel sobre una
presentacion Power Point, queria preguntarte si conoces algunos ejemplos de
programacion VBA que se encuentren en la web.

Gracias !

Leonardo

Héctor Miguel

unread,
Oct 18, 2007, 11:11:19 PM10/18/07
to
hola, Leonardo !

> Seguramente no soy el primero en pensar en este tipo de 'merge' de datos y objetos de una aplicacion office en otra

> ... conoces algunos ejemplos de programacion VBA que se encuentren en la web...

no se si todos sigan estando disponibles ???...
espero que algo de lo siguiente pueda resultarte de utiidad ;)
saludos,
hector.

una lista de manuales y tutoriales [ingles]
http://www.virtualhelpdeskcentral.com/sitecategory.asp?SiteID=12&NoGUI=&CategoryID=18

algunas paginas en ingles...
Charles Williams (DecisionModels): http://www.decisionmodels.com/
Tushar Mehta: http://www.tushar-mehta.com/excel/
Laurent Longre: http://xcell05.free.fr/
Rob Bovey: http://www.appspro.com/Tips/Tips_And_Tricks.htm
Stephen Bullen' Excel MVP's page: http://www.bmsltd.ie/MVP/Default.htm
Jurgen Volkerink (KeepItCool): http://members.chello.nl/keepitcool/addins.html
Matt Evans: http://www.exinfm.com/free_spreadsheets.html
Karl Peterson: http://vb.mvps.org/samples/
Bob Umlas: http://www.emailoffice.com/excel/arrays-bobumlas.html
Carlo Quintero: http://www.mztools.com/
Van Gelder: http://homepages.paradise.net.nz/~robree/excel/
MiStupid (Training Online): http://mistupid.com/tutorials/excel/
ExtremeVBTalk(newsgroup): http://www.visualbasicforum.com/

algunas paginas en castellano...
http://www.franciscopascual.com/Archivos/Excel%202002.zip
http://www.javeriana.edu.co/decisiones/modelos/ejemplos_y_ejercicios.html
http://www.javeriana.edu.co/cursad/diplomado/ejemplos_j_sarmiento.html
http://members.fortunecity.es/tonelorc/eexcel.html
http://www.aulaclic.es/excel2000/f_excel2000.htm
http://64.226.188.26/sivnetwork-www/cursos_gratis/excel/Excel.htm
http://www.territoriopc.com/excel/
http://interinfo.iespana.es/interinfo/info_general/manuales/manuales_ig.htm
http://www.fullwebs.com.uy/endondeestamos/Downloads/Tutoriales/excel.pdf
http://office.arnulfoperez.com/excel/
http://lacher.com/toc.htm
http://www.sistemaslym.net/vba/excel/excel.html
http://es.geocities.com/lacibelesdepunilla/macros.htm
http://es.geocities.com/lacibelesdepunilla/macros1.htm
http://www.macroheavy.com/excel/excel.asp
http://www.geocities.com/gorita_2000/VBA.htm
http://www.excelavanzado.com/
http://www.xtec.es/~rlloren4/KBEsp2.htm
http://www.exceluciones.com/portal/index.php?article=35


LZ

unread,
Oct 19, 2007, 5:13:08 AM10/19/07
to
Gracias!

LZ

unread,
Oct 19, 2007, 11:13:03 AM10/19/07
to
Hola Hector Miguel,

Abusando de tus conocimientos te consulto:

He implementado la solucion que me enviaste en Power Point.
En primera nstancia la macro quedo asi:

Sub Preparar_desde_Excel()
With CreateObject("Excel.Application")
.Visible = True

.Workbooks.Open "c:\temp\lz1.xls" ' <= por aqui la ruta y el nombre del
archivo .XLS '
.Run "PL01G" ' <= pon aqui el nombre de la macro que se ejecuta desde excel '


.ActiveWorkbook.Close False
.Quit
End With

End Sub

que es lo que me has enviado pero apuntando ahora a mi planilla - macro;
cambie el atributo de visibilidad a true para permitir ver lo que sucedia.

La macro PL01G es la siguiente:

Sub PL01G()
'
' PL01G Macro
' Macro recorded 10/19/2007 by LZ
'
' Keyboard Shortcut: Ctrl+Shift+B
'
Sheets("PL01").Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
End Sub

muy simple que selecciona un grafico y lo copia para que luego la
Sub_Preparar_desde_Excel() pegue su contenido en la PPT.

Tengo aqui dos dificultades:

1. Si corro PL01G en excel veo que el grafico se ha seleccionado y copiado.
Pero si lo hago desde la macro Sub_Preparar_desde_Excel() no me queda
habillitado en el menu EDIT de Poewer Point las opciones de Paste y Paste
Special con las que pensaba pegar el grafico excel. Tengo la sensacion de que
no se ejecuta:

ActiveChart.ChartArea.Copy

y

2. Para el caso de que se resuelva 1. desconozco como debo hacer en VBA para
hacer un EDIT-> Paste Special-> MS Office Excel Chart Object
con el cual pensaba pegar el chart generado en excel.

Pense que con la grabadora de macros de Power Point 2003 podria obtener las
sentencias de VBA para hacerlo, pero esta ultima accion no queda registrada.

Si puedes darme una mano, agradecidisimo

Saludos

Leonardo

"Héctor Miguel" escribió:

LZ

unread,
Oct 23, 2007, 5:55:00 PM10/23/07
to
Nuevamente aclaro que esta pregunta es sobre VBA Power Point, pero la dirijo
al foro excel en la suposicion que los masters de VBA Excel estan en
condiciones de ayudarme.

Necesito realizar una macro VBA Power Point que seleccione datos y graficos
de planillas excel para incluir dichos objketos en una PPT.

Pude implementar una solucion enviada por Hector Miguel de la que solo me
resta resolver en VBA el equivalente a la ejecucion del comando:

Edit -> Paste Special -> Paste Link -> MS Office Excel Worksheet Object

Sabe algun participante del foro excel que instrucciones debo adicionar a mi
codigo VBA ?

Gracias


"LZ" escribió:

Héctor Miguel

unread,
Oct 23, 2007, 8:01:04 PM10/23/07
to
hola, Leonardo !

> Nuevamente aclaro que esta pregunta es sobre VBA Power Point

> pero la dirijo al foro excel en la suposicion que... estan en condiciones de ayudarme.


> Necesito realizar una macro VBA Power Point que seleccione datos y graficos de planillas excel para incluir dichos objketos en una PPT.

> Pude implementar una solucion... de la que solo me resta resolver en VBA el equivalente a la ejecucion del comando:


> Edit -> Paste Special -> Paste Link -> MS Office Excel Worksheet Object
> Sabe algun participante del foro excel que instrucciones debo adicionar a mi codigo VBA ?

1) existen "ciertas" acciones que hacen un vaciado del portapapeles (guardar, pulsar {esc}, cerrar la aplicacion, etc.)
es por esto que no queda nada que pegar en el portapapeles y por consiguiente el menu en PPT no esta habilitado :-((

2) para solucionarlo, es necesario que hagas el pegado ANTES de cerrar la aplicacion excel instanciada desde PPT
(p.e.) antes de la linea con el -> ".ActiveWorkbook.Close False"
-> usa alguna de las siguientes instrucciones:

a) ActivePresentation.Slides(1).Shapes.Paste
(pega la imagen copiada como objeto "flotante" en la presentacion PPT)

b) ActivePresentation.Windows(1).View.Paste ' ppPasteEnhancedMetafile
(pega la imagen copiada +/- al centro de la ventana activa del PPT

-> hay mayores detalles en: -> http://www.pptfaq.com/
(p.e. revisa la seccion de "Working with Charts and Graphs")

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ las consultas anteriores __


>> He implementado la solucion que me enviaste en Power Point.
>> En primera nstancia la macro quedo asi:
>>
>> Sub Preparar_desde_Excel()
>> With CreateObject("Excel.Application")
>> .Visible = True
>> .Workbooks.Open "c:\temp\lz1.xls" ' <= por aqui la ruta y el nombre del archivo .XLS '
>> .Run "PL01G" ' <= pon aqui el nombre de la macro que se ejecuta desde excel '
>> .ActiveWorkbook.Close False
>> .Quit
>> End With
>> End Sub
>>

>> ... apuntando ahora a mi planilla - macro; cambie el atributo de visibilidad a true para permitir ver lo que sucedia.


>>
>> La macro PL01G es la siguiente:
>> Sub PL01G()

>> Sheets("PL01").Select
>> ActiveSheet.ChartObjects("Chart 1").Activate
>> ActiveChart.ChartArea.Select
>> ActiveChart.ChartArea.Copy
>> End Sub
>>
>> muy simple que selecciona un grafico y lo copia para que luego la Sub_Preparar_desde_Excel() pegue su contenido en la PPT.
>>
>> Tengo aqui dos dificultades:
>> 1. Si corro PL01G en excel veo que el grafico se ha seleccionado y copiado.
>> Pero si lo hago desde la macro Sub_Preparar_desde_Excel() no me queda habillitado en el menu EDIT de Poewer Point
> las opciones de Paste y Paste Special con las que pensaba pegar el grafico excel. Tengo la sensacion de que no se ejecuta:
>> ActiveChart.ChartArea.Copy

>> 2. Para el caso de que se resuelva 1. desconozco como debo hacer en VBA para hacer un
> EDIT-> Paste Special-> MS Office Excel Chart Object con el cual pensaba pegar el chart generado en excel.
>>
>> Pense que con la grabadora de macros de Power Point 2003 podria obtener las sentencias de VBA para hacerlo

>> pero esta ultima accion no queda registrada.
>> >

LZ

unread,
Oct 24, 2007, 9:56:01 PM10/24/07
to
Héctor Miguel,

lo que me has indicado funciono correctamente.

Nuevamente gracias

Leonardo

Sergio Rosales

unread,
Aug 16, 2016, 8:39:05 PM8/16/16
to
hola Héctor Miguel

sera que me puedes ayudan tengo un problema estoy construyendo una macro en powerpoint y quiero hacer referencia a un libro excel abierto la idea es almacenar algunos datos de dicho libro ya e echo una macro que hace lo mismo solo que mando a abrir un libro de una ruta pero ahora quiero manipular el que ya tengo abierto
0 new messages