Bueno, he tardado unos dias en contestar porque el problema algunas veces salía y otras no. Pero quiero decir que la primera respuesta a mi consulta era la acertada. Y el hecho que en un ordenador fallara y en otro no, creo que se debía a problemas con la impresora de tickets. Por eso solo fallaba cuando se le daba a imprimir. En resumen el problema se ha resuelto.
En referencia a lo de la variable global suma, quiero aclarar que los dos procedimientos son diferentes. con un botón se ejecuta uno y con otro boton diferente se ejecuta el otro. Así que lo que pase en uno de ellos no afecta al otro. No se si me he esplicado...
Que los dos a la vez no funcionan nunca.