Macro para copiar hojas.

4 envíos / 0 nuevos
Último envío
estebanlcdc
Imagen de estebanlcdc
Offline
última acción: Hace 9 años 7 meses
alta: 24/07/2009 - 12:22
Puntos: 105
Macro para copiar hojas.

Hola,

 

Estoy realizando un libro de excel para el calculo de costes y ahorros de un servicio energetico. Para ello, el calculo lo divido por contratos, cada uno de los contratos equivale a un contador (consumos energeticos, costes, etc..). Me he creado una hoja modelo, en la cual realizo los calculos necesarios para un contrato. Lo que estoy buscando en la forma de duplicar esa hoja, tantas veces como contratos tenga.

 

En la hoja "GENERAL", introduzco una tabla con el numero (1,2,3, ..... , n) de cuadros en la columna A. En la columna B, el nombre de contrato, etc...

La hoja modelo realiza los calculos llamando a ciertos valores de esta tabla, usando como  referencia el numero de cuadro (1,2,3....,n).

 

Lo que quisiera es una macro que duplique la hoja modelo, llamandola con el valor de la celda correspondiente, y que lo haga hasta el total de los contratos. La numeracion de los cuadros es siempre la misma (1,2,3,.....,n).  Es decir, si tengo 30 cuadros, que me copie la hoja modelo todas esas veces, considerando la hoja modelo la correspondiente al cuadro 1. 

 

He pensado en una macro que duplique la hoja modelo "1", desde el 2 hasta contar el numero de cuadros -1. Pero no domino el VBA.

 

Ademas, si es posible, la celda B1 de cada hoja duplicada, se renombraria con el valor de la hoja. De esta forma me cambian todas las referencias dentro de la hoja.

 

Saludos y gracias de antemano.

 

 

 

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 semana 8 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Macro para copiar hojas.

Efectivamente, lo que resultaría útil en este caso sería una macro que hiciese esta multiplicación de hojas por ti.

Si lo hieciese a mano, yo utilizaría esta opción que aparece en el menú contextual de la pestaña de la hoja, que dice "mover o copiar" para crear una copia de mi hoja.

cuando utilizas esto, la nueva hoja que se crea se convierte en la hoja activa.

Sabiendo esto, la macro podría ser algo así:

 

Pongo en constantes el nombre de la hoja original, el número de copias y la celda a particularizar en cada caso. Esto por supuesto que puede tomarse de otro lugar, por ejemplo de una celda de tu libro, o preguntando al usuario, o lo que sea.

 

Sub multiplicador_de_hojas()

Const NombreHojaOriginal = "Hoja1"

Const numerocopias = 30

Const CeldaParticularizar = "B1"

 

Dim i As Integer

    For i = 1 To numerocopias

        ActiveWorkbook.Sheets(NombreHojaOriginal).Copy Sheets(NombreHojaOriginal)

        'ahora la nueva hoja es la activa

        With ActiveSheet

            .Range(CeldaParticularizar).Value = i

            .Name = "copia " & i

        End With

    Next

End Sub

 

 

------
Ya sé Excel, pero necesito más.

estebanlcdc
Imagen de estebanlcdc
Offline
última acción: Hace 9 años 7 meses
alta: 24/07/2009 - 12:22
Puntos: 105
Re: Macro para copiar hojas.

Muchas gracias!! Funciona perfectamente!!!!

minor vivas (no verificado)
Imagen de minor vivas
MACRO AYUDA

NECESITO AYUDA PARA ESTA MACRO QUE QUIERO HACER ES UN INFORME SEMANAL Y QUIERO COPIAR EN 52 SEMANAS(HACER HOJAS 52)