Visual Basic para Aplicaciones - ordenar un combobox

Life is soft - evento anual de software empresarial
   
Vista:

ordenar un combobox

Publicado por mauricio olano (1 intervención) el 06/01/2010 17:10:40
hola,
me pueden ayudar indicandomen como ordeno los datos de un combobox ??
en visual de excel no existe la funcion sort. y no puedo ordenar los datos en excel.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:ordenar un combobox

Publicado por JuanC (431 intervenciones) el 07/01/2010 12:04:52
te dejo un algoritmo de ordenación y una forma de hacerlo en una hoja...

Public Sub tQuickSort(vArray As Variant, L As Long, R As Long)
' Array , LBound() , UBound()
Dim i As Long, j As Long
Dim X, Y
i = L
j = R
X = vArray((L + R) / 2)
Do While (i <= j)
DoEvents
Do While (vArray(i) < X And i < R)
i = i + 1
Loop
Do While (X < vArray(j) And j > L)
j = j - 1
Loop
If (i <= j) Then
Y = vArray(i)
vArray(i) = vArray(j)
vArray(j) = Y
i = i + 1
j = j - 1
End If
Loop
If (L < j) Then tQuickSort vArray, L, j
If (i < R) Then tQuickSort vArray, i, R
End Sub

Sub Sort()
Dim rListSort As Range, rOldList As Range
Dim strRowSource$
Sheet1.Cells.Clear 'Limpia hoja destino
'Toma columna para ordenar
Set rOldList = Sheet2.Range("A1", Sheet2.Range("A65536").End(xlUp))
'Copia datos usando filtro (puede eliminar duplicados)
rOldList.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheet1.Cells(1, 1) ', Unique:=True
'Establece rango de datos para ordenar
Set rListSort = Sheet1.Range("A1", Sheet1.Range("A65536").End(xlUp))
'Ordena
With rListSort
.Sort Key1:=.Cells(2, 1), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
'Toma dirección del rango ordenado
sRowSource = Sheet1.Name & "!" & Sheet1.Range _
("A2", Sheet1.Range("A65536").End(xlUp)).Address
'Carga datos en el objeto (ComboBox o ListBox)
With obj
.RowSource = vbNullString
.RowSource = sRowSource
End With
End Sub

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar