Ocultar los caracteres de una contraseña con macro en excel

Como puedo hacer para que no se vean los caracteres en una contraseña con macro en un archivo de Excel, debido a que actualmente se visualizan los caracteres y es lo que quiero evitar

2 respuestas

Respuesta
2

Para ocultar los carateres lo puedes realizar con un userform, revisa el siguiente vídeo para crear un userform con usuario y password.

https://www.youtube.com/watch?v=sx2bZi5MKkg 

En mi caso es en un libro de excel pero la contraseña no es con un userform, sino que es como una ventana con mensaje si gustas subo el código, para que lo veas y puedas aopyarme

hola y como podría hacer para que se haga a través de un inputbox, te adjunto la macro que actualmente me apoyaron para hacer

Sub mostrarhojas()
Dim r As String
r = LCase(InputBox("ingrese contraseña por favor", "Atención al usuario"))
If r = "transferencia" Then
Worksheets(2).Visible = True
Worksheets(3).Visible = True
Worksheets(4).Visible = True
Else
MsgBox "contraseña incorrecta", vbCritical, "Atención al usuario"
End If
End Sub

Sub ocultarhojas()
'Dim r As String
'r = LCase(InputBox("ingrese contraseña por favor", "Atención al usuario"))
'If r = "traspaso" Then
Worksheets(2).Visible = False
Worksheets(3).Visible = False
Worksheets(4).Visible = False

Worksheets(2).Protect ("2018")
Worksheets(3).Protect ("2018")
Worksheets(4).Protect ("2018")
'Else
'MsgBox "contraseña incorrecta", vbCritical, "Atención al usuario"
'End If
End Sub

entonces lo que quiero es de que no se pueda ver la contraseña sino que aparezca con asteriscos, pero según estado leyendo que a través de un inputbox es mas difícil hacer, espero puedas apoyarme

En un inputbox, no es posible, pero la opción sería con un userform.

¡Gracias!

Como podría hacerlo con userform y no perder todo ese código. De. La. Macro la. Función que tiene ahorita es para ocultar y mostrar hojas de un archivo de excel, por lo que me comentas que no se puede hacer con un imputbox sino que cin userform como quedaría el código

Espero tu apoyo

Así quedaría.

En tu módulo.

Observa como en la primer línea de todo el código estoy declarando la variable contraseña como pública.

Public contraseña
'
Sub mostrarhojas()
    UserForm1.Show
    If contraseña = "transferencia" Then
        Worksheets(2).Visible = True
        Worksheets(3).Visible = True
        Worksheets(4).Visible = True
    Else
        MsgBox "contraseña incorrecta", vbCritical, "Atención al usuario"
    End If
End Sub
'
Sub ocultarhojas()
    UserForm1.Show
    If contraseña = "transferencia" Then
        Worksheets(2).Visible = False
        Worksheets(3).Visible = False
        Worksheets(4).Visible = False
        '
        Worksheets(2).Protect ("2018")
        Worksheets(3).Protect ("2018")
        Worksheets(4).Protect ("2018")
    Else
        MsgBox "contraseña incorrecta", vbCritical, "Atención al usuario"
    End If
End Sub

En el userform, pones un textbox con la propiedad PasswordChar

También pones un commandbutton y en el código del commandbutton pones:

Private Sub CommandButton1_Click()
    contraseña = TextBox1
    Unload Me
End Sub

[sal u dos

no se mucho de hacer estos userform todo este código a donde tengo que pegarlo

Revisa el vídeo que te envié.

Ahí en mis indicaciones dice cuál código va en un módulo y cuál código va en el userform

perdón no tengo experiencia haciendo esto revise el video y no pude hacerlo te adjunto imágenes donde quiero explicarte que es lo que realmente necesito, ya que me comentas que obligatoriamente hay que hacerlo con un userform

   tal como ves en la imagen necesito dos botones uno de ocultar y mostrar hojas, que haría cada uno, bueno cuando de ocultar hojas va a ocultar las hojas 2,3 y 4.

cuando se presione mostrar hojas, es hay donde tengo que hacer un cuadro de texto para poder ingresar la contraseña y al estar correcta la contraseña entonces que muestre las hojas. debería quedar mas o menos asi y que la contraseña sea a través de asterisco.

pero te soy sincero no se como hacerlo

el código que tengo ahorita y que funciona con un inputbox es este y es el que quiero pasar al userform

Sub mostrarhojas()
Dim r As String
r = LCase(InputBox("ingrese contraseña por favor", "Atención al usuario"))
If r = "transferencia" Then
Worksheets(2).Visible = True
Worksheets(3).Visible = True
Worksheets(4).Visible = True
Else
MsgBox "contraseña incorrecta", vbCritical, "Atención al usuario"
End If
End Sub

Sub ocultarhojas()
'Dim r As String
'r = LCase(InputBox("ingrese contraseña por favor", "Atención al usuario"))
'If r = "transferencia" Then
Worksheets(2).Visible = False
Worksheets(3).Visible = False
Worksheets(4).Visible = False

Worksheets(2).Protect ("2018")
Worksheets(3).Protect ("2018")
Worksheets(4).Protect ("2018")
'Else
'MsgBox "contraseña incorrecta", vbCritical, "Atención al usuario"
'End If
End Sub

Quita todo tu código y pon el que yo te envié

Esta bien perp que código le asigno a cada botón y que se muestra así como te explicaba en el msn anterior, que al dar click en mostrar me. Pida la contraseña

Envíame tu archivo y te adapto todo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Consultas Consultas

Respuesta
1

Eso es más fácil.

En tu proyecto de bv ve a herramientas>propiedades de vbaproject>pestaña de protección

Una vez allí activas la casilla de bloqueo y le pones una contraseña.
De ahí en adelante te pedirá contraseña cada que quieras visualizarlo, solo recuerda guardar tu archivo en formato xlsm.
Guarda la contraseña con tu vida por que es muy difícil recuperarla si la olvidas

¡Gracias! 

Talvez no me di a entender y te pido disculpas por ello, lo que pasa es de que la macro que te adjunte sirve para ocultar y mostrar hojas pero tiene clave y se ven los caracteres y es lo que quiero poder hacer para que no se vean, te adjunto imagen

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas