No se como enfocar la solucion a este problema.

27/11/2008 - 19:00 por Mambrino44 | Informe spam
Hola de nuevo amigos, siento tener que volver solicitar vuestra ayuda
pero tengo un nuevo problema que no se como enfocar para solucionarlo
efectivamente.

Estoy haciendo un libro excel para controlar y gestionar el material
que vendemos en la oficina. He estado probando varias maneras de
hacerlo y al final me he decantado por utilizar VBA para hacer casi
todo el libro pues la cantidad de datos a manipular es muy grande y si
lo hacia mediante formulas en las celdas cualquier operacion se volvia
eterna. Despues de muchas pruebas he visto que el uso de filtro
avanzado era lo que mas rapidez me proporcionaba en los calculos. Aun
asi, hay una rutina que no he podido agilizar y desde que comienza
hasta que termina puede pasar mas de una hora. Quisiera saber si es
posible hacer los calculos que a continuacion expongo, en un tiempo
mas reducido.

Tengo una lista de 32 vendedores en una hoja. Otra lista de 300
productos en la misma hoja y una base de datos de 60 mil filas con
informacion sobre ventas y reposiciones de productos de cada vendedor
en otra hoja. Mas o menos esto es la base de datos:

VENDEDOR / MOVIMIENTO / PRODUCTO / CANTIDAD
luis / Reposicion / producto 1 / 50
Manuel / Venta / producto 2 / 13
Jose / Reposicion / producto 3 / 24

... asi hasta sesenta mil filas.

Necesito una rutina en VBA que calcule en otra hoja el total de
reposiciones y ventas de cada producto y de cada vendedor. O sea que
obtengamos algo así :

LUIS
MANUEL etc.
REPOS. / VENTAS REPOS./ VENTAS
producto 1 3100 3050 2754 2743
producto 2 2765 2712 2715 2705
producto 3 2987 2955 2998 2989
etc.

Dicha rutina la tengo hecha utilizando filtro avanzado. El metodo que
he utilizado es que busque la reposicion de cada producto de un
vendedor utilizando un filtrado para cada vez, asi hasta que termina
con todos los productos, luego hace lo mismo con las ventas, pero
puede tardar varios minutos en terminar todos los calculos para un
solo vendedor por lo que si multiplico ese tiempo por los 32
vendedores que hay el tiempo total se va a mas de una hora de
calculos.
Se os ocurre otra manera de enfocar esta rutina para que tarde menos?

Como siempre os envio un gran saludo y muchas gracias por vuestro
tiempo y ayuda.

Juan Sánchez
 

Leer las respuestas

#1 Raúl Bajo Sanz
27/11/2008 - 19:17 | Informe spam
Yo creo que lo más cómodo sería una tabla dinámica.

"Mambrino44" wrote:

Hola de nuevo amigos, siento tener que volver solicitar vuestra ayuda
pero tengo un nuevo problema que no se como enfocar para solucionarlo
efectivamente.

Estoy haciendo un libro excel para controlar y gestionar el material
que vendemos en la oficina. He estado probando varias maneras de
hacerlo y al final me he decantado por utilizar VBA para hacer casi
todo el libro pues la cantidad de datos a manipular es muy grande y si
lo hacia mediante formulas en las celdas cualquier operacion se volvia
eterna. Despues de muchas pruebas he visto que el uso de filtro
avanzado era lo que mas rapidez me proporcionaba en los calculos. Aun
asi, hay una rutina que no he podido agilizar y desde que comienza
hasta que termina puede pasar mas de una hora. Quisiera saber si es
posible hacer los calculos que a continuacion expongo, en un tiempo
mas reducido.

Tengo una lista de 32 vendedores en una hoja. Otra lista de 300
productos en la misma hoja y una base de datos de 60 mil filas con
informacion sobre ventas y reposiciones de productos de cada vendedor
en otra hoja. Mas o menos esto es la base de datos:

VENDEDOR / MOVIMIENTO / PRODUCTO / CANTIDAD
luis / Reposicion / producto 1 / 50
Manuel / Venta / producto 2 / 13
Jose / Reposicion / producto 3 / 24

asi hasta sesenta mil filas.

Necesito una rutina en VBA que calcule en otra hoja el total de
reposiciones y ventas de cada producto y de cada vendedor. O sea que
obtengamos algo así :

LUIS
MANUEL etc.
REPOS. / VENTAS REPOS./ VENTAS
producto 1 3100 3050 2754 2743
producto 2 2765 2712 2715 2705
producto 3 2987 2955 2998 2989
etc.

Dicha rutina la tengo hecha utilizando filtro avanzado. El metodo que
he utilizado es que busque la reposicion de cada producto de un
vendedor utilizando un filtrado para cada vez, asi hasta que termina
con todos los productos, luego hace lo mismo con las ventas, pero
puede tardar varios minutos en terminar todos los calculos para un
solo vendedor por lo que si multiplico ese tiempo por los 32
vendedores que hay el tiempo total se va a mas de una hora de
calculos.
Se os ocurre otra manera de enfocar esta rutina para que tarde menos?

Como siempre os envio un gran saludo y muchas gracias por vuestro
tiempo y ayuda.

Juan Sánchez



http://www.microsoft.com/communitie...39e314ce0d

Preguntas similares