Macro para hacer producir un ruido o pitido al cumplirse una condición.

Un sin fin el excel… de nuevo te pido otro favor, necesito agregar a la macro If then o If End If una línea para que, cuando se cumpla la condición, a la vez que genera el aviso a través de la ventana MsgBox (“Tarjeta Modificada”), produzca además por dos o tres segundos un ruido o pitido. De nuevo agradezco tus aportes para y espero ya la conclusión este trabajito.

1

1 respuesta

Respuesta
1

Para producir un sonido solamente escribe

Beep

Ahora si quieres que suene más tiempo, puedes poner una canción o un sonido en mp3 o wav que tengas, puede ser cualquier canción y lo pones en el siguiente código

Private Declare Function mciExecute Lib "winmm.dll" (ByVal Comando As String) As Long
Sub sonar()
If Range("A5") = "" Then 'condición para entrar al sonido
mciExecute "play C:\mygirl.mp3" 'cambiar mygirl.mp3 por tu sonido
Application.OnTime Now + TimeValue("00:00:05"), "para", False 'En 5 segundos se detiene
End If
End Sub
Sub para()
mciExecute "Stop C:\mygirl.mp3"
End Sub

Saludos. Dam
Si es lo que necesitas.

Hola Dam… Gracias por tu pronta respuesta, te comento, coloque la macro que me enviaste en el modulo 9, en el cual la ejecuto en forma directa y cumple con todos los requisitos; después la enlacé con un “Call sonar” al código correspondiente que también funciona bien, solo que aquí no cumple con el tiempo de duración de los 5 segundos establecidos (de momento es una canción de 3 minutos, después buscaré algún ruido); le estuve buscando pero como tú sabes, no tengo para todos los detalles, te pido de nuevo me apoyes en este detallito de hacerla cumplir con lo que se le ordena… Muchas gracias de nuevo.

Cambia el parámetro de TimeValue("00:00:05"), cambia el 5 por 6 ó 7 ó 10, lo que pasa es que hay un tiempo en lo que se carga el software que hace sonar la canción, entonces deberás buscar cuál es el número adecuado de segundos.

Nota:no todas las canciones se ejecutan con este método, pero hay algunas que si.

Saludos. Dam

Hola Dam... Muchas gracias por todo, concluido el trabajo, pero me queda una duda, <otra pregunta> no se si puedas responder, porque si es exactamente la misma macro en excel 2003 el focus se posiciona en el List Box y en el excel 2007 se posiciona correctamente en el TextBox.. Gracias por todo.. y mucha suerte..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas