Crear copia de reporte en excel vba

[Hola Dante buenos días 

necesito que los ajustes a la siguiente macro 

Sub CopiaReporte()
    Set h1 = Sheets("Reporte")
    If MsgBox("Desea imprimir antes de crear reporte", vbYesNo) = vbYes Then
        ' Crea una copia de la hoja reporte y lo guarda en la carpeta reportes
        ' si la carpeta REPORTE no existe que le cree
        ruta = ThisWorkbook.Path & "\REPORTES\"
        nombre = "REPORTE"
            If Dir(ruta & nombre) = "" Then
                MkDir ruta & nombre
            End If
    Else
        h1.PrintOut copies:=1, collate:=1
    End If
End Sub

1 Respuesta

Respuesta
1

¿Quieres guardar la hoja "reporte" como un archivo?

¿En una carpeta?

Si la carpeta no existe, ¿debe crear la carpeta?

Mejor dime paso a paso qué quieres que haga la macro, porque no entiendo tu código.

[aquí va Dante.

-Guardar la hoja reporte como archivo (iré generando varios reportes que desee y debe ir guardando reporte1, reporte2....así no reemplazar el original)

- guardar el archivo en una subcarpeta "REPORTES", si no existe la carpeta, la macro tiene que crear la carpeta y guardar la hoja reporte .

[Gracias por el tiempo amigo

Va la macro

Sub Guardar_Hoja()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("reporte")
    h1.Copy
    Set l2 = ActiveWorkbook
    '
    ruta = l1.Path & "\"
    carpeta = "Reportes"
    If Dir(ruta & carpeta, vbDirectory) = "" Then
        MkDir (ruta & carpeta)
    End If
    '
    arch = "reporte"
    n = 1
    Do While True
        If Dir(ruta & carpeta & "\" & arch & n & ".xlsx") = "" Then
            Exit Do
        End If
        n = n + 1
    Loop
    l2.SaveAs ruta & carpeta & "\" & arch & n & ".xlsx", FileFormat:=xlOpenXMLWorkbook
    l2.Close False
    MsgBox "Hoja reporte guardada como archivo : " & arch & n & ".xlsx"
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas