Macro para ordenar alfabéticamente en VBA/Excel

Resuelto
styvea Mensajes publicados 36 Estado Miembro -  
styvea Mensajes publicados 36 Estado Miembro -
Bonjour,

me gustaría saber si existe una macro en Excel que permita clasificar alfabéticamente una tabla según una columna específica, por favor.

He intentado usar "grabar una macro" y hacerlo con el ratón, pero no veo qué cambiar para obtener lo que quiero...

Aquí está el código que obtuve:

Sub orden_alpha() ' ' orden_alpha Macro ' ' Range("A1:K18").Select ActiveWorkbook.Worksheets("Marzo").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Marzo").Sort.SortFields.Add Key:=Range("B2:B18"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Marzo").Sort .SetRange Range("A1:K18") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub


Marzo es el nombre de la hoja actual, pero dado que la hoja puede cambiar en cualquier momento, necesitaría algo como ActiveSheets. Y dado que el tamaño de la tabla es variable, necesitaría un rango que seleccione toda la tabla de la página.

He intentado con este código:

Sub Macro3() ' ' Macro3 Macro ' ' nbc = UsedRange.Columns.Count nbl = UsedRange.Rows.Count UsedRange.Columns.Count.Select ActiveWorkbook.ActiveSheet.Sort.sortfiels.Clear ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("B2:nbl"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets.ActiveSheet.Sort .SetRange Range("nbl:nbc") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub 

Pero no funciona y realmente no puedo ver dónde está el error...

Gracias a quienes puedan ayudarme :) Cordialmente

StyveA

Configuración: Windows 7 / Internet Explorer 8.0

1 respuesta

  1. g Mensajes publicados 1285 Estado Miembro 578
     
    Hola,

    Sub TriAlpha()
    Range("A1:Z1000").Sort Key1:=Range("B1"), Order1:=xlAscending
    End Sub

    Esta macro ordena alfabéticamente en la columna B en el rango A1:Z1000 (que por supuesto se puede adaptar).

    Que tengas un buen día.
    17
    1. styvea Mensajes publicados 36 Estado Miembro 2
       
      ¡Oh, eso es corto en comparación con lo que he sacado, jaja...

      ¡Muchas gracias, probaré eso de inmediato!
      (Supongo que funcionará en la hoja en curso, ¿no?
      0