Saltar al contenido

Unicos en Combobox ActiveX


Gerson Pineda

Recommended Posts

publicado

Hola:

Otra opción con AdvancedFilter, pero filtrando sobre la última columna de la hoja, de esta forma podemos ordenar la lista por orden alfabético

Por supuesto que esa columna debe estar disponible.

Válido para todas las versiones de Excel.

La macro debe estar en la Hoja/Formulario en función de la ubicación del combobox.

Saludos

[SIZE=3][B]Sub Unicos_Combobox_MA[/B][/SIZE]()

[U][COLOR=#008000]'Obtenemos la dirección de la última columna[/COLOR][/U]
últimacolumna = Split(Cells(1, Columns.Count).Address, "$")(1)

[U][COLOR=#008000]'Filtramos sobre la última columna[/COLOR][/U]
Columns(1).AdvancedFilter xlFilterCopy, Unique:=True, CopyToRange:=Range(últimacolumna & "1")

[U][COLOR=#008000]'Obtenemos la última fila de datos del filtro[/COLOR][/U]
últimafila = Range(últimacolumna & Rows.Count).End(xlUp).Row

[COLOR=#008000]'Ordenamos y llenamos el combobox con el filtrado[/COLOR]
Columns(Columns.Count).Sort Key1:=Columns(Columns.Count)
ComboBox1.List() = Range(últimacolumna & "1:" & últimacolumna & últimafila).Value

[U][COLOR=#008000]'Eliminamos la última columna[/COLOR][/U]
Columns(Columns.Count).Delete

[B]End Sub[/B]
[/CODE]

publicado

Antoni me gusta!, de hecho (tu propuesta) es la que mas utilizo... pero me propuse a trabajarlo desde la misma columna (en memoria), sin la necesidad de recurrir a otra parte de la hoja, el primer método que aplico es precisamente "AdvancedFilter", el segundo y muy conocido "Dictionary"

Saludos

  • 2 weeks later...
publicado

Hace unos dias estaba buscando algo parecido para un formulario que hice para un control de almacen, estudiare el codigo para aprender y aplicarlo.

Saludos.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.