Problema al ejecutar exe desde vba

Tengo un archivo de excel que mediante el comando shell ejecuta un Bat que a su vez ejecuta un exe para enviar y recibir archivos. Todo hiba bien hasta que a los pocos dias de instalar W8 este exe dejó de funcionar. Lo desconcertante es que al ejecutar el bat directamente el exe si trabaja y completa la secuencia de envio de archivos sin problema. Revisando la ruta de acceso esta si es correcta y lo que noté es que ejecutando con el comando shell si se activa el exe y incluso trata de seguir el proceso, pero se queda al 20% de la rutina y se queda trabado. Realice pruebas insertando un vínculo del bat en una hoja de excel para ejecutarlo y como en el caso de shell no termina de ejecutarse. Todo indica que es un problema ajeno a la ruta y a su diseño pues este funcionaba bien antes de actualizar a W8. Es posible que sea la configuración de algún sistema... ¿alguien ha tenido este problema?, ¿se debe usar otro comando?, ¿cual seria?.... Espero alguien pueda apoyarme. Saludos.

1 respuesta

Respuesta
1

Esta es la sintaxis del shell

Shell(pathname[,windowstyle])

En windowstyle puedes probar con diferentes valores:

Constant    Value    Description
vbHide    0    Window is hidden and focus is passed to the hidden window.
vbNormalFocus    1    Window has focus and is restored to its original size and position.
vbMinimizedFocus    2    Window is displayed as an icon with focus.
vbMaximizedFocus    3    Window is maximized with focus.
vbNormalNoFocus    4    Window is restored to its most recent size and position. The currently active window remains active.
vbMinimizedNoFocus    6    Window is displayed as an icon. The currently active window remains active.

Prueba con los valores del 0 al 6, revisa si alguno de ellos te funciona.

El problema sigue aún usando todas las constantes, esta es la instrucción:

Shell (ThisWorkbook.Path + "\BatsTP\W1.- Enviar de PC a la Terminal.bat"), vbMaximizedFocus

El exe se ejecuta al inicio, pero al momento de llegar al código donde envía un archivo se detiene y se queda atorado, sin embargo al abrir directamente el bat, el codigo se ejecuta si problema, gracias por la atención pero no se si puedas apoyarme para solucionar esto.

Saludos.

Intenta cambiar el nombre bat por un nombre corto, que no pase de 8 caracteres, por ejemplo:

Shell (ThisWorkbook.Path + "\BatsTP\W1.bat"), vbMaximizedFocus

También revisa que no hay espacios en la ruta (ThisWorkbook. Path), o prueba ejecutar en "C:\", por ejemplo:

Shell ("C:\BatsTP\W1.bat"), vbMaximizedFocus

Tal vez el problema sea que no pueda leer los espacios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas