Guardar hoja activa como imagen

Hola, me podrían ayudar con una macro que guarde la hoja activa de un libro como imagen en una ruta que yo designaré y luego cierre el libro guardando los cambios. Espero puedan ayudarme.

Gracias

1 Respuesta

Respuesta
1

Dime el rango total de la hoja que quieres convertir a imagen

El rango es: A1:Q49

Gracias..

Te mando la solución con esta macro: (posiciónate en la hoja en cuestión y ejecutala)

En este ejemplo guardo la imagen en el path C:\Users\Luis\

con el nombre: rango.jpg

Esos dos datos los puedes cambiar en la macro

Sub proceso()
'por luismondelo
Range("a1:q9").Select
With Selection
tope = .Top
izq = .Left
alto = .Height
ancho = .Width
.CopyPicture
End With
Range("t1").Select
ActiveSheet.Shapes.AddChart
ActiveSheet.ChartObjects(1).Select
With Selection
.Top = tope
.Left = izq
.Height = alto
.Width = ancho
.Chart.Paste
.Chart.Export "C:\Users\Luis\rango.jpg"
.Delete
End With
End Sub

recuerda finalizar la consulta

Gracias por tu respuesta amigo, la macro corre perfecto cuando la hoja tiene solo números y letras, pero yo tengo dentro del rango de la hoja activa unos gráficos de barras y al momento de ejecutar la macro se borra el gráfico de la hoja y el archivo guardado como imagen resulta confuso.

Prueba ahora con la macro así:

Sub proceso()
'por luismondelo
Range("a1:q9").Select
With Selection
tope = .Top
izq = .Left
alto = .Height
ancho = .Width
.CopyPicture
End With
Range("t1").Select
ActiveSheet.Shapes.AddChart
For Each ob In ActiveSheet.Shapes
ob.Select
Next
With Selection
.Top = tope
.Left = izq
.Height = alto
.Width = ancho
.Chart.Paste
.Chart.Export "C:\Users\Luis\rango.jpg"
.Delete
End With
End Sub

Gracias, cuando ejecuto la macro me sale el mensaje:

Se ha producido el error 438 en tiempo de ejecución.

El objeto no admite esta propiedad o método

Depurando la macro se detiene en .Chart.Paste

¿Puede ser la versión del excel?, ya que uso el 2007.

Nuevamente gracias por tu tiempo.

Mándame el archivo con solo la pestaña afectada para hacer la prueba

[email protected]

Ok amigo Luis, te lo envío mañana.. disculpa la tardanza.. Gracias

Te envié el archivo con el asunto: Guardar hoja activa como imagen.

Gracias por la ayuda

Ok, te mando la macro corregida, esta es la correcta:

Sub proceso()
'por luismondelo
Range("a1:q49").Select
With Selection
tope = .Top
izq = .Left
alto = .Height
ancho = .Width
.CopyPicture
End With
Range("am1").Select
ActiveSheet.Shapes.AddChart
For Each ob In ActiveSheet.ChartObjects
ob.Select
Next
With Selection
.Top = tope
.Left = izq
.Height = alto
.Width = ancho
.Chart.Paste
.Chart.Export "C:\Users\Luis\rango.jpg"
.Delete
End With
End Sub

recuerda finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas