Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como crear una imagen de un rango de celdas de Excel


.

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.

  
El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar Excel con Access y muchos ejemplos más.

  
El archivo de ejemplo se puede descargar desde el link del final en forma gratuita, considera aportar para sostener el sitio, al descargar el fichero se podrá observar un botón denominado ejecutar, presionando se puede ver la macro en acción.

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:

With Range(«A1:E11»)
Izq = .Left
Arr = .Top
Ancho = .Width
Alto = .Height
End With

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.

With Selection
.Width = Ancho
.Height = Alto
.Chart.Paste
.Chart.Export myfile
.Delete
End With
Invito a analizar el ejemplo denominado como crear una imagen de un rango de celdas de Excel, para ello luego de descargarlo desde el link del final, ingresar al editor de VBA y ejecutar la macro paso a paso con F8 para ir observando que hace la macro con cada uno de los códigos que la componen. En el caso que puedas considera aportar para sostener el sitio y según incorporando nuevos ejemplos que podrás descargar en forma gratuita, en caso que no puedas solicitó compartas el conocimiento con tus amigos en redes sociales. 



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


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