¿Cómo hago para copiar MACROS creadas en excel, en otra hoja de ese mismo libro de excel?

He Creado varias MACROS en una hoja de excel, que la tomo como modelo, ya que es de un mes, entonces, voy copiando esa hoja, en el mismo libro. Pero las MACROS que he creado, no se copian, es decir vuelven a la referencia de la primera hoja unicamente.

Necesito saber como hago para que se copien también las macros, y las referencias sean a la nueva hoja, del mismo libro de excel.?

1 Respuesta

Respuesta
1

Si las macros están colocadas en el Editor, en el objeto HOJA, al realizar una copia de esta hoja verás que la nueva también lleva las mismas macros.

Si la HOJA contiene un botón del tipo ActiveX (o cuadro de Controles), al copiarse la hoja se copia el botón y por lo tanto la rutina asociada a ese botón.

Ahora, si la macro está en un módulo, para que pueda servir para cualquier hoja debe incluir expresiones como ActiveSheet para que sea ejecutable desde cualquier hoja activa.

Espero te sirvan estas aclaraciones, sino deberás dejarme un ejemplo de alguna de tus macros para que vea dónde está tu dificultad.

PD) podes leer más sobre el tema de dónde colocar las macros y cómo ejecutarlas en la sección Macros de mi sitio.

Por ejemplo tengo esta macro. Si bien dice Hoja1, a la misma lo voy dando un nombre por ejemplo MAR2012. cuando copio esa hoja en otra hoja (haciendo mover o copiar), e incluso intente cambiar e indicar hoja 2, no funciona.

Sub CALCULODATOS()
Hoja1.Select
Hoja1.Range("GA1").Activate
End Sub

2) Ejemplo de otra macro: Esa macro la hice para poder imprimir algunas paginas de una hoja del libro de excel

Sub IMPRIMIRPag1()
'
' IMPRIMIRPag1 Macro
' Empleado 1 Pag 1 de 2
'
'
Range("CS29").Select
ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("CT30").Select
End Sub
Sub IMPRIMIRPag2()
'
' IMPRIMIRPag2 Macro
' Empledo 1 Pag 2 de 2
'
'
ExecuteExcel4Macro "PRINT(2,2,2,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("CZ28").Select
End Sub
Sub IMPRIMIRPag3()
'
' IMPRIMIRPag3 Macro
' Empleado 2 Pag 1 de 2
'
'
ExecuteExcel4Macro "PRINT(2,3,3,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("CZ30").Select
End Sub
Sub IMPRIMIRPag4()
'
' IMPRIMIRPag4 Macro
' Empleado 2 pag 2de 2
'
'
ExecuteExcel4Macro "PRINT(2,4,4,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("DE28").Select
End Sub
Sub IMPRIMIRPag5()
'
' IMPRIMIRPag5 Macro
' Empleado 3 Pag 5
'
'
ExecuteExcel4Macro "PRINT(2,5,5,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("DF30").Select
End Sub
Sub IMPRIMIRPag6()
'
' IMPRIMIRPag6 Macro
' Empleado 3 2ª Pagina
'
'
ExecuteExcel4Macro "PRINT(2,6,6,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("DK28").Select
End Sub
Sub IMPRIMIRPag7()
'
' IMPRIMIRPag7 Macro
' Empleado 4 1º Pagina Pag 7
'
'
Range("DL30").Select
ExecuteExcel4Macro "PRINT(2,7,7,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("DK31").Select
ActiveWorkbook.Save
End Sub
Sub IMPRIMIRPag8()
'
' IMPRIMIRPag8 Macro
' Empleado 4 2ª Pagina Pagina 8
'
'
ExecuteExcel4Macro "PRINT(2,8,8,1,,,,,,,,2,,,TRUE,,FALSE)"
ActiveWindow.ScrollColumn = 86
ActiveWindow.ScrollColumn = 88
ActiveWindow.ScrollColumn = 89
ActiveWindow.ScrollColumn = 90
Range("DQ28").Select
End Sub
Sub IMPRIMIRpF931()
'
' IMPRIMIRpF931 Macro
' Impresión para llenar SU DECLARACIÓN
'
'
ExecuteExcel4Macro "PRINT(2,13,13,1,,,,,,,,2,,,TRUE,,FALSE)"
Range("DG36").Select
End Sub

Bien, la primer macro seguramente la tenés en un módulo. Si la llamás desde un botón de la barra Formulario dibujado en la hoja, al copiar la hoja se copia el botón y x lo tanto se ejecuta esta rutina en cada hoja.

Si querés que esa macro seleccione la celda GA1 de la hoja activa, dejala así:

Sub CALCULODATOS()
ActiveSheet.Range("GA1").Select
End Sub

Las macros de impresión, si tienen que imprimir pág de una cierta hoja (no la hoja activa sino quizás otra) debe seleccionar primero la hoja. Aquí sí tendrás que activar la que deba ser impresa: Hoja1.Select

Si aún te queda algo sin resolver podés enviarme tu libro al correo que aparece en mi sitio (o dejame un correo tuyo) y así veo los botones y cómo los tenés asociados a las macros.

Que bien, que bien, Modifique la macro como me dijiste y funciona perfecto. en cuanto a las de impresión , te avisare luego, ya que no tengo aca la impresora (porque ando con la notebook), pero verificare y te comento. Pero lo otro se soluciono, perfecto.

Muchísimas Gracias! Visitare tu pagina, y si podes recomendarme algún libro te lo agradeceré, (en realidad no soy muy entendido, en el tema, mi profesión es otra, pero me gusta y me interesa estas cuestiones, o de hacer estas planillas por mi trabajo/profesiona)

En el transcurso del dia, veré lo de la impresión

Muchas Gracias

Bien, solo no la olvides de finalizar luego.

Sdos

Elsa

Tuve una excelente respuesta y solución a la duda que tenia, solucionandome un papel de trabajo importante para mi, y que me facilita y disminuye un 100% del tiempo. Estoy muy agradecido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas