Poner seguridad por medio de un archivo txt

hola, muchas gracia a toda la comunidad de todo expertos por sus aportes, me gustaría que en el evento open se verificara si esta un archivo txt en el disco local "C:\" y que si ese archivo no se encuentra le diga al usuario acceso negado y se cierre el libro.

1 Respuesta

Respuesta
1

Te anexo la macro para lo que solicitas, para que funcione las macros deberán habilitarse.

Private Sub Workbook_Open()
'Por.Dante Amor
    If Dir("C:\archivo.txt") = "" Then
        MsgBox "Acceso dengado"
        ThisWorkbook.Close
    End If
End Sub

Si las macros no se habilitan entonces el libro si se abre, pero entonces, te recomiendo que las hojas del libro estén ocultas y si existe el archivo entonces la macro las muestre, por ejemplo:

Ejecuta la siguiente macro para que las hojas se oculten y no puedan mostrarse más que con macro:

Sub OcultarHojas()
'Por.Dante Amor
    For Each h In Sheets
        If h.Name <> "Hoja1" Then
            h.Visible = xlVeryHidden
        End If
    Next
End Sub

Ahora pon la siguiente macro en los eventos de workbook

Private Sub Workbook_Open()
'Por.Dante Amor
    If Dir("C:\archivo.txt") = "" Then
        MsgBox "Acceso dengado"
        ThisWorkbook.Close
    End If
    For Each h In Sheets
        If h.Name <> "Hoja1" Then
            h.Visible = True
        End If
    Next
End Sub

Solamente si habilitan las macros y si el archivo existe, entonces las hojas se muestran. Si no habilitan las macros, solamente se verá una hoja.

Para que quede todo igual cuando cierren el libro, agrega la siguiente macro también en los eventos de workbook.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Por.Dante Amor
    For Each h In Sheets
        If h.Name <> "Hoja1" Then
            h.Visible = xlVeryHidden
        End If
    Next
    ThisWorkbook.Save
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Hola excelente el código funciona a la perfección, ¿existe alguna forma en la que pueda crear el txt desde el mismo excel poniendo una contraseña desde un input box?

Valora esta respuesta y crea una nueva para cada petición

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas