macro base ordenar personalizado

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Responder
AlexRB
Miembro Frecuente
Miembro Frecuente
Mensajes: 9
Registrado: 28 Jun 2018 14:16

macro base ordenar personalizado

Mensaje por AlexRB » 01 Oct 2018 11:56

Hola buenos días tengo la siguiente macro:

Sub OrdenarHojas()
Range("A2").Sort Key1:=Range("A3"), Order1:=xlDescending, Key2:=Range( _
"B3"), Order2:=xlAscending, Header:=xlYes
Range("A1").End(xlDown).Offset(1, 0).Select
End Sub

se ordena por la columna a en forma descendente "4,3,2,1" pero necesito se ordene en el siguiente orden "3,2,4,1"

¿Me pueden ayudar de favor?
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.



Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
Mensajes: 6004
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: macro base ordenar personalizado

Mensaje por Antoni » 01 Oct 2018 12:20

Prueba esta macro:

Código: Seleccionar todo

Sub OrdenarHojas()
Application.ScreenUpdating = False
With ActiveSheet
   .Columns("A").Insert
   For x = 2 To .Range("B" & Rows.Count).End(xlUp).Row
      Select Case .Range("B" & x)
         Case 3: .Range("A" & x) = 1
         Case 2: .Range("A" & x) = 2
         Case 4: .Range("A" & x) = 3
         Case 1: .Range("A" & x) = 4
      End Select
   Next
   .UsedRange.Sort Key1:=.Columns("A"), Key2:=.Columns("B"), Header:=xlYes
   .Columns("A").Delete
End With
End Sub



AlexRB
Miembro Frecuente
Miembro Frecuente
Mensajes: 9
Registrado: 28 Jun 2018 14:16

Re: macro base ordenar personalizado

Mensaje por AlexRB » 01 Oct 2018 13:56

Gracias es lo que buscaba, saludos



Responder