Formulario para bloquear uso de libro de excel

Tengo un formulario muy pequeño un textbox y un comanbutton quisiera que al abrir el libro de Excel me aparezca el formulario, si la contraseña que digiten dentro del textbox es correcta entonces puedo moverme a otras hojas del libro si no entonces que se cierre.

2 Respuestas

Respuesta
1

Este es con 3 intentos

Primero amigo abres el gestor vba

Después te posicionas en el archivo Que dice ThisWorkbook y colocas este código:

Application.Visible = True ß oculta la aplicacion de excel y solo muestra tu frm creado

Sheets("Hoja1"). Activate ß nombre de la hoja que se posisiona

FrmAcceso.Show ß NOMBRE DE TU Frm que creas para el usuario o solo la contraseña.

En tu frmAcceso

Colocas un botón para verificar la contraseña

Dentro del botón colocas el siguiente código:

'Definimos la variable pública Intentos

Public Intentos As Byte

'

'Validar la clave

Private Sub CommandButton1_Click()

If Me.txtPass.Value = 1234 Then

    MsgBox "Contraseña válida. Se cerrará el formulario.", _

        vbInformation, "EXCELeINFO"

    Unload Me

Else

    Intentos = Intentos + 1

    MsgBox "Contraseña inválida. Llevas " & Intentos & " intento(s).", _

        vbInformation, "EXCELeINFO"

    Me.txtPass.SetFocus

    Me.txtPass.Value = ""

End If

If Intentos = 3 Then

    MsgBox "Has cumplido 3 intentos. Aquí se cerrará el archivo Excel.", _

        vbInformation, "EXCELeINFO"

    Unload Me

    ActiveWorkbook.Close SaveChanges:=False ß Cierra el libro si la contraseña es incorrecta

    Application.Visible = True ß hace visible excel

Else

End If

End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub Label1_Click()

End Sub

'

'Formateamos los objetos del formulario

Private Sub UserForm_Initialize()

With Me

    .txtPass.PasswordChar = "*"

    .txtPass.MaxLength = 8

End With

End Sub

'

'Evitamos que use la x para cerrar el formulario

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If CloseMode = vbFormControlMenu Then

    Cancel = True

    MsgBox "Por favor, ingresa una contraseña.", vbInformation, "EXCELeINFO"

End If

End Sub

Respuesta
3

H o l a:

Pon las siguientes macro en tu formulario, cambia "abc" por el password que desees.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1 = "abc" Then
        For Each h In Sheets
            h.Visible = -1
        Next
        Unload Me
    Else
        MsgBox "Password incorrecto"
    End If
End Sub
'
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Por.Dante Amor
    If CloseMode = 0 Then
        ThisWorkbook.Close False
    End If
End Sub

Instrucciones para UserForm

  1. Abre tu hoja de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / UserForm
  4. En el panel del UserForm creas un TextBox, que se llame TextBox1 y un commadbutton1
  5. Le das dobleclik al commadbutton1 y copias las macros.

Pon las siguientes macros en los eventos de ThisWorkbook

Private Sub Workbook_Open()
'Por.Dante Amor
    Application.EnableCancelKey = xlDisabled
    UserForm1.Show
End Sub
'
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Por.Dante Amor
    For h = 2 To Sheets.Count
        Sheets(h).Visible = 2
    Next
    ThisWorkbook.Save
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

Guarda tu archivo como excel habilitado para macros, cierra tu archivo, vuelve a abrir el archivo y se mostrará el userform.

Captura el password y se mostrarán las hojas.


':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas