¿Cómo crear un rango de datos como imagen?

Buenas tardes,

Vi un archivo que tiene un rango nombrado de alguna forma (digamos rango1), con una serie de datos al azar, por ejemplo:

Blanco

Negro

Azul

Rojo

Como se hace para que estos datos (rango1), sean insertado en una imagen? Tengo el archivo del que lo ví por si acaso lo puedo remitir para ser un poco más claro.

1 respuesta

Respuesta
1

Te mando la solución con esta macro:

Al ejecutarla te creará una imagen gif de dicho rango y lo guardará en la misma carpeta del archivo activo en ese momento. (El nombre del gif es: imagen_celdas.gif

Sub ejemplo()
Range("rango1").Select
With Selection
izq = .Left
arr = .Top
alto = .Height
ancho = .Width
.CopyPicture
End With
With ActiveSheet.ChartObjects.Add(izq, arr, ancho, alto)
.Chart.Paste
.Chart.Export ActiveWorkbook.Path & "\imagen_celdas.gif"
.Delete
End With
End Sub

no olvides finalizar la consulta

Estimado experto, mil gracias por la explicación (el código está genial).

Tengo otra duda, en el archivo que le cuento vi, cuando realizamos alguna modificación en los datos del rango, la información de la imagen de igual forma se actualiza, como se puede realizar esto?

NOTA: El archivo lo vi en la siguiente ruta http://economiaemergente.com/calendario-eliminatoria-sudamericana-brasil-2014-excel/ en la opción Excel 2007; de ser posible, lo puedo remitir por correo electrónico.

Quedo atento, mil gracias.

Claro, como no, te paso la solución:

En este caso debemos programar el evento change de la hoja donde están los datos para que cuando toquemos algún dato del rango RANGO1 se autoejecute la macro que nos creará la imagen deseada.

Copia esta macro dentro del objeto hoja que tiene los datos, en un módulo no.

Después prueba a modificar algún dato del llamado RANGO1 y se autoejecutará el proceso de creación de imagen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("rango1")) Is Nothing Then
Range("rango1").Select
With Selection
izq = .Left
arr = .Top
alto = .Height
ancho = .Width
.CopyPicture
End With
With ActiveSheet.ChartObjects.Add(izq, arr, ancho, alto)
.Chart.Paste
.Chart.Export ActiveWorkbook.Path & "\imagen_celdas.gif"
.Delete
End With
End If
msgbox "imagen exportada con el nombre:   imagen_celdas.gif"
End Sub

no olvides finalizar la consulta

Estimado experto mil gracias por la gran colaboración, y sobre todo el valor agregado de la enorme oportunidad en la orientación suministrada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas