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

En el caso anterior hice ya una pregunta parecida

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

En el caso anterior tenia un rango predefinido para guardar.

Para elegir el rango que guardara como imagen tenia que entrar en Vba y cambiaba en la macro.

Pero esta vez quiero que seleccione las celda que No estén vacías (que estén escritas) y guarde como imagen

Sin modificar las demás cosas.

1 respuesta

Respuesta
1

Tienes pendientes preguntas por valorar, podrías valorar las preguntas para continuar con las siguientes preguntas.

Ok ya esta!

Si tienes dudas en las respuestas que te envié puedes solicitar más información, si la respuesta realmente resolvió lo que necesitas, no entiendo por qué las valoras nada más como "útiles", también tienes la opción de "excelente"

Gracias legalmente por la ayuda.

Ya valore como corresponde.

Excelente todas.

Discúlpame por no valorarla, es que algunas veces me olvido.!
Pero ya esta.

Continuemos entonces.

Puedes poner un par de imágenes, en la primera imagen pon como tienes los datos en la hoja de excel, procura que se muestren las letras de las columnas y los números de filas.

En la segunda imagen me muestras el resultado que esperas

Es la misma macro pero en el caso anterior teníamos en la macro lo siguiente

Rango = "A1:C10"

y ahí cambiamos el rango a ser importado como imagen

Pero en esta vnecesito tu ayuda para que me seleccione las celdas que están escritas con valores numéricos, textuales etc. de forma automáticamente. Sin estar entranto a Vba y cambiar el rango

Ej. Ayer teníamos escrita las celdas A1:F3

Una hora después tenemos escritas la celdas A1:F10

Y hoy tenemos A1:F100

Que varíe según los datos que se ingresen.

¿Y después?

No había visto tu respuesta anterior, a veces no me llegan los avisos.

Te anexo la macro, para poner el rango desde la celda A1 y hasta la columna F y hasta la última fila con datos.

Sub CopiarCeldasComoImagen()
'Por.Dante Amor
    '
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja2")
    Set h2 = Sheets.Add
    ruta = "C:\datos\imagenes\"
    archivo = ruta & h1.[D1] & ".JPEG"
    '
    rango = "A1:F" & Range("F" & Rows.Count).End(xlUp).Row
    '
    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

Saludos.Dante Amor

Recuerda valorar la respuesta.

¡Gracias! 

Tengo un problema, solo me exporta la fila 1 (el encabezado en este caso)

y los datos de abajos no me exporta

Cambia la "F" por la letra de columna que tenga datos en esta línea de la macro

rango = "A1:F" & Range("F" & Rows.Count).End(xlUp).Row

Si la columna "A" es la que tiene datos entonces quedaría así:

rango = "A1:F" & Range("A" & Rows.Count).End(xlUp).Row

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas