Actualizar TBD desde un .bat

Estoy tratando que desde un .Bat abra un excel y que ejecute el comando actualizar todo

Ya logre que el punto bat abra el excel

"C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" "C:\Ventas\Ventas Generales.xlsx"

Ahora me faltaría que se ejecute el refreshall

Respuesta
1

Tal como planteas la cuestión, creo que el problema está más en el ámbito de Excel 2007 (o posteriores, a juzgar por la extensión XLSX del archivo que intentas abrir) que del propio MSDOS. No soy experto en Excel, y mucho menos en las versiones más actuales, pero por lo que he podido ver en la red para que se ejecute algo al abrir un archivo Excel debe programarse una rutina de Visual Basic de nombre auto_open. En tu caso contendría una invocación a la función (o método, no domino la jerga de la Programación Orientada a Objetos) refreshall. He hecho algún intento en este sentido, pero me he encontrado con dos problemas: el primero que parece que para que en un archivo Excel se contemple la posibilidad de ejecutar macros debe tener la extensión XLSM y el segundo que hay que configurar de algún modo la seguridad de Office para que permita ejecutar las macros. Mis intentos para salvar este segundo obstáculo no han tenido éxito, por lo que no puedo darte la solución final. Pero insisto en que el problema no está en el nivel MSDOS (que me parece que ya has resuelto tú solo) sino en el de la versión de Excel con la que trabajas.
Seguiré intentando completar el puzzle pero prefiero contarte esto porque a lo mejor tú puedes ir más deprisa que yo en encajar las piezas que faltan.

Cumpliendo lo prometido he seguido investigando y he conseguido que un archivo Excel 2007 ejecute un códig VB al abrirlo. Pero no lo conseguí (sin que sepa bien por qué) con Auto_Open sino con WorkBook_Open. Aunque previamente tuve que crearme un certificado digital y firmar el código con el certificado digital creado. Como es un poco farragoso y a lo mejor resulta que lo conoces mejor que yo no te contaré lo que he hecho a no ser que te interese.

Pero bueno que, tal como pensabas, es posible hacer lo que pretendes y que el "truco" está ya en el ámbito de Excel porque la parte de MSDOS ya la has asimilado.

Muchas Gracias, voy a crear la macro en VB

El Programador de Tareas ejecuta el .bat que abre el excel todos los días a las 6am y dentro del excel esta macro

Sub auto_open()

ActiveWorkbook.RefreshAll

ActiveWorkbook.Save

Aplication.quit

End Sub

Así tengo los datos actualizados de la planilla a primera hora

Saludos!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas