Macro para crear hojas con nombres tomados de un rango de celdas

DAM, muy buena tarde, en esta oportunidad le solicito su ayuda, para completar otra tarea del proyecto que me ayudaste a crear; la macro que realice el reparto aleatorio, lo que tengo hasta ahora es algo que no es muy práctico:

Range("A1:AT326").Select

ActiveSheet.Range("$A$1:$AT$326").AutoFilter Field:=46, Criteria1:="GESTOR 1"
Selection.Copy
Worksheets.Add.Name = "GESTOR 1"
Range("A1").Select
ActiveSheet.Paste
Range("A2").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst

ActiveSheet.Protect Password:="123" 'Protege la hoja activa.

Sheets("639").Select
Range("A2").Select ' Comentado
Application.CutCopyMode = False ' Comentado
ActiveSheet.Range("$A$1:$AT$326").AutoFilter Field:=46
Range("A2").Select

En esta solución repito la instrucción por 4 veces.

El nombre de los Gestores están en la columna "AW2:AW11"

Necesito la macro pero que no se ejecute desde un botón, pues necesito hacer su llamado desde el interior de otra macro.

Los datos variables son: Rango A:AT; Nombre de Gestor ubicado en el rango de celdas "AW2:AW11" y Nombre de Hoja.


De antemano muchas gracias, quedo a la espera de lo que puedas solicitar para mayor claridad.

Saludos.

1 respuesta

Respuesta
1

Esta es la macro.

Sub hojas()
'Por.DAM
Application.ScreenUpdating = False
Set h1 = ActiveSheet
u = Range("AT" & Rows.Count).End(xlUp).Row
For i = 2 To 11
    If Cells(i, "AW") <> "" Then
        gestor = Cells(i, "AW")
        Range("A1:AT" & u).Select
        Range("$A$1:$AT$" & u).AutoFilter 46, gestor
        Selection.Copy
        Worksheets.Add.Name = gestor
        Range("A1").Select
        ActiveSheet.Paste
        ActiveSheet.Protect Password:="123" 'Protege la hoja activa.
        h1.Select
    End If
Next
Application.ScreenUpdating = True
End Sub

Solamente llama la macro desde otra macro escribiendo el nombre

Sub otramacro()
hojas
End Sub

Saludos. DAM
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas