Como quitar error 1004 tiempo de ejecución

Sigo con mi programa y ahora al guardar me sale error 1004 error en tiempo de ejecución

Al cerrar sale error 1004 no se puede asignar la propiedad visible de la clase worksheet.

Esta es mi macro

Private Sub Workbook_Open()
For Each ws In ThisWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
Sheets("Inicio").Visible = xlVeryHidden
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Por.Miguel
Sheets("Inicio").Visible = xlSheetVisible
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Inicio" Then
ws.Visible = xlVeryHidden
End If
Next ws
ActiveWorkbook.Save

For Each h In Sheets
h.Unprotect "abc"
h.Cells.SpecialCells(xlCellTypeConstants, 23).Locked = True
h.Protect "abc", False, True, False, True, True, _
True, True, True, True, True, True, True, True, True
h.EnableSelection = xlNoRestrictions
Next
ActiveWorkbook.Save
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Por.Miguel
For Each h In Sheets
h.Unprotect "abc"
h.Cells.SpecialCells(xlCellTypeConstants, 23).Locked = True
h.Protect "abc", False, True, False, True, True, _
True, True, True, True, True, True, True, True, True
h.EnableSelection = xlNoRestrictions
Next
ActiveWorkbook.Save
End Sub

1 Respuesta

Respuesta
1

¿Puedes enviar una imagen de las hojas que tiene tu libro?

S@lu2

Hola, buenas tardes

El error al guardar archivo ya lo he solucionado.

Pero sigue el error al cerrar el libro.

Al cerrar sale error 1004 no se puede asignar la propiedad visible de la clase worksheet.

Pincho en depurar y me sale la pantalla de la imagen.

Tengo una hoja de nombre inicio que pide habilitar macros

La hoja de datos es una hoja provisional que he puesto celdas con nombres, números, letras para poder crear las macros.

MUCHAS GRACIAS POR SU INTERÉS

Intenta cerrar el libro con la hoja inicio seleccionada y me comentas.

HOLA,   La hoja de inicio desaparece una vez aceptamos habilitar macros

Por más que observo la macro, no le encuentro problemas.

Intenta lo siguiente

Después de la línea

Sheets("Inicio").Visible = xlSheetVisible

Agrega 

Sheets("Inicio").Select

Ahí me comentas qué pasa.

Mi apuesta es que envíe el error porque la hoja que estás ocultando no puede perder el enfoque.

MUCHÍSIMAS GRACIAS ISAAC

He hecho lo que me dices y sigue igual.

Si gustas, me envías el archivo.

Isenrey(a)yahoo. Es

Voilà Miguel:

El error estaba frente a nuestros ojos.

La hoja tiene como nombre "inicio" y al momento de ocultar las hojas estás utilizando esta validación

If ws.Name <> "Inicio" Then

Por lo tanto, nuestro problema se resuelve reemplazando la "i" minúscula del nombre de la hoja, por una "I" en mayúsculas o si quieres hacer un pequeño cambio en la instrucción para que no vuelva a ocurrir un error tan sutil, quedaría de la siguiente forma

If LCase(ws.Name) <> "inicio" Then

S@lud2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas