Macro convertir archivos xlsx a html

Se tiene un archivo xlsx/xlsm el cual se debe convertir a formato html, ¿es posible convertirlo mediante macro excel y cual sería esa macro si el archivo se llama ab.xlsx o ab.xlsm?

Nota: En internet existen varios software que lo hacen, pero la idea es realizarlo mediante macros.

Respuesta
1

Yo tuve un caso supongo que similar al tuyo y lo solucioné con este código:

    With ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _
    Filename:="C:\Users\user\Desktop\ab.mht", Sheet:="Hoja1", Source:=("$a$1:$Q$100"), _
    HtmlType:=xlHtmlStatic)
        .Publish (False)
        .AutoRepublish = False
        End With

Tendrás que:

Editar la ruta y cambiar user por tu nombre de usuario

Cambiar Hoja1 por el nombre de tu hoja

Cambiar el Rango $A$1:$Q$100 por el que te interese

Ok Gregori00001

Como sería para un rango variable. Este rango sea únicamente el ocupado por el rango de datos que surja como resultado de ejecutar una macro antes de generar html ¿¿

Gracias

¿Puedes poner una imagen y explicación de que tipo/forma es el rango que genera la macro?

Para seleccionar rangos variables deberás definir el rango mediante una variable utilizando instrucciones del estilo rows. Count columns. Count.

Si pones en google vba seleccionar rango variable seguro que encontraras multitud de ejemplos

Ok, El archivo generado tiene las siguientes columnas:

A                        B                            C                         D

Código            Descripción         Unidad                  Valor Unitario

Cuatro columnas que siempre van a ser las mismas, lo variable son los registros o líneas, es decir, unas veces son 500 productos, otras veces son 1000 o ...

Para un rango variable utiliza el siguiente:

Sub mht()
Dim rango As Range
ultima = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
MsgBox ultima
Set rango = Sheets("Hoja1").Range(Cells(1, 1), Cells(ultima, 4))
With ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _
    Filename:="C:\Users\vrodriguez\Desktop\ab.mht", Sheet:="Hoja1", Source:=rango.Address, _
    HtmlType:=xlHtmlStatic)
        .Publish (False)
        .AutoRepublish = False
        End With
End Sub

Recuerda cambiar Hoja1 por el nombre de tu hoja

Y vrodriguez por tu nombre de usuario si quieres guardarlo en el escritorio. Sino cambia la ruta entera

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas