Ordenar rango de celdas en diferentes hojas

Señores Expertos
Estoy con esta dificultad más de una semana, por favor solicito su ayuda para el siguiente problema
Tengo un archivo con tres hojas de Excel (hoja1, hoja2 y hoja3)
• En la hoja1 las celdas (A1, A2, A3 ……….. ) están con fechas (los rangos B1:Z1, B2:Z2, B3:Z3 ………… tienen otros datos)
• En la hoja2 las celdas (A1, A2, A3 ………..) tienen la formula ='hoja1'!A1, ='hoja1'!A2, ='hoja1'!A3 …………………. (los rangos B1:Z1, B2:Z2, B3:Z3 ………… tienen otros datos)
• En la hoja3 las celdas (A1, A2, A3 ……….. ) tienen la formula ='hoja1'!A1, ='hoja1'!A2, ='hoja1'!A3 …………………. (los rangos B1:Z1, B2:Z2, B3:Z3 ………… tienen otros datos)

Como puedo ordenar las celdas (A1, A2, A3 ……….. ) juntamente con los datos de los rangos B1:Z1, B2:Z2, B3:Z3 …………de la hoja1 y que al ordenar esta hoja (hoja1) automáticamente también se ordenen las celdas (A1, A2, A3 ……. ) y los rangos B1:Z1, B2:Z2, B3:Z3 ……………. De las hojas 2 y 3
Muchas gracias
Edwin

1 Respuesta

Respuesta
1

Puedes enviarme tu archivo con las hojas 1,2 y 3 con los datos tal y como los tienes. Y en otras 3 hojas a, b y c pones la información tal y como la requieres.

Para realizar lo que pides, necesito hacer una macro. Espero tu archivo para adaptar la macro.

Buenas tardes

Ya envíe el archivo

Gracias

Te envié el archivo con la macro

Saludos. Dante Amor

No olvides valorar la respuesta

Hola

Trate de utilizar la macro pero no pude y me sale esto

Cierra tu libro y vuelve a abrirlo, te aparece un mensaje de advertencia, en la pantalla que me enviaste arriba de las fórmulas dice: "Algún contenido activo se ha deshabilitado", presiona el botón Opciones y selecciona habilitar macros.

O puede ser así

¡Gracias! Perfecto, eres realmente un experto

Saludos y gracias

Podrías valorar la respuesta, te toma solamente un minuto.

Esta es la macro para ordenar:

Sub ordenar()
'Por.Dante Amor
    Application.ScreenUpdating = False
    hojas = Array("Identificación de Peligros", "Evaluacion del Riesgo Inicial", "Medidas de Control de Riesgos", "Evaluacion del Riesgo Actual")
    c1 = Array("B", "B", "C", "C")
    c2 = Array("C", "C", "D", "D")
    ini = hojas(0)
    For h = 1 To UBound(hojas)
        Set h2 = Sheets(hojas(h))
        h2.Columns(c1(h) & ":" & c2(h)).Copy
        h2.Range(c1(h) & "1").PasteSpecial Paste:=xlValues
    Next
    For h = 0 To UBound(hojas)
        Set h1 = Sheets(hojas(h))
        c = c1(h)
        u = h1.Range(c & Rows.Count).End(xlUp).Row
        cu = h1.Range("A6").SpecialCells(xlLastCell).Column
        With h1.Sort
         .SortFields.Clear: .SortFields.Add Key:=h1.Range(c & "6:" & c & u), _
            SortOn:=xlSortOnValues, Order:=xlAscending
         .SetRange h1.Range(h1.Cells(5, c1(h)), h1.Cells(u, cu)): _
         .Header = xlYes: .Orientation = xlTopToBottom: .Apply
        End With
    Next
    For h = 1 To UBound(hojas)
        Set h1 = Sheets(hojas(h - 1))
        Set h2 = Sheets(hojas(h))
        For i = 6 To h2.Range(c1(h) & Rows.Count).End(xlUp).Row
            Set b = h1.Columns("B:C").Find(h2.Cells(i, c1(h)))
            If Not b Is Nothing Then
                h2.Cells(i, c1(h)) = "='" & h1.Name & "'!" & b.Address(False, False)
                h2.Cells(i, c2(h)) = "='" & h1.Name & "'!" & b.Offset(0, 1).Address(False, False)
            End If
        Next
    Next
    Application.ScreenUpdating = True
    MsgBox "Hojas ordenadas", vbInformation
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas