Macro para copiar una hoja oculta y guardarla en un archivo nuevo

Tengo el siguiente código que el cual me hizo el favor de pasar el maestro dante, pero quisiera saber si se puede modificar u otro en el cual me copia la hoja a un este oculta y la guarde en un archivo nuevo, ya que si se oculta la hoja la macro tira un erro.

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h = Sheets("Etiquetas")
    If h.Range("A1") = "" Then
        MsgBox "Debes poner el nombre del archivo en la celda A1"
        Exit Sub
    End If
    n = h.Range("A1")
    h.Copy
    ActiveWorkbook.SaveAs FileName:=ThisWorkbook.Path & "\ARCHIVO\" & n & ".xls", _
            FileFormat:=xlExcel8, CreateBackup:=False
    ActiveWorkbook.Close False
    MsgBox "Archivo: " & n & " creado", vbInformation, "CREAR TXT"
End Sub
Private Sub frm_basedatos_Click()
Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h = Sheets("Etiquetas")
    If h.Range("A1") = "" Then
        MsgBox "Debes poner el nombre del archivo en la celda A1"
        Exit Sub
    End If
    n = h.Range("A1")
    h.Copy
    ActiveWorkbook.SaveAs FileName:=ThisWorkbook.Path & "\ARCHIVO\" & n & ".xls", _
            FileFormat:=xlExcel8, CreateBackup:=False
    ActiveWorkbook.Close False
    MsgBox "Archivo: " & n & " creado", vbInformation, "CREAR TXT"
End Sub

1 Respuesta

Respuesta
2

Lo que debes agregar son las instrucciones para hacerla visible y al finalizar volverla a ocultar:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h = Sheets("Etiquetas")
    If h.Range("A1") = "" Then
        MsgBox "Debes poner el nombre del archivo en la celda A1"
        Exit Sub
    End If
    n = h.Range("A1")
    'EMM: si la hoja está oculta se la muestra y se marca para volverla a ocultar al final
    If h.Visible = False Then h.Visible = True: ocultar = 1
    h.Copy
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\ARCHIVO\" & n & ".xls", _
            FileFormat:=xlExcel8, CreateBackup:=False
    ActiveWorkbook.Close False
    MsgBox "Archivo: " & n & " creado", vbInformation, "CREAR TXT"
    'EMM: si la hoja estuvo oculta se la vuelve a ese estado
    If ocultar = 1 Then h.Visible = xlVeryHidden
End Sub

No se porqué razón tenés 2 botones con la misma macro... pero si vas a utilizar los 2 debes agregarle los cambios a la otra también.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas