Jump to content

No encuentro la manera de ordenar alfabéticamente mi listbox


JSDJSD

Recommended Posts

Buenas @JSDJSD

Puedes usar

Private Sub UserForm_Initialize()
    Dim hoja As Worksheet
    Dim u As Long
    Dim datos()
    Dim i As Long
    u = Worksheets.Count
    ReDim datos(1 To u)
    For Each hoja In Sheets
        i = i + 1
        datos(i) = hoja.Name
    Next
    OrdenarLista datos
End Sub
Private Sub OrdenarLista(Vector As Variant)
      
    Dim iMin    As Long
    Dim iMax    As Long
    Dim Vectemp As String
    Dim Pos     As Long
    Dim i       As Long
      
    iMin = LBound(Vector)
    iMax = UBound(Vector)
      
    While iMax > iMin
        Pos = iMin
        For i = iMin To iMax - 1
            If Vector(i) > Vector(i + 1) Then
            Vectemp = Vector(i + 1)
            Vector(i + 1) = Vector(i)
            Vector(i) = Vectemp
            Pos = i
            End If
        Next i
        iMax = Pos
    Wend
    ListBox1.List() = Vector
End Sub

Un saludo

Link to post
Share on other sites
Guest Cacho R
Hace 7 horas, JSDJSD dijo:

He probado de varias maneras pero no consigo ordenar alfabéticamente  mi listbox.

Hola! @JSDJSD (y @logroastur). Otra manera sería:

Private Sub UserForm_Initialize()
Dim ws As Worksheet
Application.ScreenUpdating = False
With Workbooks.Add(xlWBATWorksheet).Sheets(1)
  For Each ws In ThisWorkbook.Worksheets
    .Cells(.Rows.Count, "a").End(xlUp).Offset(1) = ws.Name: Next
  .[a2].CurrentRegion.Sort .[a2], 1, Header:=2
  ListBox1.List = .[a2].CurrentRegion.Value
  .Parent.Close False
End With
Application.ScreenUpdating = True
End Sub

 

Link to post
Share on other sites

Muchísimas gracias logroastur y Cacho R  las dos opciones me funcionan a la perfección.

Gracias a vosotros cada día adquiero un poquito más de conocimientos en excel y espero que algún día sea yo el que esté al pie del cañón ayudando a resolver las dudas de los demás.

Tema solucionado

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
a


  • Crear macros Excel

  • Posts

    • Me sucedió algo similar en una ocasión con códigos postales y mi solución fue darles a todas las celdas de la columna el formato a texto.
    • Otra de mis tonterias, pero que conste que solo intento ayudar. Has probado ha darle a las celdas donde se copian los datos, formato de celda como texto? Si las pones como texto te mantienen el 0 delante. Boton derecho en celdas, formato de celdas, texto.
    • Hola a todos. Os pido ayuda con este proyecto que estoy haciendo. Tal y como lo tengo ya me funciona, pero veo que tarda en recorrer demasiado las filas, creo que porque estoy usando FOR NEXT. No se si hay manera de hacerlo correr más rápido, con WHILE por ejemplo o de otra manera. Os envío el proyecto y os agradezco si me podéis ayudar porque no veo capaz. El problema viene en la hoja Plantilla_Parte_KM, cuando uso los botones para recorrer las matrículas, la busca en una hoja con este bucle. Si la encuentra pronto no hay problema, pero si no la encuentra o está lejos en el contador del bucle se hace lento. Como siempre gracias de antemano. Moisés.   Plantilla PARTE KM (v.1).xlsm
    • La celda F7 contiene una fórmula, que es la que se copia luego y como resultado me da "03" y lo que necesito es que cuando se copie como valor se muestre el resultado con el cero adelante
    • Hola YianTheJop, la celda F7 contiene lo que se va copiar y luego se copia desde la celda F11 hacia abajo (hasta la altura de la  última fila con datos de la columna B y lo que necesito que cuando lo copie desde la celda F11 hacia abajo sea como valores 
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy