¿Cómo reproducir un sonido si se cumple una condición en Excel?
En Excel, podemos usar Usar formato condicional para dar formato y resaltar las celdas que cumplen una condición según tus necesidades. Sin embargo, en ocasiones, es posible que desees reproducir un sonido cuando se cumpla una condición. Por ejemplo, si el valor de la celda A1 es mayor que300, quiero que se reproduzca un sonido. Excel no ofrece esta función de forma nativa, por lo que en este artículo te mostraré algunos códigos VBA para resolver esta tarea.
Reproducir un sonido predeterminado del sistema según el valor de una celda con código VBA
Reproducir un sonido personalizado según el valor de una celda con código VBA
Reproducir un sonido si el valor de una celda cambia en una columna específica con código VBA
Reproducir un sonido predeterminado del sistema según el valor de una celda con código VBA
Aquí tienes un código útil para reproducir un sonido predeterminado del sistema cuando se cumple una condición específica. Sigue estos pasos:
1. Mantén presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic for Applications.
2. Haz clic en Insertar > Módulo y pega el siguiente código en la Ventana del Módulo.
Código VBA: Reproducir un sonido predeterminado del sistema según el valor de una celda:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. Luego guarda y cierra esta ventana de código, vuelve a la hoja de cálculo e introduce esta fórmula: =IF(A1>300,BeepMe(),"") en una celda en blanco junto a la celda cuyo valor quieres usar para reproducir el sonido. Después pulsa la tecla Enter; no se mostrará nada en la celda de la fórmula, como se muestra en la captura de pantalla:
4. Ahora, si el valor introducido en la celda A1 es mayor que300, se reproducirá un sonido predeterminado del sistema.
Reproducir un sonido personalizado según el valor de una celda con código VBA
Si prefieres reproducir otro sonido en lugar del sonido predeterminado del sistema, también puedes hacerlo con un código VBA.
1. Mantén presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic for Applications.
2. Haz clic en Insertar > Módulo y pega el siguiente código en la Ventana del Módulo.
Código VBA: Reproducir un sonido específico según el valor de una celda:
#If Win64 Then
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
'Updateby Extendoffice 20161223
Call PlaySound("c:\windows\media\Speech On.wav", _
0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
3. Luego guarda y cierra esta ventana de código, vuelve a la hoja de cálculo e introduce esta fórmula: =IF(A1>300,SoundMe(),"") en una celda en blanco junto a la celda cuyo valor quieres usar para reproducir el sonido. Después pulsa la tecla Enter; no se mostrará nada en la celda de la fórmula, como se muestra en la captura de pantalla:
4. A partir de ahora, si introduces un valor mayor que300 en la celda A1, se reproducirá inmediatamente un sonido específico.
Notas: En el código anterior, puedes cambiar el archivo de sonido wav según tus necesidades desde la ruta de archivo c:\windows\media\. Consulta la captura de pantalla:
Reproducir un sonido si el valor de una celda cambia en una columna específica con código VBA
Si deseas reproducir un sonido cuando el valor de una celda cambia en una columna específica, puedes usar el siguiente código VBA.
1. Haz clic derecho en la pestaña de la hoja donde quieres reproducir un sonido al cambiar el valor de una columna, luego selecciona Ver código en el menú contextual y, en la ventana de Microsoft Visual Basic for applications que se abre, copia y pega el siguiente código en el Módulo en blanco:
Código VBA: Reproducir un sonido si el valor de una celda cambia en una columna:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20161223
Dim xCell As Range
On Error Resume Next
If Target.Columns.Count = 1 Then
If Intersect(Target, Columns(3)) Is Nothing Then
Exit Sub
Else
For Each xCell In Columns(3)
On Error Resume Next
If (xCell.Value = Target.Value) And (xCell.Value <> "") Then
Beep
Exit For
End If
Next
End If
End If
End Sub
Nota: En el código anterior, el número 3 en el script Columns(3) corresponde al número de columna en la que deseas reproducir el sonido cuando cambie el valor en esa columna.
2. Luego guarda y cierra esta ventana de código. Ahora, si el valor de una celda cambia en la tercera columna, se reproducirá un sonido predeterminado del sistema.
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!