Ejecutar un macro cuando se copie una hoja

Hola
Necesito ejecuatar un macro después de que se copie una hoja, el macro seria muy sencillo, lo único que hace es copiar el nombre de la nueva hoja a otra hoja.
Muchas Gracias.

1 Respuesta

Respuesta
1
Excel no tiene evento que controle la copia de hojas. Es decir que tendrás que decidir manualmente cuando ejecutar tu cambio de nombres.
Si ya tenés una rutina para realizar la copia, entonces allí mismo pode´s incluir la instrucción.
Cuando creas una copia de una hoja, ésta queda como la hoja activa y suele tener por nbre predeterminado el nombre de la hoja original con un índice, por ej: Hoja1(2)
No podrás darle ese nombre a otra hoja... creo que debes ampliarme un poco + lo que estas intentando hacer para acercarte una respuesta más concreta.
Hola,
Ok la cosa es así:
Tengo un libro de excel con una hoja llamada Test(1), al copiar esta hoja tengo el Test(2) y así sucesivamente, luego tengo otra hoja llamada Environment en donde voy listando el nombre de los test, lo que quiero es que en cuanto se copie una hoja de test se agregue una columna con el nombre del nuevo test a la hoja de Environment. (No tengo ningún macro que copie la hoja de test automáticamente).
Espero haberme explicado un poco más.
Gracias por tu respuesta.
Entonces necesitas una rutina que tendrás que ejecutarla manualmente, ya sea que tengas un botón o atajo de teclado (podes encontrar el paso a paso para crearlos en mi página de macros )
Entrá al Editor (Alt + F11), insertá un módulo y copiá esta rutina:
Sub guardaNbreHoja()
'x Elsamatilde
'busco la primer col libre de la fila 1 (*)
libre = Sheets("Environment").Range("IV1").End(xlToLeft).Column + 1
'guardo en la fila1 de la col encontrada, el nbre de la hoja creada
Sheets("Environment").Cells(1, libre) = ActiveSheet.Name
End Sub
Ajustá el nro de fila si vas a titular en otra.
Esta rutina la tenés que ejucutar estando en la nueva hoja.
Sdos. Felices Fiestas y no olvides finalizar la consulta si el tema queda concluido.
Muchas Gracias:
Cree el macro para copiar la hoja y le agregue lo que me comentaste y funciono perfecto. El macro quedo así:
Sub CopyBasicTest()
'
' CopyBasicTest Macro
'
' Keyboard Shortcut: Ctrl+Shift+C
'
Application.ScreenUpdating = False
'busco la primer col libre de la fila 1 (*)
libre = Sheets("Environment").Range("IV5").End(xlToLeft).Column + 1
    Sheets("Basic-Test (1)").Select
    Sheets("Basic-Test (1)").Copy Before:=Sheets("Environment")
    Sheets("Environment").Cells(5, libre) = ActiveSheet.Name
Application.ScreenUpdating = True
End Sub
Gracias y felices fiestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas