Hola a tod@s
Intentaré explicarme lo mejor posible. Si no, os ruego me pregunteis
sin problemas lo que creais necesario, pero es que me urge un poco
tomar una decisión respecto a lo que estoy haciendo.
Partimos de la base que cada mes se generan en la empresa unos 15.000
albaranes, que hay que facturar, cosa de la que se encarga el programa
de gestión, pero sobre los cuales posteriormente, nos vienen en una
Factura desde la central, los cargos por los trabajos realizados.
Viene a ser como una franquicia, en la que por ejemplo nos cobran "un
tanto" por gestión realizada. Y hay que comprobar esa Factura, para lo
que se me ha pedido una Hoja de cálculo, a la que volcándole el
archivo con los Albaranes, calcule la Factura que deberíamos recibir
desde la Central.
El volcado de datos y su ordenación ya está solucionado, (el programa
vuelca los datos sobre una hoja de Excel que solo tengo que Copiar y
Pegar, y de la ordenación, ya he hecho una Macro que se encarga de
ello).
El caso es que hay unos 12 casos de Tarifas distintas, y cada una de
ellas con 6 posibilidades, (para entendernos, Provincial, Regional,
Nacional, Internacional, Aereo, etc..., con los casos de Urgente,
Normal, Depósito, etc... para cada una de ellas), lo que me genera una
gran cantidad de Tablas a las que acudo continuamente en busca de
datos para realizar los cálculos.
En ocasiones tengo celdas con fórmulas del tipo:
=SI(AA5>0;AM5;SI(H5="";"";SI(I5=0;SI($J5="S";BUSCARV("A";INDIRECTO(S!
$P5);3);SI(SUMA($L5:$N5)<=5;BUSCARV("B";INDIRECTO($P5);
3);SI(SUMA($L5:$N5)<;BUSCARV("C";INDIRECTO($P5);
3);BUSCARV("D";INDIRECTO($P5);3))));SI($J5="S";BUSCARV("A";INDIRECTO(S!
$P5);4);SI(SUMA($L5:$N5)<=5;BUSCARV("B";INDIRECTO($P5);
4);SI(SUMA($L5:$N5)<;BUSCARV("C";INDIRECTO($P5);
4);BUSCARV("D";INDIRECTO($P5);4))))))
pero digamos que me voy apañando.
El problema: Estoy manejando cerca de 800.000 celdas con fórmulas, y
todavía estoy cerca del 60% del total de "programación" de la Hoja.
El "peso" ya es de 32 Mb, lo que me hace pensar, que si sigo
trabajando en la Hoja como vengo haciéndolo hasta ahora, poniendo
fórmulas en cada delda y utilizando celdas de apoyo, dentro de poco
manejar una hoja con semejante "peso" que puede llegar a alcanzar,
puede resultar engorroso, a la par que lento, y por tanto hacer que
todo el trabajo que vengo realizando sea inutil.
Se os ocurre alguna manera de realizar una hoja tan grande que
"aligere" el peso final?
Es correcto tener celdas con fórmulas tan grandes? O es que estoy
complicándome la vida?
Mis conocimientos de VBA son muy básicos.
Se agradecen opiniones.
Gracias por adelantado.
Joan Antoni
Leer las respuestas