[RESUELTO] Error Aleatorio de suma?

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
JorgeSanti
Mensajes: 23
Registrado: Dom Abr 10, 2016 7:36 pm

[RESUELTO] Error Aleatorio de suma?

Mensaje por JorgeSanti »

Hola a Todos.
Tengo un inconveniente al sumar un listado de numeros, y no logro encontrar el error!!
Ni el patron del mismo, si es que tiene uno.
El procedimiento es simple: sacar totales de una columna de importes, según otra columna de codigos.
En una hoja de Calc, usaría un sumar. si, pero al hacerlo con una macro, me pareció mejor leer cada fila, e ir agregando a un totalizador.
Nada mas simple!! Algunas veces funciona bien.
Otras veces NO.
Si, casi siempre, el error es mio, pero aunque espero que aquí tambien, no logro encontrarlo.
He probado el proceso, revisando paso por paso, sumando por sumando y nada.
La macro lee correctamente cada variable, pero en un determinado momento suma cualquier cosa.
Digo cualquier cosa, pues si repito la macro el resultado es el mismo, repetidas veces, pero si cierro la hoja y vuelvo a abrir, sin cambiar ningun dato, el total da distinto.
Adjunto archivo de ejemplo.
En la hoja activa (la que tiene el boton de proceso) se listarán los totales por codigo, de los datos que estan en la hoja Temp.
Se verá facilmente que la primera codificacion da error (numero muy grande). El resto esta todo ok.
En la hoja TEMP (columna H) grabé el resultado (sumatoria) acumulado de cada fila (con la misma macro), y se nota cuando cambia significativamente sin explicación, para mi al menos. Tambien agregue la misma sumatoria con funciones de calc (sin macro) y la misma da correcto.
Agradeceré un pista al menos, para ver por donde buscar. Cambié la forma de hacerlo, el tipo de variable, usar matriz, pero no lo puedo solucionar.
Gracias de antemano.
Adjuntos
Ejemplo Error.ods
(34.08 KiB) Descargado 206 veces
Última edición por JorgeSanti el Jue Jun 23, 2016 12:22 am, editado 1 vez en total.
Apache OpenOffice 4.1.2.
Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Error Aleatorio de suma?

Mensaje por mauricio »

Estas ordenando por importe, debería ser por código o producto

Código: Seleccionar todo

mCamposOrden(0).Field = 3   'Campo a ordenar  - Los campos empiezan en 0
Por otra parte, has seleccionado la forma más larga e ineficiente, usa subtotales: https://wiki.openoffice.org/wiki/ES/Man ... Subtotales

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
JorgeSanti
Mensajes: 23
Registrado: Dom Abr 10, 2016 7:36 pm

Re: Error Aleatorio de suma?

Mensaje por JorgeSanti »

Gracias, por tu respuesta Mauricio!
En realidad, la hoja temp, quedó ordenada así solo para el ejemplo. Esta es una hoja temporal que creo solo para este calculo y luego borro.
En esta hoja (Temp) es el destino de un filtro, que luego ordeno por código. Pero suprimí, en haras de ser breve, todo el resto y copie manualmente una serie de datos, en los que se reflejaba el error. Si no estan ordenados por código (columna cero) la macro no funciona.
No utilizo subtotales, por el hecho que no sé como asignar el resultado de los subtotales a una variable, que pueda manejar.
Por ello, a pesar de ser un poco mas ineficiente, preferí trabajar de esta manera, y la cantidad de filas raramente llegará a cantidad expuesta como en el presente caso, por lo que tampoco tarda demasiado.
Pero lo que mas me preocupa, en sí es la desconfianza que me genera este error.
Como se que no es bien visto, tratar mas de un tema en un hilo, no preguntaré como asignar a variables, tanto los datos (codigo y descripcion) como los subtotales (cantidad e importe) , pues me interesa más no tener este tipo de inconsistencias en el código.
Estoy haciendo algo equivocado, como para que de este error en una simple suma??? Se puede evitar??
Apache OpenOffice 4.1.2.
Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Error Aleatorio de suma?

Mensaje por mauricio »

JorgeSanti escribió:No utilizo subtotales, por el hecho que no sé como asignar el resultado de los subtotales a una variable, que pueda manejar.
Los subtotales de los da en celdas... solo tienes que buscar cada celda vacía en tus datos y devolver la celda de la columna de importes... es mucho más sencillo y rápido que lo que tienes actualmente...

Pues he ejecutado varias veces la macro y da los mismos totales siempre que con subtotales...
resultados.png
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
JorgeSanti
Mensajes: 23
Registrado: Dom Abr 10, 2016 7:36 pm

Re: Error Aleatorio de suma?

Mensaje por JorgeSanti »

Gracias nuevamente Mauricio!!
Excelente consejo.
Voy a ponerme a ver los subtotales, entonces, que no tengo dudas, es mucho mas eficiente.
La conclusión del tema, para darlo por cerrado, sería no utilizar este tipo de acumuladores, sino usar siempre los subtotales, es correcto???
Espero confirmación, asì doy por resuelto el tema.
Saludos cordiales.
Jorge.
Apache OpenOffice 4.1.2.
Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Error Aleatorio de suma?

Mensaje por mauricio »

JorgeSanti escribió:La conclusión del tema, para darlo por cerrado, sería no utilizar este tipo de acumuladores, sino usar siempre los subtotales, es correcto???
Yo no lo pondría así... cada proyecto es diferente, habrá algunos en donde los subtotales no sean el mejor camino y habrá que buscar otro... afortunadamente en programación, siempre hay más de un camino.

Saludos

Si consideras que el problema ha sido resuelto, por favor, marca como resuelto el tema, de esta forma queda como referencia para futuras consultas y además tenemos un foro más ordenado. Gracias.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
JorgeSanti
Mensajes: 23
Registrado: Dom Abr 10, 2016 7:36 pm

Re: Error Aleatorio de suma?

Mensaje por JorgeSanti »

En realidad, sigo sin saber por que da el error.
Si bien, gracias a vuestro aporte, pude continuar, y de paso, aprendí un poco mas, con el uso de subtotales.
Doy el tema por cerrado, ya que parece tampoco da para más.
Gracias a todos y en especial a Mauricio.
Abrazo.
Jorge.
Apache OpenOffice 4.1.2.
Windows 7
Responder