Probablemente ya sepa que puede cambiar el nombre de una pestaña de la hoja de trabajo haciendo doble clic en la pestaña y proporcionando un nuevo nombre. Sin embargo, ¿qué pasa si quieres hacerlo de forma dinámica? ¿Qué sucede si desea que el valor en la celda A1 aparezca automáticamente como el nombre de la pestaña?

Desafortunadamente, Excel no proporciona una función intrínseca para manejar este tipo de tareas. Es una tarea relativamente simple desarrollar una función de este tipo utilizando una macro que hará el trabajo por usted. Por ejemplo, la siguiente macro cambiará el nombre de la pestaña al contenido de A1:

Sub myTabName()

ActiveSheet.Name = ActiveSheet.Range("A1")

End Sub

Hay varios elementos importantes a tener en cuenta sobre esta macro. En primer lugar, no hay comprobación de errores. Esto significa que si A1 contiene un valor que sería ilegal para un nombre de pestaña, la macro genera un error.

En segundo lugar, la macro debe ejecutarse manualmente.

¿Qué sucede si desea una macro más sólida que verifique errores y se ejecute automáticamente? El resultado es un poco más largo, pero aún no demasiado complejo:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Left(Target, 31)

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

Para configurar esta macro, siga estos pasos:

  1. Abra un nuevo libro de trabajo que tenga solo una hoja de trabajo.

  2. Haga clic con el botón derecho en la pestaña de la hoja de trabajo y seleccione Ver código en el menú contextual resultante. Excel muestra el Editor de VBA.

  3. Pegue (o escriba) la macro anterior en la ventana de código.

  4. Cierre el editor de VBA.

  5. Busque la carpeta XLStart en su sistema. (Utilice las capacidades de búsqueda de Windows para localizar la carpeta).

  6. Guarde el libro como una plantilla de Excel habilitada para macros con el nombre Book.xltm en el directorio XLStart. Esto hace que la plantilla se convierta en su patrón para cualquier libro nuevo que cree.

  7. De nuevo, guarde el libro de trabajo como una plantilla habilitada para macros en el mismo directorio, esta vez usando el nombre Sheet.xltm. Esto hace que la plantilla se convierta en el patrón de cualquier hoja de trabajo nueva que inserte en un libro.

  8. Cierre y reinicie Excel.

Ahora, cada vez que cambia el valor en la celda A1, la pestaña de la hoja de trabajo también se actualiza.

Hay una advertencia para usar este consejo: si el valor en la celda A1 es una fecha y desea que la pestaña de la hoja de trabajo contenga esa fecha, es posible que no obtenga lo que espera. La razón es simple: Excel almacena las fechas internamente como números de serie, y eso es lo que se asigna a la pestaña de la hoja de trabajo, no una fecha formateada. Si está trabajando con fechas, deberá cambiar lo que realmente está asignado al nombre de la pestaña:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Format(Target, "mmm-dd-yy")

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

Tenga en cuenta que el único cambio aquí es lo que se asigna a la propiedad Nombre de la hoja de trabajo: es una fecha formateada. Puede, si lo prefiere, modificar el formato de fecha utilizado en la macro. Sin embargo, no debe elegir un formato que utilice barras porque son ilegales en los nombres de las hojas de trabajo.

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

Este consejo (7993) 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-Dynamic_Worksheet_Tab_Names [Nombres de pestañas de hojas de trabajo dinámicas].