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.
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.
Muchas gracias!! Funciona perfectamente!!!!
NECESITO AYUDA PARA ESTA MACRO QUE QUIERO HACER ES UN INFORME SEMANAL Y QUIERO COPIAR EN 52 SEMANAS(HACER HOJAS 52)