Excel - Copiar hoja excel en otro archivo mediante macro

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

Copiar hoja excel en otro archivo mediante macro

Publicado por Angel (11 intervenciones) el 20/08/2019 00:53:40
No se si es posible, por eso hago la consulta:

Tengo una hoja excel que mensualmente he de modificarla y mandarla a la oficina para su registro. Lo único que esa y otras hojas las tengo todas en un archivo excel que mediante formularios actualizo para ahorrar tiempo. Entonces una hoja determinada dentro de ese archivo seria posible mediante una macro realizar una copia en otro archivo? y aprovechando se podría guardar en el mismo archivo sucesivamente cada copia con un nombre determinado? (en este caso por ejemplo "Enero", "Febrero", etc.) asi a final de año tendría una copia del año en el mismo archivo.

Realizarlo asi o algo parecido.
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: 3.841
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar hoja excel en otro archivo mediante macro

Publicado por Antoni Masana (1295 intervenciones) el 20/08/2019 06:25:11
Con los datos que aportas solo puedo contestarte que SI se puede.

El 90% de la macro se consigue con la opción GRABAR MACRO

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: 35
Ha disminuido su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar hoja excel en otro archivo mediante macro

Publicado por Angel (11 intervenciones) el 22/08/2019 11:11:27
Muchas gracias Antoni
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 Dirk
Val: 451
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Copiar hoja excel en otro archivo mediante macro

Publicado por Dirk (114 intervenciones) el 21/08/2019 16:18:11
Hola Angel, te paso un ejemplo de como lo hice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Sub GenerarArchivo()
Dim fechaArchivo As Date, nombreArchivo As String
 
    nombreArchivo = ActiveWorkbook.FullName           'tomo la ruta completa del archivo original
    fechaArchivo = Worksheets("Resumen").Cells(1, 11)     'tomo la fecha del reporte
 
    Application.DisplayAlerts = False
    'copio las hojas a otro archivo
    Sheets(Array("Ventas Movil", "Resumen", "Detalle x Marca", "Detalle x Canal", "Tablero")).Select
    ActiveWindow.SelectedSheets.Copy
 
    'convierte las FORMULAS en VALORES de todas las hojas
    Sheets("Ventas Movil").Select
    Sheets("Ventas Movil").Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
    Sheets("Resumen").Select
    Sheets("Resumen").Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
    Sheets("Detalle x Marca").Select
    Sheets("Detalle x Marca").Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
    Sheets("Detalle x Canal").Select
    Sheets("Detalle x Canal").Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
' borra el boton negritas
    Worksheets("Ventas Movil").Select
    Worksheets("Ventas Movil").Shapes.Range(Array("b_negritas")).Select
    Selection.Delete
 
' borra todas las imagenes de la hoja Tablero
    Worksheets("Tablero").Select
    Worksheets("Tablero").Shapes.Range(Array("Imagen 1", "Imagen 3", "Imagen 4", "b_ActualizarCambio", "b_AbrirMenu")).Select
    Selection.Delete
 
' guardo el archivo con el mismo nombre del original con la fecha del reporte al final 
    Worksheets("Tablero").Select
    ActiveWorkbook.SaveAs Filename:=Left(nombreArchivo, Len(nombreArchivo) - 5) + " " + Format(fechaArchivo, "dd-mm-yyyy") + ".xlsx"
    ActiveWorkbook.Close
    Worksheets("Resumen").Select     'deja seleccionada la hoja Resumen del archivo original
 
 
End Sub

Envío el archivo sin fórmulas para que no haya problemas al abrir en otro pc o teléfono

Si voy a pasar el archivo por correo tambien quiero que sea lo mas pequeño posible, así quedan los archivos que se van generando:
1

Si corres el programa paso a paso (con F8) vas a ver lo que hace el programa y como dice Antoni, comencé usando la grabadora de macros de excel

Salu2
Dirk
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: 35
Ha disminuido su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar hoja excel en otro archivo mediante macro

Publicado por Angel (11 intervenciones) el 22/08/2019 11:11:07
Muchas gracias Dirk
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 Hector Madriz
Val: 857
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar hoja excel en otro archivo mediante macro

Publicado por Hector Madriz (137 intervenciones) el 21/08/2019 17:59:45
Buen día, prueba esto:

1
2
3
4
5
6
7
8
Sub GuardarHoja()
    NombreLibro = Split(ActiveWorkbook.FullName, ".")
    ActiveSheet.Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs NombreLibro(0) & "_" & MonthName(Month(Now())), 56
    Application.DisplayAlerts = True
    ActiveWorkbook.Close False
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: 35
Ha disminuido su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar hoja excel en otro archivo mediante macro

Publicado por Angel (11 intervenciones) el 22/08/2019 11:11:46
Muchas gracias Hector
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