Guardar un rango de una hoja en excel como imagen con una macro

Quisiera que me ayudaran,

Le explico lo que quiero hacer:

En una hoja de excel hay una listas de datos ej.(A1:C10)

Quisiera una macro, que me guarde el rango A1:C10 como una imagen, dandole el nombre con el valor de la casilla D1

1 respuesta

Respuesta
5

Te anexo la macro, tienes que cambiar "Hoja2" por el nombre de la hoja que tienes las celdas que vas a guardar como imagen. También cambia "A1:C10", por el rango de celdas.

En la celda D1 debe estar el nombre del archivo. El archivo se guardará en la misma ruta en la que guardes el archivo con esta macro.

Sub CopiarCeldasComoImagen()
'Por.Dante Amor
    '
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja2")
    Set h2 = Sheets.Add
    ruta = ThisWorkbook.Path & "\"
    archivo = ruta & h1.[D1] & ".JPEG"
    '
    rango = "A1:C10"
    '
    With h1.Range(rango)
        fi = .Cells(1, 1).Row
        ff = .Rows.Count + fi - 1
        ci = .Cells(1, 1).Column
        cf = .Columns.Count + ci - 1
        izq = .Cells(1, 1).Left
        der = h1.Cells(1, cf + 1).Left
        baj = .Cells(1, 1).Top
        arr = h1.Cells(ff + 1, 1).Top
        anc = der - izq
        alt = arr - baj
    End With
    '
    h1.Range(rango).CopyPicture
    h2.Shapes.AddChart
    With h2.ChartObjects(1)
        .Width = anc
        .Height = alt
        .Chart.Paste
        .Chart.Export archivo
        .Delete
    End With
    Application.DisplayAlerts = False
    h2.Delete
    Application.DisplayAlerts = True
    '
    MsgBox "Celdas guardadas como imagen en el archivo: " & archivo, vbInformation, Date
End Sub

Sigue las Instrucciones para ejecutar la macro

  1. Abre tu archivo de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Para ejecutarla presiona F5

Saludos. Dante Amor

Recuerda valorar la respuesta.

Muchas Gracias, me funciono muy bien

Pero tengo otra consulta,

¿Si quisiera ubicar la imagen que se guarda en una carpeta especifica?

Ya sea en una carpeta que este en otra ubicación!

Cambia esta línea

ruta = ThisWorkbook.Path & "\"

Por esta

ruta = "C:\datos\imagenes\"

Cambia esto: "C:\datos\imagenes\" por la ruta completa, al final de la ruta recuerda poner la digonal: "\"

¡Gracias! 

Te quiero volver a consultar algo

viste que para modificar la ruta tengo que entrar en Vba

y quisiera saber si en una celda de un hoja no se puede poner la ruta, y en el caso que uno quiera cambiar la ruta solo cambie en la celda y automaticamenta cambie en la macro sin entrar a Vba

(asi como en el caso del nombre del archivo)

Podrías crear una nueva pregunta en el tema de excel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas