05/Oct/05 13:44
Lamentablemente no pueden protejer al 100%, las macros no funcionan si no se habilitan, si esto no ocurre no se podrán ejercer las protecciones.
Primero veamos como forzar a que las macros sean habilitadas, trataremos de hacer un ejercicio.
En un libro nuevo con varias hojas copiamos este código a la hoja de EsteLibro ó ThisWorkbook.
[code:1:bdea2f108a]Public bIsClosing As Boolean
Dim wsSheet As Worksheet
Private Sub Workbook_Open()
bIsClosing = False
For Each wsSheet In ThisWorkbook.Worksheets
If wsSheet.CodeName <> "Sheet1" Then
wsSheet.Visible = xlSheetVisible
End If
Next wsSheet
Sheet1.Visible = xlSheetVeryHidden
End Sub
Private Sub Workbook_Deactivate()
If bIsClosing = False Then Exit Sub
Application.ScreenUpdating = False
For Each wsSheet In ThisWorkbook.Worksheets
If wsSheet.CodeName = "Sheet1" Then
wsSheet.Visible = xlSheetVisible
Else
wsSheet.Visible = xlSheetVeryHidden
End If
Next wsSheet
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Cancel = True Or bIsClosing = False Then Exit Sub
Application.ScreenUpdating = False
For Each wsSheet In ThisWorkbook.Worksheets
If wsSheet.CodeName = "Sheet1" Then
wsSheet.Visible = xlSheetVisible
Else
wsSheet.Visible = xlSheetVeryHidden
End If
Next wsSheet
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
bIsClosing = True
End Sub[/code:1:bdea2f108a]
Guarden el Libro, luego lo abren [u:bdea2f108a]Sin Habilitar macros[/u:bdea2f108a], debe abrir solo una hoja en esa pongan un mensaje para indicarle al usuario que no se abriran las demás hojas si no habilitan las macros
No olviden protejer con contraseña los proyectos de Visual Basic.
Espero sus comentarios
«Antes que cambien los reinos, los hombres deberán cambiar»
═╬═