Macros, botones, excel, mostrar y ocultar

Hice en Visual Basic un 2 botones uno para Ocultar y otro Mostar columnas en excel... El código que utilice es este

Sub mostrar_concentrado()

Application.Worksheets("Concentrado").Cells.EntireColumn.Hidden = True
'Application.Worksheets("Concentrado").Cells.EntireRow.Hidden= True
Range("A:R").EntireColumn.Hidden = False

End Sub

Sub Mostrar_todo()
Dim huser As Worksheet
Dim Ufila As Integer
Dim switch As Boolean

CLAVE_Concentrado = InputBox("ESCRIBA SU CLAVE DE ACCESO")
If_CLAVE_Concentrado = "5f-be3r18"

If switch = True Then
MsgBox "Datos correctos, bienvenido a la información", vbInformation, "Ok"
Application.Visible = True
End

Else
MsgBox "Datos incorrectos, intentelo nuevamente", vbExclamation, "Error"
Application.Worksheets("Concentrado").Cells.EntireColumn.Hidden = False
'Application.Worksheets("Concentrado").Cells.EntireRow.Hidden= True

End If

End Sub

El problema es ... Que la momento de darle click en mostrar me debe de pedir una contraseña y si me la pide... Pero por si algo yo meto una contraseña incorrecta o le doy cancelar... Me desplegá o más bien muestra las columnas que están de manera invisible... Y lo que no quiero es que se muestren...

¿Me podrían ayudar a corregir mi código para que no me suceda esto?

2 Respuestas

Respuesta
1

También te recomiendo que protejas tu hoja, si no proteges la hoja, entonces pueden entrar al menú Inicio / Formato / Ocultar y Mostrar / Mostrar columnas; y podrán ver la información.

Protejamos la hoja desde la macro, primero hay que ocultar las columnas y establecer un password en la hoja. Cambia "abc" por el password que desees:

Sub mostrar_concentrado()
'Act.Por Dante Amor
    Set h = Sheets("Concentrado")
    h.Unprotect "abc"
    h.Cells.EntireColumn.Hidden = True
    h.Protect "abc"
End Sub

Ahora para mostrar las columnas, en las 2 macros deberás poner el mismo password.

Sub Mostrar_Columnas()
'Act.Por Dante Amor
    CLAVE_Concentrado = InputBox("ESCRIBA SU CLAVE DE ACCESO")
    If CLAVE_Concentrado = "abc" Then
        MsgBox "BIENVENIDO A LA INFORMACIÓN", vbInformation, "Datos correctos"
        Set h = Sheets("Concentrado")
        h.Unprotect CLAVE_Concentrado
        h.Cells.EntireColumn.Hidden = False
        h.Protect CLAVE_Concentrado
        h.Select
    Else
        MsgBox "Datos incorrectos, inténtelo nuevamente", vbExclamation, "Error"
    End If
End Sub

Podrás visualizar la información, pero no podrás modificar datos, ya que la hoja está protegida.

Si quisieras modificar la hoja, podrías ejecutar otra macro, para el acceso total:

Sub Acceso_Total()
'Act.Por Dante Amor
    acceso = InputBox("ESCRIBA SU CLAVE DE ACCESO TOTAL")
    If acceso = "abc" Then
        MsgBox "ACCESO TOTAL", vbInformation, "Datos correctos"
        Set h = Sheets("Concentrado")
        h.Unprotect acceso
        h.Cells.EntireColumn.Hidden = False
        h.Select
    Else
        MsgBox "Datos incorrectos, inténtelo nuevamente", vbExclamation, "Error"
    End If
End Sub

.

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

.

Avísame cualquier duda

.

Respuesta
1

Prueba este código:

Sub Mostrar_todo()
Dim huser As Worksheet
Dim Ufila As Integer
Dim switch As Boolean
CLAVE_Concentrado = InputBox("ESCRIBA SU CLAVE DE ACCESO")
If CLAVE_Concentrado = "5f-be3r18" Then
MsgBox "Datos correctos, bienvenido a la información", vbInformation, "Ok"
Rows.EntireRow.Hidden = False
Columns.EntireColumn.Hidden = False
End
Else
MsgBox "Datos incorrectos, intentelo nuevamente", vbExclamation, "Error"
End If
End Sub

Y sobretodo recuerda proteger la visualización de la macro o culaquiera mirando el código podrá ver la contraseña. Te dejo un enlace

https://exceltotal.com/restringir-el-acceso-al-proyecto-vba/ 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas