- Modelo
- 2 E30, 1 E39
- Registrado
- 20 Jul 2006
- Mensajes
- 44.342
- Reacciones
- 24.231
Hola foreros!! Tema un poco complicado y "delicado". 
Hace unos meses me hice un curso de Excel de 24 horas desde la nada hasta VisualBasic, que es lo que realmente me interesaba. Aprendí muchas cosas pero evidentemente no lo aprendí todo.
En el trabajo tenemos un archivo Excel que nos saca un reporte de lo que hemos hecho en el día. Este archivo dependía de un informático que lo iba actualizando según necesidades pero desde hace tiempo, ese informático ya no trabaja y el archivo está "abandonado" pero se sigue usando. La información que saca era incoherente, sin descripciones, pero como sacaba nuestro comentario y el número de trabajo, se seguía usando. Tras este curso de Excel me propuse mejorar, limpiar y optimizar el código para que se ejecute más rápido y... Arreglarlo.
En ratos libres fui metiendo horas al libro, estudiando y optimizando su código. Es un libro que importa CINCO archivos Excel, copia una hoja, la pega en este archivo y luego los cierra. Me di cuenta, estudiando el código, que dos de ellos eran completamente inútiles, y hay un tercero que es como ir de Getafe a Móstoles pasando por Aranjuez. Subimos el archivo a la red para que luego lo copie de nuevo a local.
Aquí hay margen de mejora. 
La mejora fue crear un código VBA del tipo Workbooks Open que nada más abrir el libro, modifique una celda. Esta celda contiene la ruta en local del archivo que había que subir a la red. Como cada usuario es distinto, el código obtiene el nombre de la carpeta de usuario y completa una ruta. Todo maravilloso y funciona perfecto. Tarda BASTANTE menos la importación y procesado de datos (de 40s a poco más de 10s). Un ajuste de tiempo considerable.
Ahora tengo un problema. A un compañero de trabajo NO se le ejecuta este código. El código está bien puesto y configurado como tiene que estarlo. Está probado en:
Windows 7, Excel 2010
Windows 10, Excel 2012
Windows 10, Excel 2021
En TODOS funciona. Ya no tenemos Excel 2012, por lo que no puedo probarlo ahí, solo el 2021 y yo el 2010 porque aún trabajo con Windows 7.
He probado a guardar el libro en Excel 2021 pero sigue sin ejecutarse. Aquí viene lo "delicado". Este compañero es "reacio" a los cambios y sospecho que un archivo que nos funciona a cinco personas de cinco lo esté "saboteando" de alguna manera para que no se ejecute correctamente. Si hago yo ese reporte, el 100% de las veces funciona, pero a él, casualmente, NUNCA le funciona. Una vez le pillé intentando engañarme provocando un fallo en el código, pero él no lo sabe.
La pregunta es la siguiente: ¿Existe alguna manera de evitar la ejecución del código VBA que está como Workbooks Open (ejecutar al abrir el libro) si se pulsa alguna tecla o se hace algo especial? Es que no me cuadra que en tres versiones distintas de Office funcione y precisamente a él, con la misma versión, no le funcione...
Saludos!!
Hace unos meses me hice un curso de Excel de 24 horas desde la nada hasta VisualBasic, que es lo que realmente me interesaba. Aprendí muchas cosas pero evidentemente no lo aprendí todo.

En el trabajo tenemos un archivo Excel que nos saca un reporte de lo que hemos hecho en el día. Este archivo dependía de un informático que lo iba actualizando según necesidades pero desde hace tiempo, ese informático ya no trabaja y el archivo está "abandonado" pero se sigue usando. La información que saca era incoherente, sin descripciones, pero como sacaba nuestro comentario y el número de trabajo, se seguía usando. Tras este curso de Excel me propuse mejorar, limpiar y optimizar el código para que se ejecute más rápido y... Arreglarlo.

En ratos libres fui metiendo horas al libro, estudiando y optimizando su código. Es un libro que importa CINCO archivos Excel, copia una hoja, la pega en este archivo y luego los cierra. Me di cuenta, estudiando el código, que dos de ellos eran completamente inútiles, y hay un tercero que es como ir de Getafe a Móstoles pasando por Aranjuez. Subimos el archivo a la red para que luego lo copie de nuevo a local.
Aquí hay margen de mejora. 
La mejora fue crear un código VBA del tipo Workbooks Open que nada más abrir el libro, modifique una celda. Esta celda contiene la ruta en local del archivo que había que subir a la red. Como cada usuario es distinto, el código obtiene el nombre de la carpeta de usuario y completa una ruta. Todo maravilloso y funciona perfecto. Tarda BASTANTE menos la importación y procesado de datos (de 40s a poco más de 10s). Un ajuste de tiempo considerable.

Ahora tengo un problema. A un compañero de trabajo NO se le ejecuta este código. El código está bien puesto y configurado como tiene que estarlo. Está probado en:
Windows 7, Excel 2010
Windows 10, Excel 2012
Windows 10, Excel 2021
En TODOS funciona. Ya no tenemos Excel 2012, por lo que no puedo probarlo ahí, solo el 2021 y yo el 2010 porque aún trabajo con Windows 7.
He probado a guardar el libro en Excel 2021 pero sigue sin ejecutarse. Aquí viene lo "delicado". Este compañero es "reacio" a los cambios y sospecho que un archivo que nos funciona a cinco personas de cinco lo esté "saboteando" de alguna manera para que no se ejecute correctamente. Si hago yo ese reporte, el 100% de las veces funciona, pero a él, casualmente, NUNCA le funciona. Una vez le pillé intentando engañarme provocando un fallo en el código, pero él no lo sabe.La pregunta es la siguiente: ¿Existe alguna manera de evitar la ejecución del código VBA que está como Workbooks Open (ejecutar al abrir el libro) si se pulsa alguna tecla o se hace algo especial? Es que no me cuadra que en tres versiones distintas de Office funcione y precisamente a él, con la misma versión, no le funcione...

Saludos!!

He probado a guardar el libro en Excel 2021 pero sigue sin ejecutarse. Aquí viene lo "delicado". Este compañero es "reacio" a los cambios y sospecho que un archivo que nos funciona a cinco personas de cinco lo esté "saboteando" de alguna manera para que no se ejecute correctamente. Si hago yo ese reporte, el 100% de las veces funciona, pero a él, casualmente, NUNCA le funciona. Una vez le pillé intentando engañarme provocando un fallo en el código, pero él no lo sabe.


