VBA sincronizar dos Combobox

En una hoja llamada "variables", tengo tres columnas d, e, f, g en su orden respectivo, con encabezado, tengo:

d e f g h

1 pare blanco 1cub pintura pura para pared

2 pare negro 2cub pintura de segunda

3 pare azul 6cub pintura pura

4 piso blanco 3cub pintura de segunda

5 piso rojo 2cub pintura a precio especial

6 techo azul 1cub pintura a mitad de precio

Etc

Necesito en un formulario en un combobox1 que me saque sin repetir la columna e es decir una sola vez pare, piso, techo y en el combobox2 me traiga lo de la f dependiendo el que eligió en la e. Y en un ListBox me coloque lo de la g y la h que hace referencia a esa combinación, cuando le de doble click algún dato que sale en el listbox el me envíe la información a la hoja llamada "base" a partir de la fila 2 y columna 5, estos dos datos de g y h, y si doy otro doble click me pegue una fila mas abajo de donde ya pegue anteriormente.

1 Respuesta

Respuesta
1

En el siguiente enlace te dejo un ejemplo ya construido

http://es.tbox.ws/2BE67I

No olvides finalizar la consulta

Experto disculpa, los valores que me debe dar en el listbox son los de la columna que le colocaste DATO3 y DATO4, si filtro DATO1 = Pare y Dato2 me esta trayendo bien los datos como me lo pasaste, lo único es que me muestre en el listbox de esta combinación todas las posibles respuestas que estén en DATO3 y DATO4. Porque yo puedo tener asi también adicionandoselo al ejemplo anterior estos datos:

DATO1 DATO2 DATO3 DATO4

pare blanco 1cub Pintura puera para pared

pare blanco 2cub pintura de segunda

pare blanco 3cub pintura de tercera

entonces al filtrar COMBOBOX1: pare me va a salir COMBOBOX2 que blanco, azul, negro (con el ejemplo anterior), al escoger blanco, en el listbox debe votarme

1cub pintura pura para pared

2cub pintura de segunda

3cub pintura de tercera

Cabe anotar que el COMBOBOX2 como va a tener repetido el valores solo muestre uno y automáticamente en el LISTBOX me muestra las 3 opciones para la combinacioon pare - blanco.

No se si soy claro, experto de antemano gracias.

Ok, entonces te mando la macro que tienes que modificar

Sustituye toda la macro combobox2_click por esta

Private Sub ComboBox2_Click()
v1 = ComboBox1.Value
v2 = ComboBox2.Value
Set busca = Sheets("datos").Range("e1:e20").Find(v1, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.Address
Do
If busca.Offset(0, 1).Value = v2 Then
ListBox1.AddItem busca.Offset(0, 2)
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = busca.Offset(0, 3)
End If
Set busca = Sheets("datos").Range("e1:e20").FindNext(busca)
Loop While Not busca Is Nothing And busca.Address <> ubica
End If
End Sub

Eso experto, pero falto que el combo 2 me traiga únicos, pero en el listsbox me siga mostrando todos los que tiene la combinación pare blanco, las 3 opciones o 10 opciones, pero en el combobox2 solo me salga un blanco.

Gracias

Perdona no entiendo: si tomamos pare del combo1 tiene 3 colores en concordancia por lo que el combo2 debe sacar sus 3 colores

Si experto, seria asi:

pare blanco 1cub ......

pare blanco 2cub

pare blanco 3cub

pare azul 2cub

pare morado 1cub

techo blanco 1cub..

entonces al elegir COMBOBOX1 = pare el COMBOBOX2 debe sacar blanco - azul - morado,

una sola vez el blanco. Me esta saliendo las tres veces el blanco mas el azul y mas el morado.

Luego que escoja COMBOBOX1 = pare COMBOBOX2 = blanco, el listbox si debe sacaqr todalas los opciones de esos dos filtros de DATO3 y DATO4.

Me dices si no me explique bien, gracias experto por tu ayuda.

Yo cuando elijo Pare en el segundo combo solo tengo blanco, azul y negro.

¿Qué archivo tienes?

Además revisa tus datos, yo estoy trabajando con los PRIMEROS que has mandado. Revisa la primera vez que preguntaste, ahora aparece un morado que antes no había...

Si experto, lo que pasa es que no te coloco todas las combinaciones posibles que puedo tener, por eso le coloco puntos suspencibos o etc.

Mira te voy a explicar mejor, hay una columna que tu le llamaste DATOS1 otra DATOS2 - DATOS3 - DATOS4. En DATOS1 hay muchos nombres que se repiten y en DATOS2 también se repiten, pero la combinación de DATOS1 y DATOS2, hacen que aparezca un DATOS3 y una observación que es DATOS4. Lo que necesito es que el COMBOBOX1 traiga datos de DATOS1 sin duplicados y la macro que me enviaste lo esta haciendo, luego que escoja el valor en DATOS1 (COMBOBOX1) paso a escoger el COMBOBOX2 que trae los datos de DATOS2 que dependen de COMBOBOX1(DATOS1), aquí en este paso los esta filtrando pero no únicos, sino que me salen repetidos ya que hay datos iguales en DATOS1 y DATOS2 pero que se diferencia en DATOS3 y DATOS4, los cuales ya me están saliendo bien en el LISTBOX, te voy a dar un ejemplo de como están los datos para que entiendas:

DATOS1 DATOS2 DATOS3 DATOS4

pare blanco 1cub pintura pura para pared

pare negro 2cub pintura de segunda

pare azul 6cub pintura pura

piso blanco 3cub pintura de segunda

piso rojo 2cub pintura a precio especial

techo azul 1cub pintura a mitad de precio

pare blanco 2cub pintura de segunda

pare blanco 3cub pintura de tercera

pare morado 1cub pintura pared pura

techo blanco 1cub pintura techo pura

techo azul 2cub pintura de segunda

etc. (son mas de 3000 registros combinados asi)

Entonces, las combinaciones se repiten en DATOS1 y DATOS2, pero si se toma DATOS1, DATOS2 y DATOS3 ya esa combinación no se repite. Que necesito que el COMBOBOX1 no repita los datos (eso ya lo hace), el COMBOBOX2 me muestre solo los que tienen que ver con el valor escogido en COMBOBOX1 (ya lo hace, pero que no me los repita) y por ultimo cuando tengo estos dos escojidos en el LISTBOX si me aparezcan todos los datos de esta combinación, ejemplo anterios:

COMBOBOX1 = pare COMBOBOX2 = (blanco - negro - azul - morado - no me debe repetir los otros colores que también pertenecen a pare pero los muestre solo una vez) escojo blanco y el listbox debe mostrarme:

1cub pintura pura para pared

2cub pintura de segunda

3cub pintura de tercera

Creo que esta mas claro, disculpa sino me he hecho entender bien. Gracias por tu ayuda.

Para demostrarte que funciona, en el siguiente enlace te dejo un vídeo en que realizo tu último supuesto.

http://es.tbox.ws/2BEZWE

No olvides finalizar la consulta

Buenas experto que pena, si miras en el video todo esta bien, lo único es que en el combobox2 sale 3 veces la palabra blanco ya que tiene 3 combinaciones con pare, la idea es que solo me muestre UN solo blanco y en el listsbox si me muestre el resultante de estas dos combinaciones osea 3 respuestas. Mira Yveras que el COMBOBOX2 se repite las opciones lo demas esta sacando bien la informacion.

Gracias

En el siguiente enlace tienes la solución al problema

http://es.tbox.ws/2BEgQK

No olvides finalizar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas