UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

jhon1904


hola, amigos

estoy tratando de hacer un filtro con valores  único en un formulario que maneja 4  combobox, el filtro depende del combobox que  esta en la clasificacion, y   dependiendo  el que seleccione me filtrara valores unicos sin repetirse.

subo archivo

espero que alguien me pueda ayudar

saludos, Dios lo bendiga

jhon
Archivos
filtrar.xlsm
No tienes los permisos para descargar los archivos.
(27 KB)

tyno


Hola Jhon.

Aplica este código al combobox CTRL1, el mismo rellenara con valores únicos el combobox "ctrl2", luego si quisieras hacer lo mismo para los demás combobox solo tienes que repetir el código y cambiar las referencias.

Saludos

Private Sub CTRL1_Change()
On Error Resume Next
Dim combo1 As New Collection
Dim dato

'limpiar combobox ctrl2
ctrl2.Clear

'rellenar con valores únicos la colección  combobox1 
For a = 2 To Range("a1000000").End(xlUp).Row
If Cells(a, 1) = CTRL1 Then combo1.Add Cells(a, 3), CStr(Cells(a, 3))
Next a

'ordenar los datos de la colección combobox1
For i = 1 To combo1.Count - 1
For j = i + 1 To combo1.Count
If combo1(i) > combo1(j) Then
ref1 = combo1(i)
ref2 = combo1(j)
With combo1
 .Add ref1, before:=j
 .Add ref2, before:=i
 .Remove i + 1
 .Remove j + 1
End With
End If
Next j
Next i

'cargar el combobox ctrl2 con valores únicos
For Each dato In combo1
ctrl2.AddItem dato
Next dato

End Sub

jhon1904


hola, ttyno

gracias por contestar,

1- la codigo solo rellena el primer conbobox1
2 - hay un error en el codigo pone lo ceros
3- cuando uno selecciona la clasificación se tienen que llenar los otros combobox según el criterio del label que hay:

los label representan la categoría a la que se encuentra cada clasificacion, si uno selecciona ventas los otros combobox se rellenaran dependiendo la categoría si es pensión, arl o salud

espero me entiendas

saludos

jhon

jhon1904


hola, tyno


para que me entiendas un poco mejor

con el ejemplo que le envié si en clasificación esta seleccionada la opción "Administrador" ,


en el primer combobox que representa Pensión solo me tendrá que salir tres valores los cuales serian " Colsubdisdio, Aseguradora y Col pensiones"


en el siguiente combobox que representa la "salud, los valores únicos que saldrían son " Cafesalud Y saludcoop"

y en el ultimo combobox que representan las "Arl", los valores únicos que saldrían seria " es Alr1 hasta el Alr9"

espero me comprendas mejor lo que necesito

gracias
por su tiempo y colaboración, Dios lo bendiga

saludos

jhon

tyno


Es un poco raro, parece como que estas hablando de un archivo distinto al que subiste, porque acabo de probarlo y no veo los ceros que mencionas. También veo que una misma columna se mezclan los valores Colsubdisdio, Aseguradora, Col pensiones, Alr1, Alr2,... etc.

Subo tu archivo con el código que te he pasado.

Como creo que se trata de un archivo de ejemplo el que has pasado hice que el código cargue valores únicos solo para el combobox ctrl2. Dicho código toma los valores de la columna C "Nombre", quita los duplicados, los ordena y los asigna al combobox ctrl2. Por eso te mencionaba en el correo anterior que si esto es lo que te sirve después tienes que repetir el código y adaptar las referencias para los demás combobox. Cualquier duda me avisas. Saludos
Archivos
filtrar.zip
No tienes los permisos para descargar los archivos.
(29 KB)

jhon1904


hola, tyno

es el mismo archivo, gracias por el codigo lo mire y lo adapte a lo que necesitaba.


hay algo mal en el codigo de organizar, le subo el archivo a las adaptaciones según su código y mis necesidades

saludos

jhon
Archivos
filtrar.xlsm
No tienes los permisos para descargar los archivos.
(32 KB)

tyno


Hola Jhon.
¿has solucionado el tema?
Si no mira, cambia este valor y prueba:

For i = 2 To combo1.Count - 1

por

For i = 1 To combo1.Count - 1


esto deberías hacerlo para los 3 casos ¿se entiende?

Saludos

jhon1904


hola, tyno

gracias por tu ayuda fue de mucha utilidad

Dios lo bendiga

saludos

jhon

9RESUELTO Felicitaciones el 05/08/16, 03:23 pm

hhgarrotev


Estimado.

Desde hace un tiempo que desarrollo aplicaciones vba excel, de manera autodidacta, últimamente había logrado filtrar valores únicos en combobox dependientes, pero esta forma es mas sencilla, y permite aplicarla a cuantos combobox se me ocurran.
Muy agradecido y felicitaciones. cheers

10RESUELTO Modificación código el 07/08/16, 10:57 am

hhgarrotev


Estimados.

En mi caso, para mis listas, cambié i=2 por i=3 y todo perfecto

Saludos.

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.