¿Cómo reproducir un sonido si se cumple una condición en Excel?
En Excel, podemos aplicar el formato condicional para formatear y resaltar las celdas para cumplir con la condición que necesite, pero, a veces, es posible que desee reproducir un sonido si se cumple una condición. Por ejemplo, si el valor de la celda en A1 es mayor que 300, quiero que se reproduzca un sonido. Excel no es compatible con esta función, en este artículo, presentaré algunos códigos VBA para resolver esta tarea.
Reproduce un sonido personalizado basado en el valor de la celda con código VBA
Reproduzca un sonido si el valor de la celda cambia en una columna específica con código VBA
Reproduzca un sonido de pitido del sistema predeterminado según el valor de la celda con el código VBA
Aquí hay un código útil para que reproduzca un pitido predeterminado del sistema cuando se cumpla una condición específica, haga lo siguiente:
1. Mantenga pulsado el botón ALT + F11 llaves, luego abre el Microsoft Visual Basic para aplicaciones ventana.
2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Módulo Ventana.
Código VBA: reproduce un pitido del sistema predeterminado basado en un valor de celda:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. Luego guarde y cierre esta ventana de código, vuelva a la hoja de trabajo e ingrese esta fórmula: = SI (A1> 300, BeepMe (), "") en una celda en blanco al lado de la celda que contiene el valor en el que desea reproducir un sonido, y luego presione Participar clave, no se mostrará nada en la celda de fórmula, vea la captura de pantalla:
4. Y ahora, si el valor ingresado en la celda A1 es mayor que 300, se reproducirá un pitido predeterminado del sistema.
Reproduce un sonido personalizado basado en el valor de la celda con código VBA
Si desea reproducir algún otro sonido que no sea el pitido predeterminado del sistema, aquí también un código VBA puede hacerle un favor.
1. Mantenga pulsado el ALT + F11 llaves, luego abre el Microsoft Visual Basic para aplicaciones ventana.
2. Haga Clic en recuadro > Móduloy pegue el siguiente código en el Módulo Ventana.
Código VBA: reproduce un sonido específico basado en un valor de 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 guarde y cierre esta ventana de código, regrese a la hoja de trabajo e ingrese esta fórmula: = SI (A1> 300, SoundMe (), "")en una celda en blanco al lado de la celda que contiene el valor en el que desea reproducir un sonido, y luego presione Participar clave, no se mostrará nada en la celda de fórmula, vea la captura de pantalla:
4. De ahora en adelante, si se ingresa un valor superior a 300 en la celda A1, se reproducirá un sonido específico de una vez.
Notas: En el código anterior, puede cambiar el archivo WAV de sonido según sus necesidades desde c: \ windows \ media \ ruta de archivo. Ver captura de pantalla:
Reproduzca un sonido si el valor de la celda cambia en una columna específica con código VBA
Si desea reproducir un sonido si el valor de la celda cambia en una columna específica, puede aplicar el siguiente código VBA.
1. Haga clic con el botón derecho en la pestaña de la hoja en la que desea reproducir un sonido cuando el valor cambie en una columna, luego elija Ver código desde el menú contextual, y en el Microsoft Visual Basic para aplicaciones ventana, copie y pegue el siguiente código en el módulo en blanco:
Código de VBA: reproduce un sonido si el valor de la 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
Note: En el código anterior, el número 3 en el guion Columnas (3) es el número de columna en el que desea reproducir sonido cuando el valor cambia en esta columna.
2. Y luego guarde y cierre esta ventana de código, ahora, si el valor de una celda cambia en la tercera columna, se reproducirá un pitido predeterminado del sistema.
Las mejores herramientas de productividad de oficina
Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haga clic aquí para obtener la función que más necesita...
Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
- ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!