SOLVED

Hola, necesito ayuda con una macro, a veces funciona, y otra no. shell32.dll ShellExecute Lib

Copper Contributor

Hola, necesito ayuda con una macro, a veces funciona, y otra no, cómo puede ser?

 

Es en un comando de envíos de mensajes por whatsapp:

 

TEXTO = VBA.Replace("whatsapp://send?phone=" & CONTACTO & "&text=" & MENSAJE, " ", "%20")

Application.Wait Now + TimeValue("00:00:01")

Ejecutar = ShellExecute(hwnd, "Open", TEXTO, &O0, &O0, SW_NORMAL)

 

en Ejecutar, unas veces sí escribe el texto en la barra de mensajes de Whatsapp, y otras no, esto está en un bucle. Pasa a buscar al siguiente contacto, y eso, a veces sí a veces no, incluso mismo texto, sin tildes ningún caracter raro nada de eso.

 

Muchas gracias por su ayuda.

 

 

shell32.dll

ShellExecute Lib

2 Replies
best response confirmed by DiegoAVillegas (Copper Contributor)
Solution

@DiegoAVillegas 

El problema que estás experimentando puede deberse a varios factores, como la velocidad de ejecución de la macro, la disponibilidad de recursos del sistema o incluso problemas de compatibilidad entre la macro y el sistema operativo.

Aquí hay algunas sugerencias para abordar y diagnosticar el problema:

  1. Asegúrate de que el contacto y el mensaje estén formateados correctamente: Asegúrate de que las variables CONTACTO y MENSAJE estén formateadas correctamente y no contengan caracteres especiales que puedan causar problemas en la URL de WhatsApp.
  2. Aumenta el tiempo de espera: La función Application.Wait espera un segundo antes de ejecutar ShellExecute. Dependiendo de la velocidad de tu sistema y de la conexión a internet, un segundo puede ser insuficiente para que WhatsApp abra y procese el enlace correctamente. Intenta aumentar el tiempo de espera para ver si eso ayuda a que la macro funcione de manera más consistente.
  3. Maneja errores: Agrega manejo de errores a tu código para detectar y manejar posibles problemas durante la ejecución. Por ejemplo, puedes usar la instrucción On Error Resume Next para ignorar errores y continuar con el bucle, o usar On Error GoTo para dirigirte a una rutina de manejo de errores específica que te brinde más información sobre el problema.
  4. Prueba con otras opciones de ejecución: En lugar de usar ShellExecute, puedes probar otras opciones de ejecución, como FollowHyperlink o CreateObject("WScript.Shell").Run, para ver si eso resuelve el problema.
  5. Actualiza el sistema y las aplicaciones: Asegúrate de que tu sistema operativo y la aplicación de WhatsApp estén actualizados a la última versión disponible. A veces, los problemas de compatibilidad pueden resolverse con actualizaciones de software.
  6. Depura el código: Utiliza el depurador de VBA para ejecutar la macro paso a paso y observar el comportamiento en cada línea de código. Esto puede ayudarte a identificar dónde se produce el problema y qué podría estar causándolo.

Si después de probar estas sugerencias sigues experimentando problemas intermitentes, podría ser útil obtener más información sobre el entorno de tu sistema y cualquier mensaje de error específico que recibas durante la ejecución de la macro. Esto podría ayudar a diagnosticar y resolver el problema de manera más efectiva. El texto y los pasos se editaron con la ayuda de IA.

 

*El texto ha sido traducido automáticamente; puede contener errores gramaticales y/o de expresión.

 

¡Mis respuestas son voluntarias y sin garantía!

 

Espero que esto te ayudará.

¿Fue útil la respuesta? Marca como mejor respuesta y dale me gusta!

Esto ayudará a todos los participantes del foro.

Buenas.

Le agradezco muchísimo su respuesta. Disculpe que no le haya contestado.

Tal como indica en el punto 1) es correcto el formato, y no tienen caracteres especiales. Y el punto 2) le di 2 segundos y funcionaba perfectamente. Desde que está dando problemas, intenté hasta con 10 segundos y nada. Intentaré los puntos 3), 4) y 6). Gracias de nuevo.

La cuestión que me sigue dando vueltas es esta; ya quedó funcionando perfectamente. Y luego de unos meses, ya no funcionaba. Lo único que se hizo, fue actualizar el Excel. El código ya no lo toqué. Ahora intentaré seguir sus indicaciones.

Gracias, una lindo día.
1 best response

Accepted Solutions
best response confirmed by DiegoAVillegas (Copper Contributor)
Solution

@DiegoAVillegas 

El problema que estás experimentando puede deberse a varios factores, como la velocidad de ejecución de la macro, la disponibilidad de recursos del sistema o incluso problemas de compatibilidad entre la macro y el sistema operativo.

Aquí hay algunas sugerencias para abordar y diagnosticar el problema:

  1. Asegúrate de que el contacto y el mensaje estén formateados correctamente: Asegúrate de que las variables CONTACTO y MENSAJE estén formateadas correctamente y no contengan caracteres especiales que puedan causar problemas en la URL de WhatsApp.
  2. Aumenta el tiempo de espera: La función Application.Wait espera un segundo antes de ejecutar ShellExecute. Dependiendo de la velocidad de tu sistema y de la conexión a internet, un segundo puede ser insuficiente para que WhatsApp abra y procese el enlace correctamente. Intenta aumentar el tiempo de espera para ver si eso ayuda a que la macro funcione de manera más consistente.
  3. Maneja errores: Agrega manejo de errores a tu código para detectar y manejar posibles problemas durante la ejecución. Por ejemplo, puedes usar la instrucción On Error Resume Next para ignorar errores y continuar con el bucle, o usar On Error GoTo para dirigirte a una rutina de manejo de errores específica que te brinde más información sobre el problema.
  4. Prueba con otras opciones de ejecución: En lugar de usar ShellExecute, puedes probar otras opciones de ejecución, como FollowHyperlink o CreateObject("WScript.Shell").Run, para ver si eso resuelve el problema.
  5. Actualiza el sistema y las aplicaciones: Asegúrate de que tu sistema operativo y la aplicación de WhatsApp estén actualizados a la última versión disponible. A veces, los problemas de compatibilidad pueden resolverse con actualizaciones de software.
  6. Depura el código: Utiliza el depurador de VBA para ejecutar la macro paso a paso y observar el comportamiento en cada línea de código. Esto puede ayudarte a identificar dónde se produce el problema y qué podría estar causándolo.

Si después de probar estas sugerencias sigues experimentando problemas intermitentes, podría ser útil obtener más información sobre el entorno de tu sistema y cualquier mensaje de error específico que recibas durante la ejecución de la macro. Esto podría ayudar a diagnosticar y resolver el problema de manera más efectiva. El texto y los pasos se editaron con la ayuda de IA.

 

*El texto ha sido traducido automáticamente; puede contener errores gramaticales y/o de expresión.

 

¡Mis respuestas son voluntarias y sin garantía!

 

Espero que esto te ayudará.

¿Fue útil la respuesta? Marca como mejor respuesta y dale me gusta!

Esto ayudará a todos los participantes del foro.

View solution in original post