Bueno creo que ya tengo una primera alternativa...
Se trata de la mejora del código que ofrecí anteriormente. Solucionando sus problemas. Casimiro tendrá que revisar lots cambios hechos con respecto al programa que el subió hace unas horas.
Aquí el archivo que he subido.
Saludos,
Chris