Macro Excel 2007. Consulta!

Es que tengo una carpeta en mi escritorio que se llama proyecto1,
dentro de ella hay un archivo de excel y una carpeta a la que he llamado
bd, dentro del carpeta bd tengo otros libros que dependiendo del menu
que escojan en el archivo de excel que esta en la carpeta del proyecto1
se abriría los archivos de la carpeta bd...
Lo que pasa es que necesito una macro que me abra esos archivos sin necesidad de que
siempre que cambie de lugar la carpeta me toque modificarle la ruta ya
que siempre que lo copio en una memoria o en otro computador y lo
ejecuto desde la memoria u otro sitio me toca modificarle la ruta en
donde esta situada la carpeta proyecto 1 y no eficiente hacerlo
Ademas quiero que si abro un libro y vuelvo a ejecutar esa macro no me salga
el aviso que el libro con nombre tal ya esta abierto y que si lo abro de
nuevo se perderá la información. Ya que quiero que valide que si esta
abierto simplemente me dirija hasta dicho libro y si no esta abierto me
lo abra mediante la macro..
Gracias..

1 Respuesta

Respuesta
1

Paso a responderte lo último: para evitar que muestre mensaje al intentar abrir un libro ya abierto hay varios métodos pero creo que este es el más sencillo.

En este ejemplo se evita el mensaje y se pasa a otra sección del código solo para activarlo:

Sub AbreNuevamente()
'x Elsamatilde
Application.DisplayAlerts = False
'si dá error x estar ya abierto, pasa a la sección yaesta
On Error GoTo yaesta
'abre el libro y se posiciona en la 1er hoja
Workbooks.Open ThisWorkbook.Path & "\cumples.xlsm"
ActiveWorkbook.Sheets(1).Select
On Error GoTo 0
Exit Sub
yaesta:
'se activa el libro seleccionando la 1er hoja
Workbooks("cumples.xls").Activate
ActiveWorkbook.Sheets(1).Select
End Sub

Con respecto al cambio de directorios (y por favor no dejes 2 temas en una misma consulta), te comento algunos detalles:

Si tu libro está en carpeta A y allí mismo se encuentra una subcarpeta B, al llamar a libros de esta subcarpeta B el modo es utilizando 'ThisWorkbook. Path' que es el directorio del libro activo. Por ej:

ruta = thisworkbook.path & "\subarpetaB\"

Para llamar a algún libro entonces sería:

Workbooks.Open ruta & "librob.xlsm"

De este modo no importa dónde coloques tu libro y las subcarpetas.

Espero haber sido clara y no dejes la consulta sin finalizar.

Sdos

Elsa

¿Está todo aclarado? No olvides entonces finalizar la consulta . Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas