Vincular Casilla de Verificación a Valor en Tabla

Hola. 1º de todo gracias. Tengo un Formulario que no tiene ningún origen de datos. Y me gustaría no vincularlo. Dentro de el, tengo una casilla de verificación, que sirve de modo de opción. Pero el formulario no me guarda el valor que yo dejo cuando lo cierro. Que a veces puede ser TRUE y a veces FALSE, depende del usuario. El tema es que cuando se abre de nuevo el form, la casilla aparce con el valor predeterminado. Y yo necesito que aparezca con el valor que el usuario le dejo la ultima vez cuando cerro el form. Como no pude hacerlo de ninguna manera. Se me ocurrió como opción, crear una tabla (Opciones) y de alguna manera vincular esa casilla al registro de la tabla correspondiente donde deje guardado el valor que el usuario modifique. El tema es que no se como hacer para vincular la casilla a una tabla, sin vincular el form, y que la casilla, al abrir el from, me muestre el valor que el usuario había dejado puesto antes de cerrarla la ultima vez. Aclaración: en esa tabla irían las especificaciones de varios usuarios, entonces dependiendo del usuario, el valor cambia. Y también irían especificaciones de varios formularios. Por eso habría que hacer que la casilla busque el valor y filtre según: form, usuarioactual, y casilla. MUCHAS GRACIAS, espero que me puedas ayudar.!

1 respuesta

Respuesta
1
Ok, pues te diría que el "problema" más grande radica en como armás la tabla que guardará este valor, por lo que me comentás debería ser una tabla más o menos así
Form-User         Form    Usuario    Valor
...
...
Donde la columna Form-User sería la concatenación de las otras 2 columnas (para poder buscar luego con la función Buscarv
Si te parece seguilo por este lado y en caso que necesites algo avisame
Te dejo como anexo una función que te devuelve el usuario del sistema (por si no la tenés...)
Function usuarioRed()
Dim ObjetoRed As Object
Set ObjetoRed = CreateObject("WScript.Network")
' MsgBox "Nombre del PC en Red : " & ObjetoRed.ComputerName & vbCrLf & _
"Usuario: " & ObjetoRed.UserName, vbInformation, "Aviso"
usuarioRed = ObjetoRed.UserName
Set ObjetoRed = Nothing
End Function
Ok dale, muchas gracias, lo voy a intentar! Y te estoy avisando.
Lo que te pregunto, podre con esa función de buscarv filtrar por: ¿Usuario, formulario, comando? ¿Por las 3 cosas? Porque 1º se fija que form es, y después se fija el comando que uno esta cambiando y después se fija el usuario que lo esta cambiando, y de ahí saca el valor. Todo esto yo lo pondría en el OPEN del form. Lo voy a tratar de hacer y te aviso. Esta función la pongo en el valor predeterminado de la casilla de verificación, ¿no? Gracias
El buscarv en realidad buscará un código en una tabla y se desplaza una cierta cantidad de columnas; lo que tenés que hacer es que la primer columna de la tabla sea el código "único" que necesitás, yo te puse que debería ser
Form-User          Form      Usuario        Valor
...
Pero por lo que decís probablemente debería ser
Form-User-Comando      Form      Usuario    Comando       Valor
...
...
Fíjate primero de armar esta tabla y después vemos en cada formulario como debería ser (pero te anticipo que sería en la propiedad Activate del formulario)
Hola! Ya use la opción, pero use una que se llama dlookup y listo, encuentra el dato re joya!
Ahora lo que necesito hacer es cada vez que el usuario apretá en la opción y la cambia, también se cambie ese dato en la tabla. Así siempre que abre el form, se abre con el valor que el usuario dejo puesto.
Otra cosa, yo con dlookup, encontré el valor y me lo muestra, buensiimo! Pero como hago para que se fije 1º que usuario es y después ahí busque el valor. Porque en la función te deja solo buscar por la coincidencia de un valor en una columna y ahí devolver un valor en otra columna
Porque yo le podría poner un valor único (tipo ID) a cada configuración, o valor de cada usuario, pero cuando son muchos usuarios me volvería loco, tendría que poner un IF para cada nombre de usuario y me muero, en cada form hacer eso. Lo bueno seria que 1º busque según usuario y después pase a buscar según form y después según comando y ahí devuelva el valor. Porque el nombre de usuario se puede repetir y el form se puede repetir si hay varios comando por form. Gracias!
¿Amigo, cómo andas? Disculpa que te escriba tanto. YA SOLUCIONE el problema de los criterios que te decía, le pude poner en la misma función de búsqueda, todos los criterios que necesitaba así que listo, me encuentra el valor único que yo quiero. Pero el otro problema es el que me escriba el cambio del valor cada vez que el usuario aprieta en la casilla, obviamente me lo tiene que cambiar en el mismo lugar en donde después la función busca el valor para mostrar. ¿Cómo podría hacer que guarde el valor en la tabla? Gracias! Saludos
Pues deberías tener algo parecido a esto
filaAux = Application.WorksheetFunction.Match(criterios, rangoDeLaTabla, 0)
con este valor obtendrías la fila donde está; luego deberías hacer algo del tipo
Cells(filaAux,Columna)= Valor Casilla
Por supuesto que todo esto está a modo de ejemplo; vas a tener que ajustar todo a código "real"
Saludos (y no olvides finalizar la pregunta)
Gfellay
Hola. Disculpa que te vuelva loco. Pero no tengo esa función. No me reconoce worksheet. Ni existe en mi VB. ¿No se te ocurre otra forma? Tratando de aprovechar la función anterior de dlookup, no podremos aprovechar para sacar la fila donde esta la info y escribir mismo. O algo así. Yo no me las rebusco, no conozco tanto de VB como para inventar algo. Dime lo que puedas gracias!
Deberías tenerla (de la misma forma que vlookup); siempre estoy hablando desde VBA. En este caso no te sirve Vlookup porque eso te devuelve un dato y vos lo que necesitás es la posición del dato
Amigo, perdona que le siga dando pero creo que le encontré muna posible solución. La verdad que eno encuentro esa función que me pasaste, me tira error. Pero se podria hacer algo con:   UPDATE tabla SET campo=valor WHERE criterios , 
con la Funcion DLOOKUP encuentro la fila de la tabla, y con el UPDATE le cambio el valor.
El tema es que intente, pero me tira error en el SET, diciéndome que le falta fin de instrucción, y no se como hacer, porque la copie igual que ecnontre en varios lugares. Después de horas de buscar una solución. ¿Qué te parece?
Por lo que estás diciendo se me hace que estás trabajando con SQL y no con Excel. Recuerda que esta categoría es de excel, creo que deberías preguntar en Access y/o en otra categoría porque no me suena que sea una instrucción de excel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas