Filtrar, copiar, pegar, guardar... pero con Macro

25/02/2008 - 13:37 por ivok007 | Informe spam
Buen día,
Tengo una hoja llamada "Resumen"con 5 columnas (Producto, Fecha de
Egreso, Cantidad, Costo $) y más de 5000 filas. Son 295 tipos de
Productos
Una vez al mes debo agrupar, en una nueva hoja, todo el detalle
correspondiente a cada Producto. (Es decir genero en total 295 hojas)
¿Como lo hago? Tomo la hoja Ž"Resumen" y Filtro por Producto, luego
copio todas las columnas, habro una hoja nueva, pego y guardo la hoja
con el nombre del Producto. Y asi 295 veces (una por cada producto)
hasta terminar.
He intentado una macro, pero soy menos que principiante.
(los datos de Producto están ordenados y por tanto todos juntos)

Producto Fecha de Egreso Cantida Costo$
1 0096 01/02/08
2
3
4
5
6
7

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/02/2008 - 22:34 | Informe spam
hola, Marcelo !

(creo que) lo podrias solucionar usando filtros avanzados por codigo, solo que...

1) de las 5 columnas solo mencionas el nombre de 4 (se puede asumir que inicias en la columna A ?) -???-

2) cuando mencionas ~295 hojas (una por cada producto) te refieres a que:
- son 295 hojas todas dentro de un solo libro ? (p.e. "Resumen por productos.xls")
- son 295 libros todos con una sola hoja ? (p.e. "Producto1.xls", "Producto2.xls",etc.)

saludos,
hector.

__ la consulta original __
Tengo una hoja llamada "Resumen"con 5 columnas (Producto, Fecha de Egreso, Cantidad, Costo $)
y mas de 5000 filas. Son 295 tipos de Productos
Una vez al mes debo agrupar, en una nueva hoja, todo el detalle correspondiente a cada Producto.
(Es decir genero en total 295 hojas)
Como lo hago? Tomo la hoja ´"Resumen" y Filtro por Producto, luego copio todas las columnas
habro una hoja nueva, pego y guardo la hoja con el nombre del Producto.
Y asi 295 veces (una por cada producto) hasta terminar.
He intentado una macro, pero soy menos que principiante.
(los datos de Producto estan ordenados y por tanto todos juntos)

Producto Fecha de Egreso Cantidad Costo$
1 0096 01/02/08 2 20.00
2 0096 01/02/08 1 10.00
3 0096 16/02/08 10 100.00
4 0052 02/02/08 5 89.50
5 0052 05/02/08 5 89.50
6 0002 20/02/08 1 19.90
Respuesta Responder a este mensaje
#2 ivok007
26/02/2008 - 10:51 | Informe spam
Hola Héctor,

1) Sí, inicio en la Columna A. (La 5ta columna, E, se llama
"Observaciones" y no se traslada a los libros)

2) Son 295 libros con una sola hoja
("Producto1.xls","Procucto2.xls",etc)

Gracias,
Marcelo



On 25 feb, 22:34, "Héctor Miguel"
wrote:
hola, Marcelo !

(creo que) lo podrias solucionar usando filtros avanzados por codigo, solo que...

1) de las 5 columnas solo mencionas el nombre de 4 (se puede asumir que inicias en la columna A ?)    -???-

2) cuando mencionas ~295 hojas (una por cada producto) te refieres a que:
    - son 295 hojas todas dentro de un solo libro ? (p.e. "Resumen por productos.xls")
    - son 295 libros todos con una sola hoja ? (p.e. "Producto1.xls", "Producto2.xls",etc.)

saludos,
hector.

__ la consulta original __



> Tengo una hoja llamada "Resumen"con 5 columnas (Producto, Fecha de Egreso, Cantidad, Costo $)
> y mas de 5000 filas. Son 295 tipos de Productos
> Una vez al mes debo agrupar, en una nueva hoja, todo el detalle correspondiente a cada Producto.
> (Es decir genero en total 295 hojas)
> Como lo hago? Tomo la hoja Ž"Resumen" y Filtro por Producto, luego copio todas las columnas
> habro una hoja nueva, pego y guardo la hoja con el nombre del Producto.
> Y asi 295 veces (una por cada producto) hasta terminar.
> He intentado una macro, pero soy menos que principiante.
> (los datos de Producto estan ordenados y por tanto todos juntos)

>    Producto   Fecha de Egreso  Cantidad  Costo$
> 1 0096          01/02/08               2                20.00
> 2 0096          01/02/08               1                10.00
> 3 0096          16/02/08               10             100.00
> 4 0052          02/02/08                5                89.50
> 5 0052          05/02/08                5                89.50
> 6 0002           20/02/08               1                19.90- Ocultar texto de la cita -

- Mostrar texto de la cita -
Respuesta Responder a este mensaje
#3 Héctor Miguel
27/02/2008 - 06:11 | Informe spam
hola, Marcelo !

1) Si, inicio en la Columna A. (La 5ta columna, E, se llama "Observaciones" y no se traslada a los libros)
2) Son 295 libros con una sola hoja ("Producto1.xls","Procucto2.xls",etc)...



prueba con una macro +/- como la siguiente:

Sub Filtra_productos()
Dim Celda As Range
Application.ScreenUpdating = False
With Worksheets("resumen")
.Range("g1:h1") = .Range("a1")
.Range(.Range("a1"), .Range("a65536").End(xlUp)).AdvancedFilter _
Action:=xlFilterCopy, _
Unique:=True, _
CopyToRange:=.Range("g1")
For Each Celda In .Range(.Range("g2"), .Range("g65536").End(xlUp))
.Range("h2") = Celda
Worksheets.Add After:=Worksheets(.Index)
Range("a1:d1").Value = .Range("a1:d1").Value
.Range(.Range("a1"), .Range("a65536").End(xlUp)).Resize(, 4).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=.Range("h1:h2"), _
CopyToRange:=Range("a1:d1")
ActiveSheet.Move
ActiveWorkbook.SaveAs Celda, xlWorkbookNormal
ActiveWorkbook.Close False
Next
.Columns("g:h").Clear
End With
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#4 ivok007
27/02/2008 - 17:05 | Informe spam
Gracias Héctor,
Por el momento la Macro no funciona bien.

La he copiado en el libro Resumen (que para hacer una prueba contiene
los valores del ejemplo que di en mi primer mensaje)
Coloqué el rango a filtrar en las celdas g1:h1 de la hoja resúmen.
Pero los datos en las columnas a,b,c,d, se borran (sólo quedan los
títulos) y luego aparecen estos datos en el rango g1:h4
g1= "Producto", h1="Producto"
g2= 2 , h2=2
g3= 52
g4= 96

He leído la macro de arriba a abajo durante horas, he buscado en
internet para comparar; pero no entiendo donde está el error.

Saludos,
Marcelo
Respuesta Responder a este mensaje
#5 Héctor Miguel
27/02/2008 - 18:39 | Informe spam
hola, Marcelo !

Por el momento la Macro no funciona bien.
La he copiado en el libro Resumen (que para hacer una prueba contiene los valores del ejemplo que di en mi primer mensaje)
Coloque el rango a filtrar en las celdas g1:h1 de la hoja resumen. Pero los datos en las columnas a,b,c,d, se borran
(solo quedan los titulos) y luego aparecen estos datos en el rango g1:h4
g1= "Producto", h1="Producto"
g2= 2 , h2=2
g3= 52
g4= 96
He leido la macro de arriba a abajo durante horas, he buscado en internet para comparar; pero no entiendo donde esta el error.



no es necesario que "coloques" el rango a filtrar ni nada (todo lo hace la macro)... lo unico que necesitas es:
- que exista una hoja llamada "resumen"
- que contenga titulos en la fila 1 en las columnas A:E (producto, fecha..., cantidad, costo, observaciones)
- que tenga "libres" las columnas a partir de la F
- el codigo usa la columna G para obtener un listado de los productos (SIN repeticiones)
- el codigo usa la columna H como el rango de criterios para los filtros avanzados de cada producto a su hoja/libro

(creo que el ejemplo de macro +/- "habla por si mismo", pero)...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida