Ordenar un Combobox

Estoy buscando la forma de ordenar un combobox. He visto que se podía hacer con la propiedad Stored "true" pero yo no la tengo. ¿Habría algún código para ello?

1 Respuesta

Respuesta
2
Explicame a que te refieres con ordenar, ¿es a ordenar de forma ascendente o descendente?
Acalramé esto
>Un saludo
>Julio
Hola:
Lo que quiero es que al desplegar el combobox me muestre la lista por orden alfabético de la A a la Z para poder elegir rápidamente.
Cuando vas metiendo las referencias, las vas metiendo sin ningún orden y claro cuando despliegas el combobox que hace referencia a esa lista te lo muestra tal y como lo metiste.
Un saludo.
El Combobox te muestra la lista tal cual la tienes en la hoja, si la quieres ordenada primero hay que ordenar los datos en la hoja, y después cargarla en el Combobox, no es posible modificar los datos del combo sin modificarlos en la hoja, existe la propiedad AutoWordSelect que te sirve para ir poniendo caracteres en el combo y te va mostrando los que coinciden con los datos de la lista así es posible localizar sin ver todos.
Si necesitas el procedimiento para ordenar los datos de la hoja me lo dices aunque puedes utilizar la grabadora de macros para que muestre la sintaxis del procedimiento.
>Un saludo
>Julio
PD: Si te ha servido comenta, puntúa y finaliza la consulta.
Hola:
Ayer se me ocurrió lo de la grabadora de Macros. Este es el código (después de limpiarlo un poco de todo lo extra que crea la grabadora) y funciona.
Columns("A").Select           
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending
Lo que no entiendo es porque al escribir el código y llegar a un punto (ejem Columns("A")., Selection. ) Generalmente te aparece un desplegable las opciones del objeto pero en este caso si lo escribo no aparece este desplegable y en cambio funciona. Cuando no van apareciendo los desplegables generalmente es porque hay algún error.
Este es el macro que escribí
Sub actualiza_y_carga()
'servira para cargar el combo del form1 y para actualizarlo
   UserForm1.ComboBox1.Clear 'limpia
        u = Range("A" & Rows.Count).End(xlUp).Row 'obtiene ela ultima fila c/datos
   Columns("A").Select    'ordenamos por orden alfabético.
        Selection.Sort Key1:=Range("A1"), Order1:=xlAscending
   For i = 1 To u 'bucle para cargar
        UserForm1.ComboBox1.AddItem Range("A" & i).Value
Next
End sub
Un saludo
Bien estupendo, dime que quieres que te asesore, si te funciona así dime cual es ahora tu consulta.
>Un saludo
>Julio
Sólo saber porqué no salen los desplegables. ¿Qué no salgan los desplegables no significa que algo no se está haciendo bien?
Estas confundiendo el Autofiltro con la ordenación de datos por el tipo que sea (ascendente, descendente) las flechitas en las cabeceras aparecen cuando realizas un Autofiltro no cuando seleccionas un rango y ordenas.
Me parece que es a esto a lo que te refieres, si no es así me lo aclaras y buscaremos la solución.
>Un saludo
>Julio
Hola Julio:
No me refiero al Autofiltro, me refiero a cuando vas escribiendo el código. Cuando escribes el "." de "Columns("A")." te aparece un desplegable con las opciones que puedes elegir dentro de la clase Columns (Activate, AddComent, AddIndent, Address, ...). Lo que me ocurría al escribir el código que me ponía la grabadora de macros era que no aparecía este desplegable con las opciones dentro de cada clase. ¿Esto puede significar que hay algún error? ¿Por qué no me van apareciendo los desplegables?
Un saludo
Aahhhhhh era eso, VBA te propone las opciones de funciones que puedes aplicar a las diferentes clases, SOLO cuando estas escribiendo el código, cuando lo has grabado con la grabadora ya está creado el código en función de los pasos que has hecho en Excel. Si después quieres modificar el código tienes que cambiarlo tú en base al creado por Excel.
Espero que te haya servido la aclaración.
>Un saludo
>Julio
Ya, mi pregunta es que si yo por otro lado, en otro trabajo, escribo el mismo código que ha grabado la grabadora no me van saliendo los desplebles.
Me ha ocurrido también con la última solución que me diste sobre búsquedas. Si la voy escribiendo no me van saliendo los desplegables pero en cambio funciona.
¿No quiere decir que hay algo mal programado que a la larga de errores?
Para comprobar si funciona abre un libro de Excel nuevo, pulsas ALT+F11 y se abrirá el editor de VBA pulsa arriba en Herramientas>Opciones y en la pestaña Editor comprueba que todas las opciones estén activadas ( menos requerir declaración de variables) por si alguna vez no las declaras y da error.
Ahora escribes (escribes no copias) insertando un modulo:
Sub probar()
<address>ActiveCell. (cuando escribas el punto te debe de aparecer el desplegable)</address><address>Comprueba esto</address><address>>Un saludo</address><address>>Julio
</address>
Hola Julio:
He comprobado lo que me dices y lo tengo tal y como indicas. Mi duda sigue siendo porque si teniendo todas las opciones que dices activadas, porque al escribir (no pegar) un código sacado de la grabadora de macros no van saliendo esos desplegabes (pero en cambio la macro funciona correctamente).
Un saludo
Desconozco el código que comentas, puedes ponerlo aquí y veo si es necesario que te aparezcan los desplegables, como tu dices, de todas formas si has hecho la prueba en un libro nuevo y funciona la proposición de las clases tampoco te preocupes más, normalmente no existen problemas con el editor de VBA si por alguna causa se corrompe la instalación de Office no solo notaras problemas en VBA sino también en Word y en el propio Excel... etc
>Un saludo
>Julio
Hola Julio:
Por ejemplo. Lo que la grabadora me saca es este código
Columns("A").Select           
Selection.Sort Key1:=Range("A1"), Order1:=xlAscendin
Si lo voy a escribir yo, escribo
1º Columns( 'al escribir el paréntesis ya me reconoce la función y me sale un mensaje que pone "_Default([RowIndex],[ColumnIndex])"
2º continuo escribiendo el "A") con lo que ya tendría... Columns("A")
3º pero ahora al escribir el punto no me sale el desplegable que me permita seleccionar Select
¿Alguna idea?
Desplegables" aparecen cuando existen posibilidades de elección fija y solo las que aparecen se pueden utilizar(propiedades) en tu caso para la sentencia Columns(... te da solo las dos posibilidades que admite este control, Columns("A"). No aparece ningún desplegable porque las posibilidades que tienes a partir de esa sentencia no son fijas varían en función de lo que quieras hacer con Columns("A") por ejemplo
Worksheets("Hoja1").Columns(1).Font.Bold = True
Aquí estamos dando formato a las celdas de toda la Col A
Mira te dejo un manual de VBA y para aprender hay que leer, no queda otra.
http://ing.unne.edu.ar/pub/informatica/VBA_Excel.pdf
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas