Crear hojas por cada valor de un rango en Excel (macro)
¿Cómo podemos crear hojas por cada valor de un rango mediante el uso de macros en Excel?
La siguiente macro nos permite generar distintas hojas con nombres en base a un rango seleccionado.
La instrucción a copiar dentro de un nuevo módulo de vba es la siguiente:
CREAR HOJAS POR CADA VALOR DE UN RANGO EN EXCEL
Sub CrearHojasPorValor()
Dim celda As Range
Dim rango As Range
Dim dict As Object
Dim nombreHoja As String
Dim sh As Worksheet
Dim existe As Boolean
If TypeName(Selection) <> "Range" Then
MsgBox "Seleccioná celdas con datos primero.", vbExclamation
Exit Sub
End If
Set rango = Selection
If WorksheetFunction.CountA(rango) = 0 Then
MsgBox "La selección está vacía. Seleccioná celdas con datos.", vbExclamation
Exit Sub
End If
Set dict = CreateObject("Scripting.Dictionary")
For Each celda In rango
nombreHoja = Trim(celda.Value)
If nombreHoja <> "" Then
If Not dict.exists(nombreHoja) Then
dict.Add nombreHoja, 1
existe = False
For Each sh In ThisWorkbook.Worksheets
If sh.Name = nombreHoja Then
existe = True
Exit For
End If
Next sh
If Not existe Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = nombreHoja
End If
End If
End If
Next celda
End Sub
|
Notar que nombramos a la macro «CrearHojasPorValor».
De esta forma logramos crear hojas por cada valor de un rango de forma rápida y fácil mediante macros en Excel.
Te recomiendo ver el siguiente link con más videos de Macros útiles de Excel AQUÍ.
¿No sabés como instalar esta macro? ¡No te preocupes! Aquí está la solución:
TUTORIALSalvo aclaración, todas las fórmulas y macros de este sitio están configuradas para aplicarse sobre la celda A1. Algunas fórmulas se encuentran encerradas entre llaves {} debido a que son fórmulas matriciales. Estas llaves no deben introducirse tecleándolas, sino que se generan automáticamente al aceptar la fórmula pulsando Control+Shift+Enter al mismo tiempo. Las fórmulas de este sitio son compatibles con versiones de Microsoft Excel® 2010 o superiores.
