¿Como puedo copiar Macros de una a hoja a otra haciendo que funcionen?

Estoy creando una base de datos, mi problema está en que tengo que generar hojas diferentes para cada cosa y quiero que se vayan copiando las macros por cada hoja que se genera. El problema es que como cambia de nombre, la macro que usaba para la primera hoja no funciona para la siguiente por tener un nombre diferente.

1 respuesta

Respuesta
2

Tendrías que usar referencias relativas (por ejemplo 'ActiveSheet') o poner el nombre de la hoja en una variable y referenciarla de esa manera. Algo del tipo

Sub miSub()

Dim sh as String

sh = Activesheet.Name

Worksheet(sh). Calculate

...

End Sub

Salu2

¡Gracias! Por la información. Ando un poco perdido porque soy nuevo en esto de macros y me cuesta un poco encajar y entender.

Aporto la Macro que tengo. Que no es más que copiar información de una hoja que se llama escandallo a otra que se llama recetario. La que va cambiando de nombre es escandallo dado que para cada receta es una hoja diferente. ¿Cómo me recomendaría hacerlo?

Mil gracias

El tema es que pusiste una imagen, pero justamente esa "ESCANDALLO" lo tendrías que poner en una variable y luego haces referencia mediante

Sheets(miVariable).

Lo único que queda por ver es desde donde llamás a la macro para saber como debe llamarse la hoja. ¿La estarías llamando desde la hoja destino? (En este caso 'ESCANDALLO'), porque si es así, lo primero que podrías hacer es:

miVariable = ActiveSheet.Name

Sheets(miVariable).

Salu2

¡Gracias! 

Ando un poco perdido la verdad. Te explico un poco. Mi excel es una tabla de escandallos de cocina para conocer los costes de elaboración, cada elaboración tiene una hoja diferente de escandallo que la genero con un botón macro que si me funciona correctamente. Lo que intento hacer ahora es que el campo de nombre de cada receta, que corresponde con una hoja diferente se copie en una tabla tipo indice.

Gracias

Tengo 3 preguntas:

¿Esa hoja que generás con la macro es la que le asigna el nombre?

¿En esa misma macro quisieras que esté este código?

Seguís preguntando lo mismo, ¿o esto del índice es una pregunta diferente?

Buenas Tardes:

A ver. Esta es la Macro que uso 

Sub Guardar()

Sheets("RECETARIO").Select

Range("A13").EntireRow.Insert

Sheets("ESCANDALLO").Select

Range("B12").Copy

Sheets("RECETARIO").Select

Range("C13").PasteSpecial xlPasteValues

End Sub

Te la explico: Recetario correspondería a un indice de recetas y Escadallo corresponde a la hoja que va generándose para cada receta mediante otra Macro. Yo necesito que esta Macro superior funcione en cada una de las hojas de escandallo que se vayan generando Segun el numero de recetas que yo vaya introduciendo.

No soy experto y quizás no me estoy explicando bien, no se si habría alguna forma de hacer la consulta con usted de forma privada enviándole el archivo excel de forma que lo entendiese mejor.

Gracias por toda la paciencia

Lo siento pero ahora estoy medio justo de tiempo como para una dedicación más integral para este problema.

Igualmente si quieres ponme tu mail y cuando me libere te contacto y si aún siguen con el problema lo vemos (no pongo mi correo, porque he tenido malas experiencias al respecto y no quiero andar bloqueando gente)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas