Excel - macro para copiar hoja modelo

 
Vista:
sin imagen de perfil

macro para copiar hoja modelo

Publicado por mark (4 intervenciones) el 04/09/2016 23:19:57
buenas mi consulta es para saber como puedo copiar una hoja "modelo o plantilla" desde una lista de nombre cuyo rango se selecciona mediante un (InputBox), ejemplo si en la lista tengo 10 nombre y mediante el InputBox selecciono solo 3 entonces se cree 3 hojas nuevas con los nombres que seleccione pero esas tres hojas nuevas deben tener el formato de la "hoja modelo" que yo tengo en el mismo libro. en conclusión quiero crear tantas hojas modelo como nombre de las lista seleccione y colocarle a cada hoja el nombre seleccionado.

de antemano muchas gracias.
saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

macro para copiar hoja modelo

Publicado por Antoni Masana (2474 intervenciones) el 05/09/2016 08:25:40
Hay varias formas de hacerlo dependiendo de donde quieres crear las hojas, y cuando digo donde me refiero al orden

Con este ejemplo crea la hoja nueva detras de Modelo

1
2
3
4
Sheets("Modelo").Select
Sheets("Modelo").Copy
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = Nombre

Pongo un ejemplo, tengo las siguientes hoja:

1
\ Principal / \ Modelo / 

y Creas una hoja nueva que se llame Balance con la macro anterior queda asi:

1
\ Principal / \ Modelo / \ Balance /

Si quieres poner la hoja después de Principal debes hacerlo asi:

1
2
3
4
Sheets("Principal").Select
Sheets("Modelo").Copy
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = Nombre


Vamos a complicarlo un poco más. Ahora creamos las hoja Diario , Balance y Saldos y quedemos que quede asi:

1
\ Diario / \ Balance / \ Saldos / \ Principal / \ Modelo / 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Nombre_1 = "Diario"
Nombre_2 = "Balance"
Nombre_3 = "Saldo"
 
Sheets("Modelo").Copy Before:=Sheets(1)
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = Nombre_1
 
Sheets("Modelo").Copy Before:=Sheets(2)
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = Nombre_2
 
Sheets("Modelo").Copy Before:=Sheets(3)
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = Nombre_3


Y porque no, lo complicamos aun más y ahora lo queremos así:

1
\ Principal / \ Diario / \ Balance / \ Saldos / \ Modelo / 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Nombre_1 = "Diario"
Nombre_2 = "Balance"
Nombre_3 = "Saldo"
 
Sheets("Principal").Select
Sheets("Modelo").Copy
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = Nombre_1
 
Sheets(Nombre_1).Select
Sheets("Modelo").Copy
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = Nombre_2
 
Sheets(Nombre_2).Select
Sheets("Modelo").Copy
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = Nombre_3

Y con esto creo que ya he visto todas las posibles combinaciones de crear hoja de Excel y si no siempre hay el truco de GRABAR MACRO y hacer la acción y ver que instrucciones pone.

Saludos
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar