Otras ediciones de ExcelTips han proporcionado formas de ordenar las hojas de trabajo en su libro de trabajo según el nombre de la hoja de trabajo. Sin embargo, ¿qué sucede si desea ordenar las hojas de trabajo según un valor en una celda determinada de cada hoja de trabajo? Por ejemplo, puede tener una serie de hojas de trabajo que comparten el mismo diseño general y desea que las hojas de trabajo se ordenen según el valor de la celda H7 de cada hoja de trabajo.

La única forma de manejar esto es con una macro. La macro debe recorrer cada hoja de trabajo en el libro de trabajo y luego verificar la celda clave en cada hoja de trabajo posterior para ver cómo se compara con la misma celda en otras hojas de trabajo. Si el valor de la celda es menor que la hoja de trabajo actual, entonces la hoja de trabajo que contiene el valor menor se puede mover.

Sub SortWksByCell()

Dim i As Integer     Dim j As Integer

For i = 1 To Worksheets.Count         For j = i To Worksheets.Count             If UCase(Worksheets(j).Range("H7")) < _               UCase(Worksheets(i).Range("H7")) Then                 Worksheets(j).Move Before:=Worksheets(i)

End If         Next     Next End Sub

Tenga en cuenta el uso del método Move, que realiza el movimiento real de las hojas de trabajo. Los nombres de las hojas de trabajo no importan, solo su posición según el valor en la celda H7 de cada hoja de trabajo.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (12448) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.

Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Ordering_Worksheets_Based_on_a_Cell_Value [Ordenar hojas de trabajo basadas en un valor de celda].