Terminar bucle al no encontrar libro abierto

Ante todo quiero agradecerte por la ayuda que me puedas brindar. Tengo una macro que extrae información de determinados libros que tengo abiertos (la cantidad de libros varía según el departamento). Inmediatamente me extrae la información del segundo libro abierto, lo cierra y sigue con el siguiente. El problema es que necesito que cuando ya no encuentre libros abiertos no me genere error para poder ejecutar otras órdenes en el libro que posee la macro. Lo anterior se debe a que trabajo con las ordenes For u= 125 (número máximo de municipios en un departamento de Colombia) y Next u. Actualmente lo que hago es que cuando me genera el error le doy finalizar y ejecuto otra macro con la información ya consolidada. ¿Cómo hago para que cuando no encuentre el siguiente libro abierto no me presente error y pueda seguir ejecutando otras órdenes? El siguiente es el resumen de lo que hago en la primera macro:
Sub CULTIVOS()
For u = 1 To 125
Workbooks(1). Sheets(1). Activate
Workbooks(2). Sheets(1). Activate
"ejecuta el procedimiento"
Workbooks(2). Sheets(1). Activate
ActiveWorkbook.Close False
Workbooks(2).Sheets(1).Activate
Next u

1 Respuesta

Respuesta
1
Cuando detectes que no encintro un libro, le dices exit for y termina el for o se sale de el y ejecuta al isntrucion siguiente al next.
Hola recibe un cordial saludo. Quiero darte las gracias por dedicarme tu tiempo y quedo muy agradecido por tu excelente trabajo y ayuda. Te cuento que soy nuevo en esto de las macros.
Mira que hice lo que me dijiste pero no me soluciona el problema.   Si pongo el Exit for antes del Next me saca del bucle  y solo me trabaja un libro dejándome pendientes el resto de libros abiertos.   Si pongo el Next for justo después del  Workbooks(2).Sheets(1).Activate, también me saca del bucle trabajando unicamente un libro de los muchos abiertos .
De pronto no te entendí o no me hice entender y te voy a explicar en qué consiste mi macro.
En un libro tengo grabado el código. Después de abrir este libro, abro por ejemplo otros 100 libros que son formularios estándar que me envían de todo el país. Una vez La macro extrae la información del segundo libro abierto, lo cierra y va al siguiente libro siendo este ahora el segundo libro abierto. De esta manera me extrae la información de todos los libros abiertos. El problema es que cuando cierra todos los libros y no encuentra un segundo libro abierto, me presenta error porque el bucle for no se ha completado. Yo deseo que me ayudes con una instrucción que haga que cuando no encuentre un segundo libro abierto (Workbooks(2).Sheets(1).Activate), termine el bucle y pase a la rutina final que es la consolidación y organización de la información extraída de todos los libros.
Una solución es cambiar en la instrucción for el valor de la variable, pero lo que pasa
es que este trabajo lo ejecutan terceros.
Te agradezco por la atención que le puedas dar a mi pregunta. Chao
usa un On error goto etiqueta
Y en etiqueta que es una marca dentro delc odigo colocas el código que necesitas cuando de error porque no hay libros abiertos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas