Excel - copiar una hoja varias veces, con nombre segun listado

 
Vista:
sin imagen de perfil
Val: 128
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

copiar una hoja varias veces, con nombre segun listado

Publicado por Juanma (38 intervenciones) el 26/10/2021 22:34:48
Tengo varios listados de códigos, y por cada listado, tengo que crear un excel, y debe tener una hoja por cada codigo, y el nombre de la hoja debe ser el código.

partimos de un Excel con una sola hoja "plantilla"

He visto macros que crean hojas con un nombre a partir de un rango, y me interesaría hacer eso, pero copiando una hoja, en vez de creándola nueva.

A ver si podéis ayudarme, gracias!!
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

copiar una hoja varias veces, con nombre segun listado

Publicado por Antoni Masana (1951 intervenciones) el 27/10/2021 14:43:15
Sube un libro para ver lo que tienes y l que quieres hacer y te podremos ayudar.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 128
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

copiar una hoja varias veces, con nombre segun listado

Publicado por Juanma (38 intervenciones) el 27/10/2021 21:40:14
Gracias por responder,

subo dos excel, que son ejemplos simples de lo que quiero.

parto de un excel "base" con una hoja portada, una hoja de informe a modo de muestra, con su formato y campos a rellenar, y una hoja resumen. Yo añado una hoja que es solo para "trastear" donde pego el listado de códigos.

Como se ve, al final tengo un excel relleno, con tantas hojas como códigos, mas su portada y su resumen.

el código es el nombre de la hoja, y también es uno de los campos a rellenar.

Ahora como lo hago es duplicando la hoja de muestra, y luego voy cambiando el nombre de la hoja a medida que voy rellenándola.

He visto esto por la web:

https://jldexcelsp.blogspot.com/2008/03/generar-hojas-con-nombre-partir-de-una.html

pero yo necesito que copie la hoja de muestra, y si puede ser, que lo genere en un nuevo excel sin macro,( que sea xlsx, y no xlsm) ya que es algo que tengo que presentar y son un poco tiquismiquis.

Gracias de antemano, 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
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

copiar una hoja varias veces, con nombre segun listado

Publicado por Antoni Masana (1951 intervenciones) el 28/10/2021 15:21:56
No entiendo los que has enviado.

La portada no se corresponde con las hojas de los números.
La hoja temporal ¿es donde esta la lista de códigos?
Para que sirve la hoja resumen en este caso ¿la tiene que ir rellenando la macro mientras crea las hoja? y de donde salen las horas?

Partiendo del Libro Muestra.xlsx he realizado esta macro para crear las hoja con el nombre:

1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Crear_Hojas()
    Dim Fila As Long
    With Sheets("hoja temporal")
        Fila = 4
        While .Cells(Fila, "E") <> ""
            Sheets("portada").Select
            Sheets("portada").Copy After:=Sheets(Sheets.Count)
            Sheets(Sheets.Count).Select
            Sheets(Sheets.Count).Name = .Cells(Fila, "E")
            Fila = Fila + 1
        Wend
    End With
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 128
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

copiar una hoja varias veces, con nombre segun listado

Publicado por Juanma (38 intervenciones) el 28/10/2021 20:00:26
Luego probaré la macro. Muchas gracias.

La portada se puede obviar, ya cque solo hay una por archivo, y es facil.

Son las hojas con nombre de codigo las que se tienen que crear. Son como facturas a rellenar, que tienen el numero de factura como nombre de hoja.

Entonces al duplicar la hoja de muestra, (para copiar el formato y la forma de vista y todo) , pues tengo que cambiat el nombre de la hoja, y el campo donde aparece tambien el codigo.

Son unos informes breves, de trabajos realizados en distintas partes de una planta industeial grande.
Entonces me dan un modelo de libro de informe que es un libro por semana. Y una hoja de ese libro por trabajo realizado.

Entonces cada trabajo tiene un Código, de orden de trabajo ("OT") y yo tengo que copiar la hoja de muestra, cambiarle el nombre para ponerle su OT como nombre, y rellenarla, (la OT tambien debe rellenarse en una celda).
Los nombres los saco de las carpetas que contienen fotos de campo con la info mediante un programa que pasa nombres de carpetas a texto (pir).

Lo que quiero idealmente, es una magro que me pida un listado de codigos, y una hoja a copiar, y me cree una copia de esa hoja por cada codigo, y ese codigo sea el nombre de la hoja. Tambien debería aparecer ese codigo, en una celda determinada(siempre la misma)
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
sin imagen de perfil
Val: 128
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

copiar una hoja varias veces, con nombre segun listado

Publicado por Juanma (38 intervenciones) el 30/10/2021 12:58:26
Muchísimas gracias!!!

Por fin lo he podido revisar, y es exactamente lo que yo quería.

Bueno, le he incluido una linea para que además rellene una celda, con el nombre de la hoja, y ya es perfecto. ( me ha costado, no creas, que de VBA no soy ni siquiera aprendiz, pero quería intentarlo por mi mismo, pa no dar tanta lata)

muchas gracias, subo el resultado por a alguien le sirve:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Crear_Hojas()
    Dim Fila As Long
    With Sheets("hoja temporal")
        Fila = 4
        While .Cells(Fila, "E") <> ""
            Sheets("portada").Select
            Sheets("portada").Copy After:=Sheets(Sheets.Count)
            Sheets(Sheets.Count).Select
            Sheets(Sheets.Count).Name = .Cells(Fila, "E")
'esta fila siguiente es la que copia el nombe a una celda
            Sheets(Sheets.Count).Range("c7") = .Cells(Fila, "E")
            Fila = Fila + 1
        Wend
    End With
End Sub
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