Hace un mes aproximadamente subí un post de cómo llevar un rango de celdas de Excel a un documento de Word; en esta ocasión realizaré la misma operación, pero llevaremos nuestro rango de celdas desde Excel hasta un PowerPoint, guardando además el vínculo con los valores (esto es, cualquier modificación en Excel se reflejará en la diapositiva de nuestra presentación en PowerPoint).
En primer lugar deberemos seleccionar una biblioteca de objetos adecuado para nuestro proposito. Después de establecer una referencia a una biblioteca de objetos activando la casilla de verificación situada junto a su nombre, podremos buscar un objeto específico y sus métodos y propiedades en el Examinador de objetos.
Para activar esta referencia deberemos ejecutar el editor de VBA, presionando Alt+F11, y navegando por el menú Herramientas > Referencias seleccionaremos aquellas referencias que sean de utilidad, en nuestro caso Microsoft PowerPoint 11.0 Object Library:
Nuestro código VBA a incluir en un módulo del Explorador del proyecto dentro del Editor de VBA es:
Al ejecutar la macro podemos observar como se abre la aplicación PowerPoint, genera una nueva Presentación y añade una diapositiva en blanco ('ppLayoutBlank'); a continuación pega, a modo de vínculo, con todos los formatos de nuestro rango de celdas en Excel en dicha diapositiva:
En primer lugar deberemos seleccionar una biblioteca de objetos adecuado para nuestro proposito. Después de establecer una referencia a una biblioteca de objetos activando la casilla de verificación situada junto a su nombre, podremos buscar un objeto específico y sus métodos y propiedades en el Examinador de objetos.
Para activar esta referencia deberemos ejecutar el editor de VBA, presionando Alt+F11, y navegando por el menú Herramientas > Referencias seleccionaremos aquellas referencias que sean de utilidad, en nuestro caso Microsoft PowerPoint 11.0 Object Library:
Nuestro código VBA a incluir en un módulo del Explorador del proyecto dentro del Editor de VBA es:
Sub Tabla_de_Excel_a_Ppoint() 'La macro copia el rango de Excel seleccionado en PowerPoint 'copiar rango selecionado Selection.Copy 'objeto para acceder al PowerPoint Dim ObjPowerPoint As New PowerPoint.Application 'objeto para crear la presentación Dim Presentacion As PowerPoint.Presentation 'objeto diapositiva Dim diapositiva As PowerPoint.slide ObjPowerPoint.Visible = True Set Presentacion = ObjPowerPoint.Presentations.Add Set diapositiva = Presentacion.Slides.Add(1, ppLayoutBlank) 'Pegado de las celdas Excel como vínculo diapositiva.Shapes.PasteSpecial(link:=True).Select 'Libera los objetos PowerPoint Set ObjPowerPoint = Nothing Set Presentacion = Nothing Set diapositiva = Nothing End Sub
Al ejecutar la macro podemos observar como se abre la aplicación PowerPoint, genera una nueva Presentación y añade una diapositiva en blanco ('ppLayoutBlank'); a continuación pega, a modo de vínculo, con todos los formatos de nuestro rango de celdas en Excel en dicha diapositiva:
Hola muchas gracias por tu ayuda una pregunta y si quiero pegar otra tabla del mismo archivo de excel pero en otra diapositiva como le hago para dentro del codigo cambiar de diapositiva
ResponderEliminara se me olvidaba tambien si quiero cambiar el tamaño de la imagen copiada en power point por medio del codigo como le hago
ResponderEliminarGracias
Hola...
ResponderEliminarrespecto de la primera cuestión de cómo pegar una segunda tabla en otra diapositiva, deberías añadir a partir de la línea 20:
Application.CutCopyMode = False
Range("A9:C12").Copy
Set diapositiva2 = Presentacion.Slides.Add(2, ppLayoutBlank)
diapositiva2.Select
diapositiva2.Shapes.PasteSpecial(link:=True).Select
Para cambiar el tamaño de la imagen copiada en powerpoint se debería proceder de una manera distinta, cambiando el tamaño en Excel antes de pegarlo en Powerpoint con las instrucciones:
Selection.ShapeRange.ScaleWidth 1.99, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 1.99, msoFalse, msoScaleFromTopLeft
La otra forma sería con una macro en Powerpoint... cosa que se me escapa.
Espero te oriente.
Un saludo
Buenas, muy buena la informacion, tengo un problema, yo ya tengo una presentacion creada en powerpoint y quiero que la seleccion de celdas valla justamente a esa diapositiva, hay manera de hacerlo?
ResponderEliminarHola Facundo,
ResponderEliminarsi, en principio es posible, sin hacer ninguna prueba, el asunto pasaría por reemplazar la parte de la macro
Set Presentacion = ObjPowerPoint.Presentations.Add
Set diapositiva = Presentacion.Slides.Add(1, ppLayoutBlank
por otro codígo del mismo tipo donde le indiquemos que abrimos tu Presentación (como se llame) y la diapositiva concreta...
Espero haberte orientado.
Un cordial saludo
cual seria ese codigo para poder seleccionar la diapositiva que quiero utilizar
ResponderEliminarHola GRS,
ResponderEliminaren principio, habría que reemplazar
Set Presentacion = ObjPowerPoint.Presentations.Add
Set diapositiva = Presentacion.Slides.Add(1, ppLayoutBlank)
por
Presentacion Filename:="tu ruta del Powerpoint\power.ppt"
diapositiva = Presentacion.Slides.Open(1)
El '1 sería el número de diapositiva dentro de tu presentación.
Debería funcionar...
Slds
no me resulta si lo hago de esa forma....de que otra manera se puede pegar una tabla de excel en un powerpoint ya existente?
ResponderEliminarHola GRS,
ResponderEliminarsiempre puedes replicar los movimientos con el asistente de grabación de macros, si es que realmente necesitas realizar esa operación muchas veces...
Si sólo quieres copiarlo una vez, selecciona el rango en Excel y te vas a tu PowerPoint abierto, y lo pegas en la Diapositiva que quieras... y listo.
Lo bueno de trabajar entre herramientas de MS-Office es que permite su interrelación.
De todas formas revisaré el código.
Slds
Muchas gracias, pero parece que no me entendiste, el problema es que yo ya tengo una presentacion creada en powerpoint y quiero que la seleccion de celdas valla justamente a esa(s) diapositiva(s), hay otra manera de hacerlo?, ya que la que pusiste un poco mas arriba no resulta...gracias de antemano
ResponderEliminarHola de nuevo...
ResponderEliminarintentaré encontrar una respuesta a tu cuestión.
Slds
Alguna novedad amigo ExcelForo con respecto al pedido anterior?
ResponderEliminarBueno...
ResponderEliminarpodrías probar con (y no olvides activa la referencia de MS-powerpoint)
Sub AbrirPowerPoint()
Dim PPT As PowerPoint.Application
Dim diapositiva As PowerPoint.Slide
'copiar rango selecionado
Selection.Copy
Set PPT = New PowerPoint.Application
PPT.Visible = True
PPT.Presentations.Open Filename:="ruta\abrirPower.pptx"
'elegimos la diapositiva 2 de la presentación
Set diapositiva = PPT.ActivePresentation.Slides(2)
diapositiva.Select
'Pegado de las celdas Excel como vínculo
diapositiva.Shapes.PasteSpecial(link:=True).Select
Set PPT = Nothing
Set diapositiva = Nothing
End Sub
Creo que te funcionará como esperas.
Un saludo
bueno antes que nada, muchas gracias por info.
ResponderEliminary si quisiera pegar mi seleccion como TABLA en el powerpoint ? o sea como cuando uno hace control+c y control+v, como seria??
se que tengo que modificar esta linea, pero no se que poner..
"diapositiva.Shapes.PasteSpecial(link:=True).Select "
muchas gracias!
Hola Gerfranc,
Eliminarla verdad es que desconozco el código que buscas, según el procedimiento descrito, sólo admite pegar 'formas', por lo que es complicado pegar una 'tabla'...
Investigaré un poco por la web, por si encuentro algo.
Siento no haber podido ayudarte.
Slds
Muchas gracias por la pronta respuesta!, tengo miedo de haberme expresado mal y haber confundido con mi pregunta,
Eliminarlo que ando buscando es copiar y pegar un rango de excel al powerpoint, como cuando haces copy/ paste de forma manual..
si era lo me habian entendido, disculpas!, seguire intentando mientras tanto
Saludos y muchas gracias nuevamente
Que tal Gerfranc,
Eliminarentendí lo que preguntabas, pero mis conocimientos de VBA y macros son los justos, de todas formas he estado buscando y no termino de encontrar una respuesta... seguiré intentándolo.
Un cordial saludo
Hola, antes que nada muchas gracias de verdad que me ha servido un montón tus respuestas. Pero tengo un problema, tengo un excel con varias hojas, las cuales deben de pegarse en varias diapositivas en el powerpoint. Mi problema es que cuando se llega a pegar la primera tabla ya no pega la 2da, el problema es que la ventana de powerpoint se queda activa. Debería de minimizarse y activarse el excel para pegar la siguiente tabla. En conclusión necesito que el excel vuelva hacer la ventana activa para poder realizar la copia de la siguiente tabla.
ResponderEliminarEspero poder haber sido lo suficiente clara. Gracias de antemano!
Hola,
Eliminarel asunto puede ser complejo, pero básicamente deberías generar un bucle, por ejemplo FOR EACH tablas IN Libro, y dentro de ese bucle ir copiando y generando las nuevas diapositiva.
Algo así como reviso tabla por tabla y voy creando la diapositiva y pegando la tabla... parecido a
For Each tabla In librotrabajo
tabla.Copy
Dim diapositiva2 As PowerPoint.Slide
Dim x As Integer
x = Presentacion.Slides.Count
Set diapositiva2 = Presentacion.Slides.Add(Index:=x, Layout:=ppLayoutText)
ObjPowerPoint.ActivePresentation.Slides(x).Select
diapositiva2.Shapes.PasteSpecial(link:=True).Select
Next tabla
Todo con el código previo de identificaciones de PPoint, presentaciones y diapositivas.
Espero veas la idea.
Slds
HOLA AMIGO TENGO QUE DAR UNA PRESENTACION DE EXCEL EN POWERPOINT Y NECESITO COPIAR TODA LA PAGINA DE EXCEL A POWER POINT..
ResponderEliminarPOR CASUALIDAD NO SABRAN COMO HACERLE?
GRACIAS!!!!1
Hola uan,
Eliminarel código sería el mismo que el de este post, en lugar de
selection.copy
pondrías
cells.copy
lo que te copiaría toda la hoja (incluido celdas en blanco)... pero creo que lo mejor es que emplees
UsedRange.copy
para seleccionar sólo el rango usado.
Slds
hola amigo excelforo tengo una consulta si quiero Pegar del Excel al powerpoint sin vínculo como si fuese un grafico mejorado como deberia hacerlo ya q si le quito el link o le pongo false sale un error
ResponderEliminarHola,
Eliminarte recomiendo hagas un intento empleando el Asistente de grabación de macros, y veas como actua cuando copias y pegas algo com 'gráfico mejorado', en la misma hoja de Excel.
Cuando tengass clara la instrucción, simplemente prueba reemplazando esa parte en el código descrito en el post.
Creo que sería algo así:
diapositiva.Shapes.PasteSpecial Format:="Imagen (metarchivo mejorado)", Link:= False, DisplayAsIcon:=False
Slds
Gracias ExcelForo por tu tiempo una consulta en el post hay una rutina que funciona muy bien selecciona varias celda y lo pega al powerpoint como vinculo lo que quisiera es que pegue al powerpoint pero sin link como una imagen se puede hacer eso?
ResponderEliminarHola,
Eliminaren principio debería funcionar reemplazando el código de copiado por
diapositiva.Shapes.PasteSpecial Format:="Imagen (metarchivo mejorado)", Link:= False, DisplayAsIcon:=False
Slds
amigo ami no me sale lo primero soy nuevo en esto de macros medice ke ay erro y me señala la linea
ResponderEliminardiapositiva.Shapes.PasteSpecial(link:=True).Select
me manda sea producido el error '-2147417851 (80010105)en tiempo de ejecucion y error en el metodo 'pasetespecial'de objeto 'shapes
Hola,
Eliminarsupondré que has marcado las referencias de Librerías de objetos oportunas.
Luego habría que saber con qué versión de Excel trabajas, ya que estos códigos (donde te falla) son muy problemáticos con versiones anteriores...
Slds
trabajo con office 2007 y si habilite las opciones ke indicaste ke devo acer para ke el codigo trabaje
Eliminary gracias eee por tenderme jejee
Eliminargracias ya cambie la vercion tenias razon gracias
EliminarMe alegro finalmente dieras con el fallo.
EliminarUn cordial saludo
Hola ExcelForo gracias para solucuionar el problema la celda lo converti en grafico dentro del excel y luego lo exporte al Ppt el problema es que manejo al rededor de 200 a 300 hojas de excel y cuando corro el proceso se queda en la hoja 30 o 40 luego tengo que volver a correr la macro para las siguientes 30 o 40 hojas ya que sale este error se ha producido el error '-2147417581(80010105)' en tiempo de ejecución me parece que es un tema de memoria o de ampliar los buffer me podrias ayudar
ResponderEliminarGracias
Hola,
Eliminarsi te funciona correctamente hasta la 30 ó 40, claramente el código es correcta, por lo que aunque no sé que tipo de error es ese (habría que ir a la ayuda de Microsoft para conocer el detalle de éste), si parece que podría ser un tema de memoría.
Lamentablemente desconozco sobre el tema.
Lo siento.
Un saludo y mucha suerte!!
didiculpa tengo una pregunta ya le ke tengo todo lo de copiado y pegado em powerpoint como puedo hacer ke me borre las tablas ke estan en las hojas de power para ke se peguen sin ningun preoblema nuevas tablas modificadas por ke el codigo solo es para pegarlas pero no te permite borrar para sustituirlas por las nuevas no se si me explico.
ResponderEliminargracias de antemano y en ke parte deve de ir te pongo mi codigo para ke me entiendas mejor
Sub AbrirPowerPoint()
Dim PPT As PowerPoint.Application
Dim diapositiva As PowerPoint.Slide
'copiar rango selecionado
Range("B5:C17").Copy
Set PPT = New PowerPoint.Application
PPT.Visible = True
PPT.Presentations.Open Filename:="d:\Users\205491\Desktop\Nueva carpeta (2)\MACRO.pptx"
'elegimos la diapositiva 2 de la presentación
Set diapositiva = PPT.ActivePresentation.Slides(1)
diapositiva.Select
'Pegado de las celdas Excel como vínculo
diapositiva.Shapes.PasteSpecial(link:=True).Select
Range("B5:D17").Copy
Set diapositiva = PPT.ActivePresentation.Slides(2)
diapositiva.Select
diapositiva.Shapes.PasteSpecial(link:=True).Select
Range("B5:E17").Copy
Set diapositiva = PPT.ActivePresentation.Slides(3)
diapositiva.Select
diapositiva.Shapes.PasteSpecial(link:=True).Select
Range("B5:F17").Copy
Set diapositiva = PPT.ActivePresentation.Slides(4)
diapositiva.Select
diapositiva.Shapes.PasteSpecial(link:=True).Select
Range("C5:F17").Copy
Set diapositiva = PPT.ActivePresentation.Slides(5)
diapositiva.Select
diapositiva.Shapes.PasteSpecial(link:=True).Select
Range("D5:F17").Copy
Set diapositiva = PPT.ActivePresentation.Slides(6)
diapositiva.Select
diapositiva.Shapes.PasteSpecial(link:=True).Select
Range("E5:F17").Copy
Set diapositiva = PPT.ActivePresentation.Slides(7)
diapositiva.Select
diapositiva.Shapes.PasteSpecial(link:=True).Select
Range("F5:F17").Copy
Set diapositiva = PPT.ActivePresentation.Slides(8)
diapositiva.Select
diapositiva.Shapes.PasteSpecial(link:=True).Select
Set PPT = Nothing
Set diapositiva = Nothing
End Sub
Hola,
Eliminaryo probaría seleccionando primero la imagen de la diapositiva que quieras borrar en PoerPoint, y luego borraría.
Probablemente algo así:
'Para seleccionar la imagen; 'NombreImagen' puede ser una variable
ActiveWindow.Selection.SlideRange.Shapes('NombreImagen').Select
'Borramos la imagen seleccionada
ActiveWindow.Selection.ShapeRange.Delete
Prueba y me comentas...
Slds
NO TE ENTENDI MIRA LO KE KIERO KE ME AYUDES EN LA MISMA MACRO KE TE POSE ME PUEDA BORRAR LAS TABLAS KE EXIXTEN EN POWER Y ME PEGUE LAS KE TENGO EN EXCEL MELAS PEGUE EN POWER ESO ES LO KE KIERO KE ME AGA LA MACRO ME PUEDES AYUDAR GRACIAS DE ANTEMANO Y DISCULPA LAS MOLESTIAS
EliminarCorrecto,
Eliminareso es lo que hacen esas líneas que te indiqué...
Por favor, intenta no escribir en mayúsculas y evita los errores ortográficos... no es fácil leer comentarios así.
Un cordial saludo
ok entendido lo checo y te informo como me fue saludos
EliminarDisculpa amigo kiero hacer lo mismo pero con graficas como le puedo hacer o como seria me podrias ayudar por favor
ResponderEliminarde ante mano gracias saludos
Hola,
Eliminaren principio sería el mismo código, sólo tendrías que seleccionar el gráfico... como ves al principio de la macro se hace un selection.copy.
O bien seleccionas el gráfico, o bien indicas con código qué gráfico estás seleccionando.
Slds
ok esta bien pero como lo ago sin ke yo lo seleccione sino ke lo seleccione la misma macro
ResponderEliminarHola de nuevo,
Eliminarsuponiendo sepas cómo se llama el gráfico (por ejemplo "1 Gráfico") la línea para copiar ese gráfico sería:
ActiveSheet.ChartObjects("1 Gráfico").Copy
que reemplazaría a la de
Selection.copy
que comentaba
Slds
ok gracias boy a checarlo y te aviso sale
Eliminargracias me sirvio mucho tu ayuda amigo
EliminarMuchas gracias me fue muy util tu informacion!
ResponderEliminarBuenas tardes,
ResponderEliminarNecesitaría a parte de pegar las excel en una PPT elegir una coordenada concreta en la que pegar el excel y también darle un tamaño definido antes de pegarla. He probado:
Selection.ShapeRange.ScaleWidth 3.00, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 3.00, msoFalse, msoScaleFromTopLeft
Y no me funciona. Utilizo excel 2010.
Un saludo,
Hola,
Eliminarbueno, hasta donde yo sé en Excel 2010 esos métodos SclaeWidth y ScaleHeight siguen estándo operativos, y te deberían funcionar...
Para situar un Shape usa las propiedades Top y Left con un valor en puntos que lo situa respecto a la izquierda y la parte de arriba, con tantos puntos de distancia como indiques.
Otra cuestión bien diferente es que estos métodos y propiedades actúan sólo sobre la hoja de cálculo, y creo que tu quieres cambiar el tamaño y posición en una diapositiva de PowerPoint.
Slds
es posible indicar la posicion del grafico, imagen. dentro del slide?
ResponderEliminarHola,
Eliminarte remito al comentario anterior. Pero no creo sea posible.
Hasta donde yo sé en Excel 2010 los métodos ScaleWidth y ScaleHeight te deberían funcionar...
Selection.ShapeRange.ScaleWidth 3.00, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 3.00, msoFalse, msoScaleFromTopLeft
Para situar un Shape usa las propiedades Top y Left con un valor en puntos que lo situa respecto a la izquierda y la parte de arriba, con tantos puntos de distancia como indiques.
Otra cuestión bien diferente es que estos métodos y propiedades actúan sólo sobre la hoja de cálculo, y creo que tu quieres cambiar el tamaño y posición en una diapositiva de PowerPoint.
Slds
HELP urgente. Necesito pegar lo que estoy seleccionando de una tabla a través de una macro a una PPT EXISTENTE, pero no me funciona, por favor, que alguien me ayude donde debo ingresar esa sentencia para que pegue la tabla en la ppt existente, adjunto lo que tengo de código:
ResponderEliminarSub Excelpreuba()
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Set PPApp = CreateObject("Powerpoint.Application")
PPApp.Visible = True
Set PPPres = PPApp.Presentations.Add
'--------------------------------------------------
'empezamos desde hoja1 hasta el fin de las hojas.
Sheets("Acts F&F").Select
For i = 1 To ActiveWorkbook.Sheets.Count
' Crea la desde vista dispositiva
PPApp.ActiveWindow.ViewType = ppViewSlide
' se agrega una dispos a la presentation
Set PPSlide = PPPres.Slides.Add(1, 11)
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
'ActiveSheet.ChartObjects(1).CopyPicture
PPSlide.Shapes.Paste.Select
' se acomoda el gráfico pegado
PPApp.ActiveWindow.Selection.ShapeRange.Left = 15
PPApp.ActiveWindow.Selection.ShapeRange.Top = 95
PPApp.ActiveWindow.Selection.ShapeRange.Height = 230
On Error Resume Next
ActiveSheet.Next.Select
Next i
'se guarda el ppt con nombre de libro excel
PPApp.ActivePresentation.SaveAs ThisWorkbook.Path & "\" & ActiveWorkbook.Name & ".ppt"
'se cierra el ppt
'PPApp.Quit
Set PPPres = Nothing
Set PPSlide = Nothing
Set PPApp = Nothing
End Sub
Hola Lola1,
Eliminarno sé a qué sentencia te refieres...???
No he probado el código que aportas, pero parece que recorre las hojas de un libro de Excel y va pegando por hoja en una presentación de PPoint, en diferentes Slides, para acabar cerrando y guardando la presentación con el mismo nombre que el archivo de Excel.
Si eres más concreta con el problema...
;-)
Slds
Hola!
ResponderEliminarNecesito que me ayudes... sabes he seguido tus instrucciones al pie de la letra y lo que me pasa al copiar esta macro es que me abre un Powerpoint pero en blanco ¿Qué puedo hacer?. Lo que necesito en concreto es que a partir de mi hoja de Excel asigne una macro a un botón para que este botón me mande el gráfico que tengo, en esa hoja, a un Powerpoint. Espero me puedas ayudar, muchas gracias!
Hola Sabastian,
Eliminarson dos cosas distintas las que preguntas.
Una es que sólo te abre una diapositiva de PPoint en blanco, si esto te ocurre es por que no has seleccionado nada, esta macro lleva el rango seleccionado en Excel a una diapositiva. Por tanto selecciona ese gráfico del que hablas, o bien, si sabes su nombre, cambia la primera línea de la macro por la selección del gráfico (con su nombre).
Lo segundo es asociar la macro a un botón, para esto te remito a esta entrada del blog:
http://excelforo.blogspot.com.es/2009/09/boton-con-macro-en-excel-2007.html
Slds
Hola!
ResponderEliminarGracias por tu pronta respuesta. Te quiero comentar que lo de asignar un botón a una macro me resultó súper bien, lo que no he podido hacer es que me pase el gráfico de Excel a Power Point entonces cómo selecciono el rango de Excel para que pase a Power Point? En que línea exacta, de la macro que propusiste en esta entrada, va? y de qué manera, con alguna formula? Necesito en detalle estas intrucciones ya que es primera vez que programo en VBA por lo cuál no sé demasiado.
De antemano muchas gracias
Hola Sebastian,
Eliminarcambia del código de esta entrada la línea que pone
Selection.Copy
por
ActiveSheet.ChartObjects("1 Gráfico").ChartArea.Copy
sólo verifica cómo se llama el gráfico exactamente, o bien, si sólo tienes un gráfico en la hoja activa:
ActiveSheet.ChartObjects(1).ChartArea.Copy
el resto del código debería ser igual.
Slds
Gracias por resolver mis dudas pero lamentablemente no me resulta, quizás no he sido claro en explicar lo que quiero. De todas maneras te agradezco tu tiempo.
ResponderEliminarSaludos
Hola Sebastian,
Eliminarlo que he entendido leyendo tus explicaciones es que quieres copiar un gráfico a una diapositiva de un PowerPoint...
¿con las indicaciones que he dado te falla?¿qué error te devuelve?
Slds
Lo que me pasa es lo siguiente:
ResponderEliminarPrimero copio la Macro que está acá publicada, es decir
Sub Tabla_de_Excel_a_Ppoint()
'La macro copia el rango de Excel seleccionado en PowerPoint
'copiar rango selecionado
Selection.Copy
'objeto para acceder al PowerPoint
Dim ObjPowerPoint As New PowerPoint.Application
'objeto para crear la presentación
Dim Presentacion As PowerPoint.Presentation
'objeto diapositiva
Dim diapositiva As PowerPoint.Slide
ObjPowerPoint.Visible = True
Set Presentacion = ObjPowerPoint.Presentations.Add
Set diapositiva = Presentacion.Slides.Add(1, ppLayoutBlank)
'Pegado de las celdas Excel como vínculo
diapositiva.Shapes.PasteSpecial(link:=True).Select
'Libera los objetos PowerPoint
Set ObjPowerPoint = Nothing
Set Presentacion = Nothing
Set diapositiva = Nothing
End Sub
Al copiar esta Macro lo que pasa es que me abre un Ppoint en blanco, por lo cuál te hice la consulta de cómo arreglar esto. Me dijiste que cambiara la línea Selection.Copy, que es la línea 5 de esta Macro, por la línea ActiveSheet.ChartObjects("1 Gráfico").ChartArea.Copy o por ActiveSheet.ChartObjects(1).ChartArea.Copy
Al realizar este cambio me tira el siguiente error: "Se ha producido el error '438' en tiempo de ejecución: El objeto no admite esta propiedad o método"
Eso es lo que sucede estimado, por ende no he podido realizar lo que necesito. Gracias una vez más
Saludos
Mejor envíame el fichero con la macro a
Eliminarexcelforo@gmail.com
Gracias!!
Perfecto!! ya lo envié
ResponderEliminarGracias :)
Hola, me parece interesante esta macro pero tengo una duda y es que cuando la ejecuto me sale el error:
ResponderEliminardiapositiva.Shapes.PasteSpecial(link:=True).Select
me manda sea producido el error '-2147417851 (80010105)en tiempo de ejecucion y error en el metodo 'pasetespecial'de objeto 'shapes
yo hago referencia a
Microsoft PowerPoint 12.0 Object Library:
y me preguntaba si el codigo seria diferente por el objeto ya que es una nueva version.
Gracias
Hola Destino7,
Eliminarpodría ser efectivamente lo que comentas.
Si trabajas con una versión superior, igualmente puedes activar la librería 11.0.
Las relaciones entre diferentes aplicaciones de Office son siempre muy delicadas.
Slds
Hola buen dia podrian ayudarme con un problema que traigo lo que intento es crear una macro que hipervincule el mismo nombre de una prueba que se encuentran en diferentes hojas, idea es que yo pueda darle clic al nombre y me mande al mismo nombre de la otra hoja y viceversa, intento grabar la maco copiando la celda y luego busco el nombre y despues le doy en pegado especial como hipervinculo, pero a la hora de revisar en visual basic se graba todo excepto el pegar como hipervinculo
ResponderEliminarHoal Cesar,
Eliminarno me queda claro a qué te refieres con 'Nombre'(creo que no es un Nombre definido si no otra cosa.. quizá un valor de una celda o similar).
En todo caso te copio algunos link donde se explican con macros y sin ellas cómo trabajar con hipervínculos.
http://excelforo.blogspot.com.es/2011/06/como-desplazarse-por-las-hojas-de-un.html
http://excelforo.blogspot.com.es/2012/08/vba-un-hipervinculo-con-macros-de-excel.html
http://excelforo.blogspot.com.es/2013/03/mas-de-la-funcion-hipervinculo-de-excel.html
http://excelforo.blogspot.com.es/2011/06/hipervinculo-asociado-un-desplegable-de.html
Espero alguna de las explicaciones se adapte a tu pregunta.
Slds cordiales
Hola buenos días, ¿podrían ayudarme? tengo una presentación ya armada y el archivo de excel que me muestra toda la información, el problema esta en que necesito ligar una etiqueta (rectangulo) de powerpoint con una celda en excel, para que me muestre el valor de la celda en excel y se quede con el mismo formato de powerpoint ¿Esto es posible? Muchas gracias,
ResponderEliminarHola Luís Alfonso,
Eliminarlo más pareceido que se me ocurre es que podrías copiar como imagen una celda/objeto, y pegar 'especial' como vínculo en PowerPoint...
Espero te sirva la idea... es la misma que la expuesta en esta entrada.
Slds
hola
ResponderEliminarHola Ismael, No se si me puedes ayudar, y creo que tampoco va muy relacionado con el tema aqui expuesto. Estoy tratando de crear un macro para hacer la presentacion en PPT, pero quiero que solo pegue los graficos de una sola hoja de excel y que no me recorra todas las hojas. Te coloco a continuacion la macro, para que la observes.
ResponderEliminarSub CreatePowerPoint()
'Variable Definitions
Dim filePPT As PowerPoint.Application
Dim slide As PowerPoint.slide
Dim worksheetXLS As Excel.Worksheet
Dim graphic As Excel.ChartObject
'Run PowerPoint.Application
Set filePPT = New PowerPoint.Application
'Create a PowerPoint Presetation
filePPT.Presentations.Add
'Lookup all Graphics in MnthRep
worksheetXLS = Worksheets("MnthRep")
For Each graphic In worksheetXLS.ChartObjects
'Add new slide
filePPT.ActivePresentation.Slides.Add _
filePPT.ActivePresentation.Slides.Count + 1, ppLayoutBlank
filePPT.ActiveWindow.View.GotoSlide _
filePPT.ActivePresentation.Slides.Count
Set slide = filePPT.ActivePresentation.Slides( _
filePPT.ActivePresentation.Slides.Count)
'Copy Graphic in Slide
worksheetXLS.ChartObjects(graphic.Index).Chart.CopyPicture
slide.Shapes.Paste.Select
'Reduce Graphic Size and Centre in the Slide
filePPT.ActiveWindow.Selection.ShapeRange.ScaleHeight 0.5, msoScaleFromMiddle
filePPT.ActiveWindow.Selection.ShapeRange.ScaleWidth 0.5, msoScaleFromMiddle
Next
'Delete all created instances
Set slide = Nothing
Set filePPT = Nothing
Set graphic = Nothing
Set worksheetXLS = Nothing
End Sub
Mut agradecido de antemano por tu ayuda.
Hola,
Eliminareste código te copia los gráficos de la Hoja1 en una Nueva presentación, cada gráfico en una Diapositiva... El único problema es situar lo copiado centrado.
Sub Grafico_de_Excel_a_Ppoint()
Dim graphic As Excel.ChartObject
Dim ObjPowerPoint As New PowerPoint.Application
Dim Presentacion As PowerPoint.Presentation
Dim diapositiva As PowerPoint.slide
ObjPowerPoint.Visible = True
Set Presentacion = ObjPowerPoint.Presentations.Add
For Each graphic In Worksheets("Hoja1").ChartObjects
Set diapositiva = Presentacion.Slides.Add(1, ppLayoutBlank)
Worksheets("Hoja1").ChartObjects(graphic.Index).Chart.CopyPicture
diapositiva.Shapes.Paste
Next
Set ObjPowerPoint = Nothing
Set Presentacion = Nothing
Set diapositiva = Nothing
End Sub
Espero te oriente en tu problema.
Suerte
Slds
Ismael, de verad muy agardecido por tu ayuda. Un millon de gracias, de verdad.
EliminarSaludos,
Carlos
Ismael, otra pregunta, y disculpa la molestia.
EliminarCon la macro que me diste, como puedo hacer para pegar dos graficos en una misma hoja?
Hola Carlos!
Eliminarpuedes aplicar lo que respondí justo en el comentario siguiente...
y para aplicarlo en una Slide en particular indícalo con el número indice que corresponda, por ejemplo a la Slide 3
'Abrimos la Presentación
Set PPpres = PP.Presentations.Open("E:\NombreProyecto.pptx")
'indcamos qué copiar
Sheets("Hoja2").Range("A1:C10").Copy
'y lo pegamos en la diapositiva número 3
PPpres.Slides(3).Shapes.Paste
Con el recorrido de Gráficos por hoja lo podrás copiar en la Slide que quieras...
Un saludo
Hola Ismael,
EliminarDejame ver si entendi!
Esta parte de la mcro quedaria igual?
Dim Graphic As Excel.ChartObject
Dim ObjPowerPoint As New PowerPoint.Application
Dim Presentation As PowerPoint.Presentation
Dim Slide As PowerPoint.Slide
En esta parte de la macro:
ObjPowerPoint.Visible = True
Set Presentation = ObjPowerPoint.Presentations.Add
For Each Graphic In Worksheets("MnthRep").ChartObjects
Set Slide = Presentation.Slides.Add(1, ppLayoutBlank)
Cambiaria: Set presentation por SetPPpres =PP.Presentations.Open(Ruta)
Tambien cambiaria: Set Slide = Presentation.Slides.Add(1, ppLayoutBlak) por Sheets("Hoja2").Range("A1:C10").Copy. O en mi caso por el grafico(s)que quiero pegar!
Es correcto? O estoy equivocado?
Esto creo que sigue igual
Worksheets("MnthRep").ChartObjects(Graphic.Index).Chart.CopyPicture
Slide.Shapes.Paste
Next
Set ObjPowerPoint = Nothing
Set Presentation = Nothing
Set Slide = Nothing
End Sub
Muy Agradecido por tu ayuda.
Carlos
Hola,
Eliminarquedaría así
Sub test_pegado_Graficos()
Dim graphic As Excel.ChartObject
Dim PP As PowerPoint.Application
Dim PPpres As PowerPoint.Presentation
'objeto para acceder al PowerPoint y hacerlo visible
Set PP = New PowerPoint.Application
PP.Visible = msoCTrue
'Abrimos la presentación en quequeremos copiar los gráficos
Set PPpres = PP.Presentations.Open("E:\Excelforo\Borrar.pptx")
For Each graphic In Sheets("Hoja1").ChartObjects
'indicamos dónde está el gráfico a copiar
Set Sh = Worksheets("Hoja1").ChartObjects(graphic.Index).Chart
'lo copiamos
Sh.CopyPicture
'y pegamos en la diapositiva deseada , en este caso la 1ª
PPpres.Slides(1).Shapes.Paste
Next graphic
Set Sh = Nothing
Set PP = Nothing
Set PPpres = Nothing
End Sub
Slds
Buenas tardes,
ResponderEliminarAnte todo muchas gracias por vuestra ayuda.
Mi cuestión es como hacer una macro que me pegue en un power point diferentes tablas y graficos que están en diferentes hojas del Excel, y mas o menos se hacerlo pero me atasco cuando quiero decir a la macro que me seleccione "tal rango" de "tal hoja" en la diapositva numero 3 por ejemplo.
Muchas gracias,
Saludos,
Hola, gracias por tus palabras.
Eliminarme alegra mi aportación te hay resultado alguna vez de ayuda.
Respecto a tu cuestión para seleccionar un rango concreto de una hoja sólo aplica algo del estilo
Sheets("Hoja2").Range("A1:C10").Copy
y para aplicarlo en una Slide en particular indícalo con el número indice que corresponda, por ejemplo a la Slide 3
'Abrimos la Presentación
Set PPpres = PP.Presentations.Open("E:\NombreProyecto.pptx")
'indcamos qué copiar
Sheets("Hoja2").Range("A1:C10").Copy
'y lo pegamos en la diapositiva número 3
PPpres.Slides(3).Shapes.Paste
Esa es un poco la idea, es algo diferente al modelo que he explicado en esta entrada.
Espero te oriente
Slds
Ismael, muchas gracias de nuevo. Tienes algun correo electronico al que me pueda comunicar contigo?
ResponderEliminarHola,
Eliminarmi correo es
excelforo@gmail.com
Slds
Hola, estoy usando tu macro para copiar un rango de excel y pegarlo en power point 2010. En mi PC sólo tengo las librerías 12 y 14. Sabes cómo puedo solucionar mi problema? Porque a mí al igual que a Destino 7 me sale el error error '-2147417851 (80010105)en tiempo de ejecucion y error en el metodo 'pasetespecial'de objeto 'shapes.
ResponderEliminarGracias!
Hola Laura,
Eliminarbueno, como le dije a Destino7 es cuestión de versiones...
Intentaré buscar el código para Office 2010 y subirlo.
Saludos cordiales
Hola Ismael, me ayudarías un montón. Gracias!!!
EliminarBuenas tardes... muchas gracias por compartir su conocimiento... mi pregunta es:
ResponderEliminares posible ejecutar una macro que se encuentra guardada en un archivo de powerpoint y la quiero ejecutar desde excel
Gracias.
Hola Giovanni,
Eliminaren teoría si es posible...
te dejo este link de Microsoft donde 'explica' más o menos algo al respecto:
http://support.microsoft.com/kb/177760/es
Espero te clarifique las dudas.
Slds
Estimado agradezco de antemano tu aporte, es muy valioso,
ResponderEliminarTengo una pequeña consulta, no me está funcionando la macro que he tratado de adecuar a mi necesidad, lo que sucede es simplemente que la macro pega todos los gráficos a la dispositiva 2, y lo que requiero es que pegue cada gráfico en cada diapositiva, tengo una plantilla PPT de 12 diapositivas en la cual deseo que se peguen las gráficas
Agradeceré infinitamente que me pueda apoyar ya que llevo 3 días en este dilema y no puedo solucionarlo, soy nuevo en macros
Gracias de antemano
aqui le dejo mis códigos
Sub CrearPowerPoint()
'Definición de variables
Dim archivoPPT As PowerPoint.Application
Dim diapositiva As PowerPoint.Slide
Dim hojaXLS As Excel.Worksheet
Dim grafico As Excel.ChartObject
'Creamos una presentación PowerPoint
Set PPT = New PowerPoint.Application
PPT.Visible = True
PPT.Presentations.Open Filename:="C:\Documents and Settings\AsistDatCom\Mis documentos\Proyecto 5\PPT_COLEGIO_AE_2015_nuevo.pptx"
'Instancia del objeto PowerPoint.Application
Set diapositiva = PPT.ActivePresentation.Slides(2)
diapositiva.Select
'Recorrer tods los gráficos en nuestro libro de Excel
For Each hojaXLS In ThisWorkbook.Worksheets
For Each grafico In hojaXLS.ChartObjects
'Copiar gráfico en la dispositiva
hojaXLS.ChartObjects(grafico.Index).Chart.CopyPicture
diapositiva.Shapes.Paste.Select
'Centramos la imagen insertada
PPT.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, msoTrue
PPT.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, msoTrue
Next
Next
'Eliminamos las instancias creadas
Set diapositiva = Nothing
Set archivoPPT = Nothing
Set grafico = Nothing
Set hojaXLS = Nothing
End Sub
Hola Christian,
Eliminarel asunto es que tendrás que crear tantas Slides como gráficos tengas... por tanto deberías aprovechar el bucle que recorre las hojas y gráficos, para llevar un contador.. y emplear ese contador para agregar una Slide nueva por cada gráfico que encuentre....
En esencia es la misma macro que tienes, pero cambiando un poco el orden y añadiendo ese contador...
Saludos cordiales
Hola
ResponderEliminarGracias por tu ayuda ... tengo el siguiente codigo , resulta que quiero pegar la celda J7:J7 a una ubicacion exacta en power point
Te lo agradezco mucho
Sub Tabla_de_Excel_a_Ppoint()
'La macro copia el rango de Excel seleccionado en PowerPoint
'copiar rango selecionado
'Selection.Copy
Application.CutCopyMode = False
Range("J7:J7").Copy
Set PPT = New PowerPoint.Application
PPT.Visible = True
PPT.Presentations.Open Filename:="C:\Users\CO1020771801\Documents\TAREAS\TAREA6 PLAN MENSUAL\Avance\Capitulo_Avance-Fisico.pptx"
'elegimos la diapositiva 2 de la presentación
Set diapositiva = PPT.ActivePresentation.Slides(1)
diapositiva.Select
'Pegado de las celdas Excel como vínculo
diapositiva.Shapes.PasteSpecial(link:=True).Select
Set PPT = Nothing
Set diapositiva = Nothing
End Sub
Hola Nathalia,
Eliminaren un comentario de este post (del 26/10/2012) se aporta una forma de situar lo copiado en una posición concreta, empleando las propiedades Top y Left (y Height):
' se acomoda el gráfico pegado
PPApp.ActiveWindow.Selection.ShapeRange.Left = 15
PPApp.ActiveWindow.Selection.ShapeRange.Top = 95
PPApp.ActiveWindow.Selection.ShapeRange.Height = 230
Espero te pueda servir.
Saludos
Muchas Gracias , me queda una duda que significa el 15 , 95 y el 230 son cm ?? medidos desde donde ?
ResponderEliminarLas medidas suelen ser en puntos, y en este caso Left y Top se miden desde la parte superior izquierda..
EliminarPuedes ver respecto de medidas en
http://excelforo.blogspot.com.es/2014/09/unidades-de-medida-para-excel.html
Saludos
Este comentario ha sido eliminado por el autor.
ResponderEliminarMuchas Gracias por tu colaboracion , en caso de necesitar copiar una celda de unahoja que no este activa , como seria ?
ResponderEliminarhe usado lo siguiente pero no me funciona
resulta que estaba cambiando la linea del codigo Range("B26:B26").Copy
por la siguiente Worksheets("Nombre de hoja".Range("B26:B26").Copy
Muchas Gracias
pues debería funcionar (cerrando el paréntesis):
EliminarWorksheets("Nombre de hoja").Range("B26").Copy
o también
Sheets("Nombre de hoja").Range("B26").Copy
Slds
Hola
ResponderEliminarDe antemano Gracias por tu colaboracion
si deseo guardar el archivo estoy usando este codigo
PPApp.ActivePresentation.SaveAs ("C:\Users\CO1020771801\Documents\TAREAS\TAREA6 PLAN MENSUAL\Avance\ " & Proyecto & ".pptx")
pero resulta que no me esta guardando con ese nombre sino sobre el archivo que estoy trabajando
Te agradeceria mucho
Hola Nathalia,
Eliminarmejor lee primero las Normas de uso del blog, y después si quieres, envíame tu proyecto a
excelforo@gmail.com
Un cordial saludo
Hola Ismael gracias por la informacion, una pregunta actualmente tengo Office 2013 y la libreria es "Microsoft PowerPoint 15.0" y la macro se detiene al momento de pegar la imagen "diapositiva.Shapes.PasteSpecial(Link:=True).Select", que me recomiendas hacer.?
ResponderEliminarHola Omar,
Eliminarcambia la sentencia por:
diapositiva.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile
debería funcionar...
Un saludo!
Este comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarhola, muchas gacias por tu colaboración, pero como puedo hacer crecer solo un lado de la planilla copiada, el código que he tratado es escalando con Width, Height , pero siempre el largo y el ancho conjuntamente
ResponderEliminardiapositiva.Shapes.PasteSpecial(Link:=True).Select
With ObjPowerPoint.ActiveWindow.Selection.ShapeRange
.Top = 35
.Left = 290
'.Width = 660
'.Height = 530
.ScaleHeight 0.65, msoTrue, msoScaleFromTopLeft
Hola Pablo,
Eliminarsi añades .ScaleHeight modificas (a priori) alto y ancho.. asi si solo quieres ajustar el ancho, cámbialo únicamente en la propiedad .Width
Slds
hola disculpen cuando corro el codigo para abrir un libro existente me parece un error -2147024893 (80070003) en tiempo de ejecucion error de automatizacion alguine sabe como resolverlo gracias
ResponderEliminarHola,
Eliminar¿activaste la referencia que se indica al inicio del post?
Saludos
hola, disculpe pero tengo un problema que no he podido resolver, necesito realizar una presentacion en power point a modo de reporte y quiero exportar datos de excel a power point tal como se hace en word es decir puedo hacer mi formato y definir en que partes del texto agregar informcion de excel pero no lo he logrado espero me haya podido dar a entender y puedan ayudarme a resolver este problema. Gracias
ResponderEliminarcomo ejemplo, necesito decir "entrevista realizada a -dato de excel- personas en la comunidad -dato de excel-" pues la grafica he logrado exportarla correctamente pero en el texto no logro hacer que los datos cambien de acuerdo al reporte que debo entregar
ResponderEliminarHola, que tal...
EliminarEl asunto es algo más delicado que en Word, ya que en Word es relativamente fácil localizar posiciones donde ubicar palabras, imágenes, etc..
La idea sería en PPt localizar el objeto done insertar el texto (probablemente sea un cuadro de texto-también una autoforma, etc). y dentro de este objeto encontrar dónde insertar la info desde Excel.
Subiré, en cuanto me sea posible, un ejemplo al blog.
Saludos
Buenas tardes. Disculpa quiero pegar los datos de una tabla dinámica en power point pero que se peguen como formatos y valores ya que no quieren que se vean los filtros. Como le puedo hacer, copia la tabla con las siguientes instrucciones:
ResponderEliminarSet excelTable = Worksheets("Tablero").Range("A11").CurrentRegion
Esto para que que tome los valores cuando vayan aumentando los datos.
Gracias
Hola,
Eliminarsiempre puedes configurar tu tabla dinámica para que no muestre esos botones (No mostrar encabezados), en la pestaña de Analizar en la barra de herramientas de tabla dinámica
Saludos
Hola buenas tardes, quisiera ver si hay posibilidad de que al momento de mandar a imprimir (exportar) gráficos de Excel a PPT se exportan grafico por grafico con sus respectivas tablas que lo identifican? Espero haberme explicado si no informenme para mejorarlo saludos.
ResponderEliminarHola tengo unos carteles de supermercado en power Point y quiero en un Excel escribir el nombre y precio y que automáticamente cambie en el power point. Puedo hacerlo todo en un excel por curiosidad
ResponderEliminarHola,
Eliminarclaro.. solo tienes que identificar los nombres y tipo de objetos añadidos en el ppt y donde deseas incorporar datos desde Excel...
La técnica sera casi idéntica a la de este post
Saludos
Este es el codigo que estoy probando solo para mover la imagen, pero no funciona.... no manda ningun error
Dim mi_imagen As Shape
Sub Moverimagen()
NumDiapositiva = 1 ']
'<< VALIDAR SI SE ESTÁ EJECUTANDO POWERPOINT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]
On Error Resume Next ']
Set PPT = GetObject(, "PowerPoint.Application") ']
If PPT Is Nothing Then
Set PPT = CreateObject("PowerPoint.Application") ']
PPT_en_Curso = True ']
End If
'ruta del archivo que abre
Set Presentacion = PPT.Presentations.Open("C:\............. \archivo.pptx")
'Set mi_imagen = ActivePresentation.Slides(1).Shapes(1) intento normal
'Set mi_imagen = ActivePresentation.Slides(1).Shapes("Rectangulo1") intento con el nombre
Set mi_imagen = diapositiva.Shapes(1) 'ultimo untento
With mi_imagen
.Left = 10
.Top = 10
End With
End Sub
Hola
Eliminarte faltaría definir la variable objeto: diapositiva
Saludos!
Hola, necesito que de tu código original, generar de las 10 filas seleccionadas por ejemplo pegar cada fila en una diapositiva diferente, espero tu respuesta, gracias.
ResponderEliminarHola,
Eliminaraplica un bucle tipo FOR...NEXT (por ejemplo) que recorra las filas seleccionadas, y ve añadiéndolas: copiándolas y pegándolas, con el código de arriba, a diapositivas (una cada fila)
Slds
Hola,
ResponderEliminarEstoy necesitando un código que tome el contenido de un excel llamado "Detalle" los campos A1, B1, C1 y los vuelque en el powerpoint llamado "presentacion". ubicando el campo A1 (de excel) donde diga prueba1, B1 en prueba2 y C1 en prueba3.
Que también tome los campos A2, B2, C2 de "Detalle" y los ponga en el powerpoint "presentacion", en un segundo slide. A2 en prueba1, B2 en prueba2, C2 en prueba3. Así sucesivamente hasta terminar con el contenido Ax, Bx, Cx.
Lo intente pero no salio.
Alguna comentario?
Gracias
Hola!
Eliminartendrías que identificar cada uno de los tres objetos por slide para con su propiedad
.TextFrame.TextRange
asignarle el valor de la celda de Excel correspondiente...
Un trabajo algo elaborado..
Saludos
Hola cómo se hace para que la hoja automáticamente cada 1 minuto copié un rango de celdas a otro sin la necesidad de un boton
ResponderEliminarHola,
Eliminarecha un vistazo a esta entrada del blog
https://excelforo.blogspot.com/2014/02/vba-repetir-una-macro-cada-x-tiempo.html
Saludos