Creación de hojas de trabajo a partir de una lista de nombres (Microsoft Excel)
Koen tiene una hoja de trabajo que tiene una lista de nombres en la columna A. Necesita crear una hoja de trabajo para cada nombre en la lista y tener la hoja de trabajo nombrada de acuerdo con ese nombre. Koen sospecha que esto requerirá una macro, pero no está seguro de cómo realizar esa tarea.
Esta tarea es relativamente fácil de hacer si usa una macro, y hay varias formas de realizarla. Una forma sencilla es seleccionar su lista de nombres de hojas de trabajo y luego ejecutar la siguiente macro.
Sub AddWorksheetsFromSelection() Dim CurSheet As Worksheet Dim Source As Range Dim c As Range Set CurSheet = ActiveSheet Set Source = Selection.Cells Application.ScreenUpdating = False For Each c In Source sName = Trim(c.Text) If Len(sName) > 0 Then Worksheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = sName End If Next c CurSheet.Activate Application.ScreenUpdating = True End Sub
La macro esencialmente toma cada celda en su selección, crea una nueva hoja de trabajo y luego cambia el nombre de esa hoja de trabajo de acuerdo con lo que haya en la celda.
La macro verifica para asegurarse de que una celda en particular realmente contenga algo (no puede cambiar el nombre de una hoja de trabajo si no hay un nombre en la celda), pero aún no es tan robusto como podría ser. Puede haber otras fallas en su lista de nombres de hojas de trabajo que podrían dar lugar a errores cuando se ejecuta la macro. Por ejemplo, ¿qué pasa si su lista contiene duplicados? ¿O contiene nombres que Excel no permite? Estos (y muchos otros errores) podrían anticiparse y el código se podría cambiar para manejar tales situaciones.
Si bien usar una macro para crear las hojas de trabajo es rápido y fácil, es posible que desee tener en cuenta que no es necesario que use una macro. De hecho, puede usar las capacidades de tabla dinámica de Excel para crear las hojas de trabajo deseadas. Supongamos, por el bien de este ejemplo, que los nombres de la hoja de trabajo que desea están en la columna A de una hoja de trabajo y que la celda A1 contiene un encabezado para la columna (como «Nombres» o «Hojas de trabajo»).
Lo que desea hacer es crear una tabla dinámica basada en estos nombres. Siga estos pasos:
-
Seleccione cualquier nombre de hoja de trabajo en la columna.
-
Muestre la pestaña Insertar de la cinta.
-
Haga clic en la herramienta Tabla dinámica, en el lado izquierdo de la cinta. Excel muestra el cuadro de diálogo Crear tabla dinámica, con su rango de nombres de hoja de trabajo ya especificado. (Ver figura 1)
-
Haga clic en Aceptar. Excel crea la tabla dinámica y muestra el panel Campos de tabla dinámica en el lado derecho de la pantalla.
-
En el panel Campos de tabla dinámica, haga clic en la casilla de verificación junto al campo utilizado para su lista de hojas de trabajo. (Debe ser algo como «Nombres»
o «Hojas de trabajo»). Excel ajusta la tabla dinámica.
-
Arrastre el nombre del campo marcado («Nombres» u «Hojas de trabajo») al área Filtros del panel Campos de tabla dinámica. (Ver figura 2)
-
Asegúrese de que se muestre la pestaña Analizar de la cinta. (Debería haberse mostrado de forma predeterminada después de crear la tabla dinámica).
-
Haga clic en la flecha hacia abajo debajo de la herramienta Tabla dinámica, en el lado izquierdo de la cinta. Excel muestra algunas opciones que puede tomar.
-
Haga clic en la flecha hacia abajo en el lado derecho de la opción Opciones. (No haga clic en la opción Opciones en sí; eso muestra un cuadro de diálogo. Solo desea hacer clic en la flecha hacia abajo).
-
Elija la opción Mostrar páginas de filtro de informe. Excel muestra el cuadro de diálogo Mostrar páginas de filtro de informe.
-
Haga clic en Aceptar. Excel crea una hoja de trabajo para cada nombre de hoja de trabajo en su lista.
Es importante darse cuenta de que en este punto cada una de las nuevas hojas de trabajo contiene una pequeña tabla dinámica. Para deshacerse de estas tablas dinámicas, podría pensar que puede crear un conjunto de selección de las nuevas hojas de trabajo (haga clic en la primera pestaña de la hoja de trabajo y luego mantenga presionada la tecla Mayús mientras hace clic en la última pestaña de la hoja de trabajo) y luego presione la tecla Suprimir. Sin embargo, en mis pruebas, esto no funciona: Excel no le permitirá realizar cambios en las tablas dinámicas en el modo de edición de grupo. En su lugar, deberá mostrar cada hoja de trabajo, a su vez, y eliminar las tablas dinámicas.
Esto puede parecer mucho trabajo, pero si solo necesita crear todas estas hojas de trabajo una sola vez, puede ser una forma relativamente rápida de hacerlo sin la necesidad de invocar una macro.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (13463) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.