Formularios, como se hacen?

11/03/2005 - 19:52 por Isaac Garcia | Informe spam
Amigos, quisera saber donde encontrar informacion de como generar un
formulario que aparezca dentro de la hoja electronica, por ejemplo que me
sirva para solicitar una clave de acceso cuando el usuario se coloque en
cierta celda, y que solo modifique si tiene acceso a ella por medio de un
password.

Isaac

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/03/2005 - 20:50 | Informe spam
hola, Isaac !

... informacion... generar un formulario... solicitar una clave de acceso... en cierta celda [...]



[creo que] la opcion mas sencilla es utilizar algo +/- como lo siguiente
[suponiendo que la 'cierta celda' es 'A1']...
haces un click-derecho en el nombre de la hoja y seleccinas: 'ver codigo...'
en el modulo de codigo de 'esa' hoja, copia/pega las siguientes lineas ==Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If InputBox("...y, tu clave de acceso es...?", "Celda restringida") _
<> "Hocus Pocus" Then Range(""b2").Select
End Sub

obviamente, si no quieres que se 'vea' la clave introducida... SI seria necesario crear un formulario :(
¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Isaac Garcia
11/03/2005 - 22:12 | Informe spam
Funciona, pero si me interesaria crear el formulario para evitar que se vea
la clave al introducir, me ayudas por fa.

ISaac



"Héctor Miguel" escribió en el mensaje
news:%
hola, Isaac !

... informacion... generar un formulario... solicitar una clave de
acceso... en cierta celda [...]



[creo que] la opcion mas sencilla es utilizar algo +/- como lo siguiente
[suponiendo que la 'cierta celda' es 'A1']...
haces un click-derecho en el nombre de la hoja y seleccinas: 'ver
codigo...'
en el modulo de codigo de 'esa' hoja, copia/pega las siguientes lineas
==> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If InputBox("...y, tu clave de acceso es...?", "Celda restringida") _
<> "Hocus Pocus" Then Range(""b2").Select
End Sub

obviamente, si no quieres que se 'vea' la clave introducida... SI seria
necesario crear un formulario :(
¿comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
12/03/2005 - 02:02 | Informe spam
hola, Isaac !

... crear el formulario para evitar que se vea la clave al introducir [...]



la forma mas 'delgada' [menos lineas de codigo] que se me ocurre, es:
utilizando SOLO un control de cuadro de texto en el formulario y que el usuario presione 'enter' al terminar.
obviamente puedes agregar textos-mensaje, msgbox'es, etc. etc. etc.
te paso los pasos y, si cualquier duda... ¿comentas?
saludos,
hector.
== estando activo 'el libro en cuestion' ... =1.- ingresa al editor de vba -> atajo de teclado = alt+f11
2.- [menu] insertar / userform
3.- agrega un control 'cuadro de texto'
4.- click-derecho sobre el control y selecciona -> 'propiedades'
doble-click sobre la propiedad 'passwordchar' e introduce [p.e.] un asterisco '*'
5.- click-derecho sobre el control y selecciona -> 'ver codigo...'
6.- elimina TODA linea de codigo que aparezca en el modulo de codigo y...
=> copia/pega las siguientes lineas en dicho modulo... <Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If TextBox1 <> "Clave aprobada" Then ActiveCell.Offset(1).Select
End Sub
Respuesta Responder a este mensaje
#4 Héctor Miguel
12/03/2005 - 02:09 | Informe spam
hola, Isaac !

se me ha pasado el codigo [modificado] necesario para que se 'active' el formulario :((
en el modulo de codigo de 'la hoja en cuestion'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then UserForm1.Show
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#5 Isaac Garcia
15/03/2005 - 21:52 | Informe spam
Gracias estoy checando, si tengo dudas te molestare de nuevo. Isaac

"Héctor Miguel" escribió en el mensaje
news:%
hola, Isaac !

se me ha pasado el codigo [modificado] necesario para que se 'active' el
formulario :((
en el modulo de codigo de 'la hoja en cuestion'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then UserForm1.Show
End Sub

saludos,
hector.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida