Macro para no permitir acceso a hojas

Para dante

Como restringir el acceso a hojas a usuarios

1 respuesta

Respuesta
1

H o l a : Te anexo el código para ocultar las hojas, la macro va en el formulario frm_login.

Private Sub btn_Registrar_Click()
    titulo = "Gestor de Inventarios"
    If txtUsuario = "" Then
        MsgBox "Captura el usuario", vbExclamation, titulo
        txtUsuario.SetFocus
        Exit Sub
    End If
    If txtPassword = "" Then
        MsgBox "Captura la contraseña", vbExclamation, titulo
        txtPassword.SetFocus
        Exit Sub
    End If
    Set b = Hoja10.Range("A:A").Find(txtUsuario, lookat:=xlWhole)
    If b Is Nothing Then
        MsgBox "El usuario '" & txtUsuario & "' no existe", vbExclamation, titulo
        txtUsuario = ""
        txtPassword = ""
        txtUsuario.SetFocus
        Exit Sub
    End If
    If Hoja10.Cells(b.Row, "B") <> txtPassword Then
        MsgBox "La contraseña es incorrecta", vbExclamation, titulo
        txtPassword = ""
        txtPassword.SetFocus
        Exit Sub
    End If
    '
    pase = 1
    u = Hoja8.Range("A" & Rows.Count).End(xlUp).Row + 1
    Hoja8.Cells(u, "A") = Now
    Hoja8.Cells(u, "B") = txtUsuario
    Hoja8.Cells(u, "C") = Hoja10.Cells(b.Row, "C")
    Hoja8.Cells(u, "b") = Me.txtUsuario
    Hoja8.Cells(u, "c") = Hoja10.Cells(b.Row, "C")
    Hoja8.Range("G1") = Me.txtUsuario
    Hoja8.Range("H1") = Hoja10.Cells(b.Row, "C")
    'txtUsuario = ""
    'txtPassword = ""
    'frm_Login.Hide
    'Load UserForm1
    'UserForm1.Show
    'Call muestraHojas
    'Ocultar Hojas
    'Por.Dante Amor
    usuario = txtUsuario
    Set b = Hoja10.Columns("A").Find(usuario, lookat:=xlWhole)
    If Not b Is Nothing Then
        For j = Hoja10.Columns("E").Column To Hoja10.Cells(1, Columns.Count).End(xlToLeft).Column
            hoja = Hoja10.Cells(1, j).Value
            For h = 1 To Sheets.Count
                If UCase(Sheets(h).Name) = UCase(hoja) Then
                    estado_vis = Hoja10.Cells(b.Row, j)
                    If UCase(estado_vis) = "VERDADERO" Then
                        Sheets(h).Visible = True
                    Else
                        Sheets(h).Visible = False
                    End If
                End If
            Next
        Next
    End If
    'Fin.Por.Dante Amor
    '
    Unload Me
    Load frm_Clientes
    frm_Clientes.Show
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas