Ordenar en distintas hojas de Excel los datos introducidos según sus características identificativas

Hola Experto, tengo un problema con unas tablas haber si me puedes ayudar por favor, te agradesco de antemano la ayuda, te explico
en la Hoja1 adiciono datos, de esta manera, A5=Nombre ; B5=Apellido ; C5= Edad ; D5=fecha nacimiento ; E5= Sueldo ; F5= Impuesto
y así sucesivamente en A6; B6;C6;D6;E6;F6
hasta N nombres
Mi pregunta y problema es que necesito, que en base a la edad se acomoden en la Hoja2 de forma ordenada, tomando en cuenta la edad, osea que vayan de menor a mayor, este cambio tendría que ser automático, al ir insertando los datos, se vayan acomodando en la Hoja2, y si hay dos o más que tengan la misma edad no importa, pero que estén juntos, ¿se puede hacer esto? Te agradecería mucho la ayuda, es urgente... Espero tu respuesta, un saludo

1 respuesta

Respuesta
1
Prueba esta macro y cuéntame como te fue, reemplaza las celdas que te señalo.
Sub Ordenarx()
    Dim w1 As Worksheet
    Dim w2 As Worksheet
    Set w1 = Worksheets(1)
    Set w2 = Worksheets(2)
    '''''''''''''''''''
    Encabezado1 = "A5" 'celda donde empieza el emcabezado de la hoja1
encabezado2 = "A5" 'celda donde quieres que empieza la tabla en la hoja2
    '''''''''''''''''''
    Application.ScreenUpdating = False
    w2.Select
    W2. Range(encabezado2, Range(encabezado2). SpecialCells(xlLastCell)). ClearContents
w1.Select
    w1. Range(encabezado1, Range(encabezado1). SpecialCells(xlLastCell)). Copy w2. Range(encabezado2)
    w2.Select
    Range(encabezado2, Range(encabezado2).SpecialCells(xlLastCell)).Sort Key1:=Range("C5"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    w1.Select
    Application.ScreenUpdating = True
End Sub
Estimado experto, te agradezco mucho la ayuda, comentarte que la macro funciona bien, solo me falta consultarte si es que hay la forma de hacer que se modifiquen los datos de forma instantánea, al ir introduciendo los datos, yo inserté un botón a la cual le asigné la macro, pero necesito saber si es posible de alguna forma que los datos se cambien al momento de introducir los datos en la hoja 1, espero tu respuesta, gracias por la ayuda, un saludo...
Ok, vas a insertar en el modulo este código
Sub Ordenarx()
    Dim w1 As Worksheet
    Dim w2 As Worksheet
    Set w1 = Worksheets(1)
    Set w2 = Worksheets(2)
    '''''''''''''''''''
    Encabezado1 = "A5" 'celda donde empieza el emcabezado de la hoja1
encabezado2 = "A5" 'celda donde quieres que empieza la tabla en la hoja2
    '''''''''''''''''''
    Application.ScreenUpdating = False
    w2.Select
    W2. Range(encabezado2, Range(encabezado2). SpecialCells(xlLastCell)). ClearContents
w1.Select
    w1. Range(encabezado1, Range(encabezado1). SpecialCells(xlLastCell)). Copy w2. Range(encabezado2)
    w2.Select
    Range(encabezado2, Range(encabezado2).SpecialCells(xlLastCell)).Sort Key1:=Range("C5"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    w1.Select
    Application.ScreenUpdating = True
End Sub
Function verificar(fila As Integer, cdesde As Integer, chasta As Integer) As Boolean
    While (cdesde <= chasta)
    If Cells(fila, cdesde) = 0 Then
        verificar = False
        Exit Function
    End If
        cdesde = cdesde + 1
    Wend
    verificar = True
End Function
y en el codigo de la hoja, click derecho en la pestaña->ver codigo insertaras este
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lector As String
Dim c1 As Integer, c2 As Integer
c1 = 1
c2 = 6
f = 5
If Not Application.Intersect(Target, Range(Columns(c1), Columns(c2))) Is Nothing Then
    If Target.Row > f Then
        If (verificar(Target.Row, c1, c2)) Then
            Call Ordenarx
        End If
    End If
End If
End Sub
Estimado Experto, gracias por la ayuda, esto me va a ayudar mucho para el desarrollo de mi trabajo, infinitamente agradecido, y espero puedas seguir ayudando a los que no sabemos bien todavía, un abrazo y nuevamente gracias...
Funciona de maravilla!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas