Abrir libro con macro condicional

Hola, tengo un programa de cotización que me guarda automáticamente cada cotización hecha con el nombre del cliente, digo esto porque la macro que ejecuto tienen que ver con esto ya que cuando esta hecha la cotización del cliente la guardo en una carpeta con el nombre del cliente valga la redundancia. He allí mi problema con la macro para abrir el libro ya que una vez el la cotización dentro de la carpeta con su propio nombre ya no me abre el libro, lógicamente se que el problema es la dirección del directorio, lo que deseo es algo condicional, es decir que si me da error buscarla en un directorio arriba, no se si me entienden pondré algo para que lo vean.
Workbooks.Open ThisWorkbook.Path & "\" & "CLIENTES.xlsm"
    Application.Run "CLIENTES.XLSM!BUSCARCLIENTE"
    If Err <> 0 Then
Workbooks.Open ThisWorkbook.Path & "\" & "cotizacion pg" & "\" & "CLIENTES.xlsm"
    Application.Run "CLIENTES.XLSM!BUSCARCLIENTE"
End If
End Sub
Yo se que esta mala y l que quiero es que me corrijan por favor, gracias de antemano

1 respuesta

Respuesta
Esta macr intenta abrir el primer libro, si da error va a la siguiente instrucción para abrir y si no va al fin
Sub Macro1()
On Error GoTo uno
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "CLIENTES.xls"
GoTo dos
uno:
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "cotizacion pg" & "\" & "CLIENTES.xlsm"
dos:
End Sub
GRACIAS, le he probado pero creo que hay de definirla mejor, en mi pregunta hice algo malo y fue hacerte ver que el otro directorio era un sub del primero cuando es al contrario, es decir que lo que quiero es que en el sub directorio me busque el libro clientes y de no encontrarlo que lo busque en un directorio más arriba.
He acondicionado la macro que me enviaste para buscar el archivo manualmente en caso de no encontrarlo en el primero pero aun así me da ciertos errores porque ademas lo que quiero es que cuando abra clientes que me ejecute un formulario en "clientes.xls", mira lo que hice
Sub BUSCARCLIENTE()
'ABRE LA PAGINA DE BASE DE DATOS CLIENTES
    Sheets("DESCRIPCION").Select
    Sheets("DESCRIPCION").Range("D6").Select
    ActiveCell.ClearContents
On Error GoTo uno
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "CLIENTES.xls"
Application.Run "CLIENTES.XLSM!BUSCARCLIENTE"
GoTo dos
uno:
Shell pathname:="EXPLORER.EXE /n,/e,C:\ " & CurDir(), windowstyle:=1
    Application.Run "CLIENTES.XLSM!BUSCARCLIENTE"
dos:
End Sub
Creo que el error esta en que aun encontrando el primer directorio me hace lo segundo y no debería ser así.
Explica porque no entiendo nada del código que me has pegado. ¿De dónde coges el nombre del libro a buscar? ¿En qué celda o donde esta guardado? ¿Cuál ha de ser la lógica? Es decir, cojo el nombre que esta en la celda xy y busco un libro que se llamen así (xy. Value).xls en el directorio actual y si no está un nivel más arriba.

Añade tu respuesta

Haz clic para o