VB: Abrir un libro, si ya está abierto activarlo

Estoy creando un pequeño program en un pendrive. Parto de una hoja en la que he ido poniendo diversos botones que abren distintos libros. Funciona bien, pero tengo que tener en cuenta que el pendrive en distintor equipos toma diferentes letras de unidad.Lo he resuelto poniendo una listbox en la hoja inicial en la cual, lo primero, elijo la unidad asignada al pendrive por el equipo. A partir de ahí, todo funciona bien.

El problema es que si olvido elegir la unidad del pendrive, da error. Lo he resuelto con un "On Error GoTo".

He querido dar una vuelta más de tuerca, e intentar que cuando pulso el botón para abrir un libro, si este está abierto, lo active en lugar de dar error, con el mismo control de error. El problema es la solución a este error, puede generarme el otro error de la unidad. Adjunto el código.

Private Sub Resultados_Click()
Call establecer_rutas 'Establece la ruta del archivo a partir de la unidad obtenida del ListBox
On Error GoTo ControlError
Workbooks("RESULTADOS.xls").Activate

ActiveWorkbook.Save 'Guarda los cambios de la actualización de resultados'
Worksheets("Resultados").Activate
Exit Sub
ControlError:
Select Case Err.Number
Case 9
Workbooks.Open Ruta_Resultados
Resume
Case 1004
Mensaje = "¡ERROR: Unidad de disco incorrecta!" ' Define el mensaje.
Estilo = vbOKOnly + vbInformation ' Define los botones.
Título = "Error" ' Define el título.
Ayuda = "DEMO.HLP" ' Define el archivo de ayuda.
Ctxt = 1000 ' Define el tema
' el contexto
' Muestra el mensaje.
Respuesta = MsgBox(Mensaje, Estilo, Título, Ayuda, Ctxt)
Case Else
End Select
End Sub

El problema es que si está mal indicada la unidad, al intentar activar el libro da el error 9 y lo resuelve intentando abrir el libro, pero al tener mal la unidad de disco da el error 1004, pero ya no lo resuelve por darse en el propio "ControlError". ¿Cómo puedo resolverlo?

GRACIAS de antemano por vuestro tiempo.

Añade tu respuesta

Haz clic para o