MsgBox que pida contraseña antes de ejecutar una macro o un proceso

Tengo una macro que se llama "guardar", esta macro copia los datos de unas celdas a otras celdas en otra hoja, me gustaría tener un MsgBox que antes de ejecutar la macro pida una contraseña, que la valide y si es correcta ahora si permita que se termine de ejecutar la macro "guardar"

1 Respuesta

Respuesta
1

Espero te encuentres bien.

A ver si te puedo ayudar. Estaría bueno crear un formulario que contenga un TextBox1 y un botón de aceptar. Dentro del botón el siguiente código:

Private Sub CommandButton26_Click()
If TextBox1 = "123" Then
LoginSucceeded = True
Call "guardar"
Else
MsgBox "Contraseña no valida. Inténtelo de nuevo.", , "Atención"
TextBox1.SetFocus
End If
TextBox1 = Empty
End Sub

Espero haber sido útil.

Atentamente.

Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/696c6bd1/images/float/green-1.png'); position: fixed; display: none;"> </div>

Muchas gracias lucas, si funciono ahora me gustaría hacerlo mas funcional tengo estas dudas

1.- como puedo para mandar a llamar a este formulario desde una macro

2.- una vez que doy click al BOTÓN de ACEPTAR(CommandButton26) y si la contraseña es correcta como puedo acer para que en ese caso el formulario se cierre

3.- como puedo hacer para cerrar este formulario desde un botón de CANCELAR

Gracias Lucas

Espero te encuentres bien.

1- Con la linea Show. Por ejemplo: UserForm1.Show

2- Luego de la liea Call "Guardar" y antes del Else pone una linea que diga Unload Me

3- Puedes crear un botón que se llame Cancelar y dentro de el pone Unload "Nombre del Formulario".

Hola Lucas buen días, mira hasta el momento gracias a tu aporte he logrado esto:

*.- tengo un libro de dos hojas, en el código de la "hoja2" tengo esto:

Private Sub Worksheet_Activate()
ventana_pass_01.Show
End Sub

*.- en el código de "ventana_pass_01" tengo esto

Private Sub boton_aceptar_01_Click()
If texto_pass_01 = "123" Then
LoginSucceeded = True

' Call Macro1 <- aquí voy a poner posteriormente una macro pero por mientras mando llamar a la "hoja2"

Sheets("Hoja2").Select

Unload Me
Else
MsgBox "Contraseña no valida. Inténtelo de nuevo.", , "Atención"
texto_pass_01.SetFocus
End If
texto_pass_01 = Empty
End Sub

Private Sub boton_cancelar_01_Click()
Unload ventana_pass_01
Sheets("Hoja1").Select
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Sheets("Hoja1").Select
End Sub

con todo esto

1.- ya pude mandar llamar al userform

2.- ya agregue el botón Cancelar, y si le doy click se sale de manera correcta

3.- si LE DOY CLICK al botón de cerrar X de la parte superior derecha de la "ventana_pass_01", también se regresa a la "hoja1"

4.- si la contraseña no es correcta sigue ahi hasta que le pongas la contraseña correcta o abortes

todo esto esta muy bien, pero cuando pongo la contraseña correcta en vez de quedarse en la "hoja2" que es la que estamos mandando llamar, en vez de eso se regresa a la "hoja1", como puedo hacer para que al momento de introducir la contraseña correcta , el excel se quede en la "hoja2" ???

Una pregunta mas como puedo hacer para que el botón de ACEPTAR, este esperando el ENTER para accionar, osease que mientras yo este capturando el password y le de enter inmediatamente el botón aceptar haga su trabajo?

Nuevamente muchas gracias Lucas que tengas un excelente Dia.

El punto 1 lo veo en un ratito.

El punto 2 fijate en las propiedades del botón. Se llamaTabIndex y le tenes que poner 1. Por ejemplo: el TabIndex del botón Aceptar 1 y el de Cancelar 2. Con esto, haces tab y se para en el botón según el orden que le distes. Apretás enter y listo.

Atentamente.

Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/cd40011c/images/float/green-1.png'); position: fixed; display: none;"> </div>

Espero te encuentres bien.
Por favor no olvides finalizar la consulta.
Muchas gracias.
Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/9776891f/images/float/green-1.png'); position: fixed; display: none;"> </div>

Hola Lucas buen dia, disculpame por el tiempo tomado para finalizar esta pregunta.

Te agradezco mucho tus respuestas han servido a la perfección en el archivo que estoy haciendo, muchas gracias que tengas un buen dia.

Ramon

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas