Listas de Validación

9 envíos / 0 nuevos
Último envío
Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Listas de Validación

 

Hola a todos.

Les comento de una duda o problema que me surgió y quisiera saber si es posible solucionar. El asunto en concreto es: Es posible que al ingresar unos datos a una tabla a través de un formulario (por ejemplo: nombre), el nombre que haya registrado fuera posible agregarse a una lista de validación que se encuentra en otra celda?

Si es así, agradeceré su ayuda

 

Saludos,

Jesús

 

Cron
Imagen de Cron
Offline
última acción: Hace 7 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: Listas de Validación
Entiendo que si añades el nombre (o lo que sea) a través de un formulario, tendrás que asignarle un código para que los datos acaben en tus celdas. Si es así, no es más que hacer que también se añada el nombre a una columna que tengas en otra pestaña, por ejemplo, y que sea la que utilices para la validación de los datos. Saludos
Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: Listas de Validación

 

Que onda Paco, gracias por tu ayuda. Diseñe el código para mi textbox, sin embargo si me coloca el nombre dentro de mi tabla, pero no se agrega a mi lista de validación. Tal vez puede ser error de código, por eso te lo adjunto. Mi lista de validación actual va desde $Q$2:$Q$15.

Muchas gracias paco, pues me has ayudado mucho.

Agregue este y no me funcionó

Private Sub TextBox22_Click()
Range("Q2").Select
Range("Table2").Select
ActiveCell.FormulaR1C1 = TextBox22
End Sub

Ni tampoco este

Private Sub TextBox22_Click()
Range("Q2").Select
ActiveCell.FormulaR1C1 = TextBox22
Range("Table2").Select
ActiveCell.FormulaR1C1 = TextBox22
End Sub

 

Saludos,

Jesús

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 21 horas 39 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Listas de Validación

¿es un textbox o un combobox?

no entiendo dónde está la lista desplegable ni qué tratas de hacer con esto:
ActiveCell.FormulaR1C1 = TextBox22

si puedes adjuntar un ejemplo mucho mejor.

extiendo tu agradecimiento a Cron

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Cron
Imagen de Cron
Offline
última acción: Hace 7 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: Listas de Validación

Gracias, Paco.

 

Jesús, en el código que pones parece que se adivinan varias cosas.

1º La rutina se lanza cuando haces click en un TextBox. Normalmente se haría al hacer click en un botón, o si el texto que introduces en el Textbox es alguno determinado, como un Enter.

2º En el primero de los códigos primero seleccionas la celda Q2, y después, sin hacer nada en Q2 seleccionas lo que parece ser tu tabla. No sé cómo se selecciona una tabla para añadir datos al final (¿puede ser algo así como Table1.add("datos")?) pero parece claro que así no es, pues el compilador da error.

3º A la celda seleccionada le asignas TextBox22. ¿No querrás que lo que se añada sea TextBox22.Text, que es el valor que está escrito en el TextBox?

En el segundo código se dan los casos 2º y 3º que he comentado para el primero.

Si haces caso a Paco y subes el archivo, seguro que se te podrá ayudar mucho mejor.

 

Saludos

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: Listas de Validación

 

Hola, paco aquí te envío un ejemplo.

En el ejemplo es, cuando escriba el nombre del país en el formulario en un textbox, este se pueda incluir a una lista desplegable o de validación, para que pueda utilizarse ese nuevo "país", para el filtro que está sujeto a la lista de validación. Actualmente hay como 8 países en la lista, pero que esta pueda irse extendiendo cuando se agregue a una persona que no este dentro de estos países ya fijos.

Espero haberme explicado. Muchas Gracias!

 

Saludos,

 

AdjuntoTamaño
File ejemplo.xlsm24.39 KB
Cron
Imagen de Cron
Offline
última acción: Hace 7 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: Listas de Validación

Perdona, debimos contestar a la vez.

Evidentemente, en el código que había probado yo algo debía hacer mal, porque me daba errores que creía que eran debidos a otras cosas.

Me parece que me quedo mirando para aprender ;)

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 21 horas 39 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Listas de Validación

Viendo el código del formulario, veo que no tiene mucho sentido emplear el evento clic del textbox (en la versión 2007 los textbox ni siquiera tienen este evento)

Me parece más lógico añadir un nuevo país al rango de validación al pulsar el botón del formulario, cuando se vayan a copiar los datos al listado.

primer consejo: ¿por qué no utilizas una lista desplegable en el formulario para el país? un combo en vez de un textbox, así no hace falta escribirlo si es un país ya existente. Puedes utilizar como origen de este combo el mismo rango que para la validación. Además así sólo añades los países que no estén en la lista.

segundo consejo: no pongas la lista de paises encima de la lista de datos, porque puede crecer ilimitadamente, crea una tabla, en esa misma hoja, o en otra. También es una buena idea que crees un nombre, por ejemplo, yo he creado una tabla "Tabla2" y he definido un nombre ListaPaises que utilizo tanto en la validación, como en el origen del combo del formulario:

fíjate que en el combo del formulario la propiedad MatchRequired está en False, esto permite escribir valores que no estén en el combo, es decir, nuevos países.
fíjate también que el origen del combo RowSource es "ListaPaises", el nombre del rango que contiene los nombres.

He modificado el código del botón Ingresar, para que además de añadir los datos a la lista, compruebe si el país está en el combo mediante ComboBoxPais.MatchFound, y si no está lo añadimos a la tabla de paises. también ordeno la lista de países tras añadir uno nuevo, para que sea más fácil de leer.

He quitado el código de los textobox, que no hacían nada de provecho.

Quedaría algo así:

Private Sub CommandButton1_Click()
' www.necesitomas.com
If ActiveSheet.FilterMode Then
' para poder añadir filas a las tablas hay que quitar los filtros
    ActiveSheet.ShowAllData
End If
With Range("Table1").ListObject
    .ListRows.Add
    .ListRows(.ListRows.Count).Range(1, 1).Value = TextBox1
    .ListRows(.ListRows.Count).Range(1, 2).Value = ComboBoxPais.Value
    .ListRows(.ListRows.Count).Range(1, 3).Value = TextBox3
    .ListRows(.ListRows.Count).Range(1, 4).Value = TextBox4
    .ListRows(.ListRows.Count).Range(1, 5).Value = TextBox5
End With
If Not ComboBoxPais.MatchFound Then
    With Range("Tabla2").ListObject
        .ListRows.Add
        .ListRows(.ListRows.Count).Range(1, 1) = ComboBoxPais.Value
        ' y ordenamos la lista, para que quede mejor
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
    End With
End If

TextBox1 = Empty
ComboBoxPais = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty

Range("Table1").Select
ActiveWorkbook.Save

UserForm1.Hide

End Sub
 

Adjunto el archivo de ejemplo

------
Ya sé Excel, pero necesito más ahora en pdf

AdjuntoTamaño
File ejemplo.xlsm26.18 KB

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: Listas de Validación

Muchusisimas Gracias a los dos!.

Como dirían en donde vivo, mis respetos!.

De verdad gracias por compartir ese conocimiento!

 

Saludos,

Jesús