En ocasiones asignamos colores diferentes a las etiquetas de las hojas de un libro en Excel para indicar que el contenido de las mismas está relacionado de alguna manera. Por ejemplo, podemos usar el color amarillo para indicar que los datos que contienen esas hojas corresponden a la industria y el color púrpura para indicar que el contenido se refiere a una empresa particular de la industria.
Excel identifica los colores como una característica particular indicando un número índice a cada color; de esta manera, si se etiqueta las hojas con colores diferentes se podrá agrupar las hojas de acuerdo a esta característica.
Esta macro comparará en forma reiterativa el número índice del color de una hoja etiquetada con su inmediata anterior; si ésta tiene el mismo número, la moverá al lugar inmediato posterior.
El texto sería el siguiente:
Sub GroupbyColor ()
‘Paso 1: Declarar las variables
Dim CurrentSheetIndex As Integer
Dim PrevSheetIndex As Integer
‘Paso 2: Establecer el conteo e iteración inicial
For CurrentSheetIndex = 1 To Sheets.Count
For PrevSheetIndex = 1 To CurrentSheetIndex - 1
‘Paso 3: Comparar la hoja actual con la hoja previa
If Sheets(PrevSheetIndex).Tab.ColorIndex = _
Sheets(CurrentSheetIndex).Tab.ColorIndex Then
‘Paso 4: Si cumple con la condición mover la hoja previa al lugar inmediato posterior
Sheets(PrevSheetIndex).Move _
Before:=Sheets(CurrentSheetIndex)
End If
‘Paso 5: Iniciar el bucle para iterar la macro
Next PrevSheetIndex
Next CurrentSheetIndex
End Sub
Ejemplo: Group Worksheets by Color
01/04/2017 a las 11:49 pm
quiero diseñar una macro que dependiendo de un valor en una hoja inicial, cambie el color de la etiqueta de una hoja especifica
digamos en la "hoja1" tengo una tabla una columna es "nombre" la otra es "Puedo prestarle" las siguientes hojas son para cada una de las personas, pero quiero que el color de la etiqueta por persona cambie de color, verde para SI y rojo para NO