Hola:
Obdulia, aparte de lo que indica Cadetill para que se pueda leer mejor el código, ¿podrías indicar dónde tienes el problema o la duda, es decir, dónde falla?
Así, a bote pronto, parece que funciona, aunque no lo he probado
, lo que quiero decirte es que para poder ayudarte sería necesario que nos dijeras qué es lo que falla, o si te salta un mensaje de error, o si da un resultado que no es el que esperas ... para poder entrarle a ese código.
Un saludo