Jump to content
JSDJSD

No encuentro la manera de ordenar alfabéticamente mi listbox

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

Share this post


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

 

Share this post


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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




×
×
  • Create New...

Important Information

Privacy Policy