Insertar y nombrar hojas a partir de valores de celda
En esta publicación, compartiré un breve fragmento de código VBA que crea nuevas hojas de trabajo basadas en los nombres almacenados en los valores de las celdas. Esto puede resultar útil cuando tiene una lista de departamentos y desea crear una hoja de trabajo para cada departamento. O una lista de cuentas, empleados, regiones, etc. Esta publicación es el resultado de una pregunta anónima que recibí. Entonces, a quien haya preguntado… ¡gracias por tu pregunta y espero que esta publicación ayude!
Objetivo
Antes de llegar demasiado lejos, echemos un vistazo a nuestro objetivo. Tenemos algunos valores de celda en un rango normal, como este:
Nos gustaría poder seleccionar el rango y hacer que Excel cree y nombre una nueva hoja para cada elemento de nuestro rango.
Como no conozco ninguna forma integrada de lograr esto en la versión de Excel que estoy usando mientras escribo esto, recurriremos a VBA.
Vba
VBA (Visual Basic para Aplicaciones) es un lenguaje de programación que podemos utilizar para escribir macros. Ahora, la buena noticia es que ya escribí el código para que puedas simplemente deslizarlo.
Si no le preocupa comprender cómo funciona la macro, simplemente vaya al final de la publicación y descargue el archivo de Excel (que contiene el código VBA).
Pero, si desea analizar y comprender el código, aquí tiene un resumen rápido.
Fragmento de código
Comencemos echando un vistazo al código:
Sub Insertar_Hoja_Nombres() Para cada c en la selección Con Sheets.Add(Después:=ActiveSheet) .Nombre = c.Valor Terminar con Siguiente cSubtítulo final
Ahora hablemos de ello.
- Las líneas Sub y End Sub relacionadas definen el nombre del procedimiento (Insert_Sheet_Names) y el cuerpo del código.
- Las líneas For Each y Next relacionadas definen un bucle de recopilación. Un bucle es un segmento de código que se puede repetir varias veces. En nuestro caso, se repetirá una vez para cada celda (c) en el rango seleccionado actualmente (Selección).
- Las líneas Con y Terminar con relacionadas le indican a Excel que agregue una nueva hoja de trabajo después de la hoja activa y luego nombrela con el valor de la celda.
Cómo utilizar
Una forma posible de utilizar este código es seguir estos pasos:
- Descargue y extraiga el archivo zip a continuación
- Abra el libro habilitado para macros InsertSheets.xlsm siempre que necesite realizar esta tarea
- Seleccione un rango de celdas en CUALQUIER libro abierto
- Luego ejecute la macro (Ver Macros Ver macros o Alt+F8)
Nota: la macro puede funcionar en cualquier libro abierto y no es necesario copiar el código VBA al libro que contiene el rango de nombres de hojas.
Como ocurre con cualquier cosa en Excel, existen otras formas de utilizar este código, incluida agregarlo a su libro de macros personal.
Conclusión
VBA es un lenguaje extenso y hay muchos otros fragmentos de código que lograrán lo mismo. Además, hay muchas maneras de mejorar el código para manejar errores, por ejemplo, si el valor en la celda no cumple con las especificaciones para el nombre de una hoja, o si la selección actual no es un rango de celdas sino una gráfico u otro objeto. Si tiene alguna alternativa o mejora al código, compártala publicando un comentario a continuación… ¡gracias!
Archivo de muestra: InsertSheets.zip
- Nota: por razones de seguridad, el libro habilitado para macros se ha comprimido en una carpeta zip. Para usarlo, descargue el archivo zip y extraiga el archivo InsertSheets.xlsm.
Deja una respuesta