.
En este post se presenta una macro que permite crear una imagen o foto de un rango de datos, guardando el rango de datos como una una imagen JPG, es útil cuando posteriormente se necesite copiar ese rango en un archivo Word por ejemplo, pero cada lector encontrará la utilidad adecuada, fíjate en el link como se puede copiar gráficos de Excel a Word con macro.
Recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
En un primer momento la macro copia como imagen el Rango A1:E11, luego se le da la tamaño a la imagen en base a la dimensión del rango para ello se toma las propiedades Top, Left, Width, Height.
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizás interese también:
Como buscar datos y cargar imagen de catalogo en formulario
Como insertar imagen en comentario de Excel
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Lo expresado se hace con el código:
Range(«A1:E11»).CopyPicture
Con este código se carga en variables el tamaño del rango:
Posteriormente la macro crea un objeto gráfico asignado las dimensiones del rango tomadas anteriormente, en dicho objeto gráfico se pega la imagen copiada en el primer paso, luego de ello la macro exporta el objeto gráfico que contiene la imagen el rango como un archivo JPG, luego borra el objeto gráfico creado en la celda B23 y termina la macro emitiendo un mensaje sobre su fiscalización.
Se adiciona un objeto chart:
ActiveSheet.Shapes.AddChart
Con el objeto chart se da la dimensión a la imagen, se pega la imagen del rango copiada en el objeto chart y se exporta la imagen, previamente en la variable myfile se guardo el la dirección o URL de la imagen en la PC.
Código que se inserta en un módulo
Sub CrearImagenRango()
Dim she As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Set a = Sheets(«Hoja1»)
myfile = ActiveWorkbook.Path & «myimag.jpg»
Range(«A1:E11»).CopyPicture
With Range(«A1:E11»)
Izq = .Left
Arr = .Top
Ancho = .Width
Alto = .Height
End With
Range(«b23»).Select
ActiveSheet.Shapes.AddChart
ActiveSheet.ChartObjects(1).Select
With Selection
.Width = Ancho
.Height = Alto
.Chart.Paste
.Chart.Export myfile
.Delete
End With
MsgBox («El archivo de imagen con extensión JPG se guardró en » & myfile), vbInformation, «AVISO»
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Sub CrearImagenRango()
Dim she As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Set a = Sheets(«Hoja1»)
myfile = ActiveWorkbook.Path & «myimag.jpg»
Range(«A1:E11»).CopyPicture
With Range(«A1:E11»)
Izq = .Left
Arr = .Top
Ancho = .Width
Alto = .Height
End With
Range(«b23»).Select
ActiveSheet.Shapes.AddChart
ActiveSheet.ChartObjects(1).Select
With Selection
.Width = Ancho
.Height = Alto
.Chart.Paste
.Chart.Export myfile
.Delete
End With
MsgBox («El archivo de imagen con extensión JPG se guardró en » & myfile), vbInformation, «AVISO»
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends