Saltar al contenido

Como abrir un archivo .xlsm desde cualquier pc


Recommended Posts

publicado

Ya se que se ha preguntado un monton de veces, pero no se si es por la version (Excel 2010) o que es lo que pasa, pero no se como poner el codigo para que una macro me abra un archivo de excel que estan alojados en la misma carpeta.

La macro se en cuentra en el libro personal, no en la misma carpeta del archivo que quiero abrir ni del que estoy ejecutando la macro.

Con esto no me sirve ya que me da error 1004

Workbooks.Open ThisWorkbook.Path & "\" & "TARIFADATA.xls"[/CODE]

¿Alguna sugerencia?. Gracias de antemano.

publicado

Prueba a añadirle una "m" a la extensión de tu archivo........si como dices en el título se trata de un archivo .xlsm, eso no lo estás recogiendo en tu línea de código.....

Un saludo,

Tese

publicado

.

ThisWorkbook es el libro que contiene la macro que se está ejecutando, que en este caso está en el libro personal.

Hemos de referirnos al libro activo.

Workbooks.Open[B] ActiveWorkbook[/B].Path & "\" & "TARIFADATA.xlsm"[/CODE]

publicado

Hola Tes1969

Muy buena observacion, pero ha sido un lapsus. el archivo es TARIFADATA.xlsm. Lo tengo asi en el codigo. Gracias de todos modos.

un saludo

publicado

Hola Macro Antonio (buen juego de palabras en el nick).

La macro que se está ejecutando está en el archivo "personal.xlsb". El archivo en el que se aplica la macro es un .xls y debe realizar una llamada a TARIFADATA.xlsm para realizar un volcado de datos de este archivo con macro. Lo tengo todo ok, menos el poder llamarlo desde el archivo .xls. Este archivo .xls se ejecuta desde la misma carpeta pero tengo que ejecutarlo a veces en distintos ordenadores.

Hasta ahora lo hacia excribiendo toda la ruta

Workbooks.Open ("\Documents and Settings\My Documents\Datos\CLIENTES\TARIFADATA.xlsm")[/CODE]

, pero como tengo que utilizarlo en varios ordenadores no veo como abrirlo.

No se si te doy mas pistas con esto o lo lio mas. ;-)

publicado

Esa opcion ya la he barajado. ¿Pero como me ahorro el llamar a TARIFADATA.xlsm sin tener que escribir toda la ruta?.

No solo tendría que copiar la macro a cada ordenador, tambien tendria que modificar todas las lineas de la macro que hacen referencia al usuario de cada uno de los ordenadores donde lo copiase. Me explico.

ORDENADOR 1

Workbooks.Open ("\Documents and Settings\usuario01\My Documents\Datos\TARIFADATA.xlsm")

ORDENADOR 2

Workbooks.Open ("\Documents and Settings\usuario11\My Documents\Datos\TARIFADATA.xlsm")

ORDENADOR 3

Workbooks.Open ("\Documents and Settings\usuario18\My Documents\Datos\TARIFADATA.xlsm")

ETC, ETC.

Como ves, sería un autentico lastre trabajar con una macro así ya que hay varias llamadas a TARIFADATA.xlsm durante el proceso de la Macro y modificar cada una las lineas en cada uno de los ordenadores sería emplear muuuuucho tiempo.

:untroubled::untroubled:

publicado

Hola Macro Antonio

Tu insistencia me ha provocado que pruebe opciones :-) y lo que me ha funcionado, aunque no era exactamente lo que buscaba, es lo siguiente.

Workbooks.Open ThisWorkbook.Path & "\" & "TARIFADATA.xlsm"[/CODE]

Para que me haya funcionado he tenido que copiar TARIFADATA en el carpeta de macros personal. No se porque razón ActiveWorkbook no va a la direccion de la carpeta del libro que está activo, si el libro desde el que se llama a TARIFADATA.xlsm están en la misma carpeta.

Me parece que Excel toma como libro activo la macro (que esta en la carpeta de macros personal.xlsb) y no el archivo .xls que está activo en ese momento y del cual llamo a TARIFADATA.

¿Es posible que ActiveWorkbook solo trabaje con libros con Macros y no con libros.xls?

publicado
Me cuesta creer lo que me cuentas.

Por la tarde lo pruebo y te comento.

ya ya!! a mi tambien me resulta muy extraño. Pero he probado de muchas maneras y ActiveWorkbooks no encuentra a TARIFADATA.xls

Te indico el proceso

Abro un libro llamado datosclienteabril2013.xls que esta en la carpeta DOCUMENT\SETTINGS\USUARIOS01\CLIENTES

Sin cambiar nada, ni de hoja, ni de ventana, voy a Vista>ejecutar macros> y activo una macro que se encuentra en el archivo personal de macros. una de las lineas de esta macro hace llamada a TARIFADATA.xlsm, que tambien está en la carpeta DOCUMENT\SETTINGS\USUARIOS01\CLIENTES (antes lo hacia con Chdir, pero como ahora necesito ejecutarlo desde varios ordenadores obviamente ya no vale).

Si utilizo Activeworkbooks me sale error 1004 y define el error que no encuentra el archivo "C:\TARIFADATA.XLS" , lo busca en raiz C: en vez de usar la direccion del libro activo, que se supone que es datosclienteabril2013.xls.

ya te digo, o estoy pasando algo por alto o estoy de Lunes o no logro ver donde fallo.

: Desesperanza:: Desesperanza:

publicado

Las pruebas que hago no me confirman lo que me cuentas.

Añade esta macro en tu Personal.xlsb

Abre cualquier libro y ejecuta la macro a ver que te dice.



Sub Directorios()
MsgBox _
"ThisWorkbook.Path-Directorio de Personal.xlsb: " & _
ThisWorkbook.Path & Chr(10) & Chr(10) & _
"ActiveWorkbook.Path-Directorio de libro que ha ejecutado esta macro: " & _
ActiveWorkbook.Path
End Sub



[/CODE]

publicado

Hola Macro Antonio

En primer lugar gracias por la ayuda desinteresada. He probado tu Macro y el Mensaje en el box sale como debe salir pues es lo correcto. Esto demuestra que efectivamente ACTIVEWORKBOOK sirve para cualquier extension de archivo.

El problema ya lo he localizado, es que Windows8 no maneja igual los archivos temporales o algo asi debe ser, porque en donde creo las macros (windows xp) funciona todo perfectamente pero cuando lo llevo a Windows8 empiezan los problemas.

Gracias por tu ayuda, eres una MACHINE ;-)

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.