Comment émettre un son si une condition est remplie dans Excel ?
Dans Excel, nous pouvons utiliser la mise en forme conditionnelle pour formater et mettre en surbrillance les cellules afin de répondre à vos besoins. Cependant, parfois, vous pourriez vouloir émettre un son lorsque la condition est remplie. Par exemple, si la valeur de la cellule A1 est supérieure à 300, je souhaite qu'un son soit joué. Excel ne prend pas en charge cette fonctionnalité. Dans cet article, je vais vous présenter des codes VBA pour résoudre cette tâche.
Émettez un bip système par défaut basé sur la valeur d'une cellule avec le code VBA
Jouer un son personnalisé basé sur la valeur d'une cellule avec le code VBA
Jouer un son si la valeur d'une cellule change dans une colonne spécifique avec le code VBA
Émettez un bip système par défaut basé sur la valeur d'une cellule avec le code VBA
Voici un code pratique qui vous permettra de jouer un bip système par défaut lorsque certaines conditions sont remplies. Suivez ces étapes :
1. Maintenez les touches ALT + F11 enfoncées, puis la fenêtre Microsoft Visual Basic for Applications s'ouvre.
2. Cliquez sur Insérer > Module, puis collez le code suivant dans la fenêtre du module.
Code VBA : Émettez un bip système par défaut basé sur la valeur d'une cellule :
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. Ensuite, enregistrez et fermez cette fenêtre de code, retournez à la feuille de calcul, et entrez cette formule : =IF(A1>300,BeepMe(),"") dans une cellule vide à côté de celle contenant la valeur pour laquelle vous souhaitez jouer un son, puis appuyez sur la touche Entrée. Rien ne sera affiché dans la cellule de la formule, voir capture d'écran :
4. Et maintenant, si la valeur entrée dans la cellule A1 est supérieure à 300, un bip système par défaut sera joué.
Jouer un son personnalisé basé sur la valeur d'une cellule avec le code VBA
Si vous souhaitez jouer un autre son que le bip système par défaut, voici également un code VBA qui peut vous aider.
1. Maintenez les touches ALT + F11 enfoncées, puis la fenêtre Microsoft Visual Basic for Applications s'ouvre.
2. Cliquez sur Insérer > Module, puis collez le code suivant dans la fenêtre du module.
Code VBA : Jouer un son spécifique basé sur la valeur d'une cellule :
#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. Ensuite, enregistrez et fermez cette fenêtre de code, revenez à la feuille de calcul, et entrez cette formule : =IF(A1>300,SoundMe(),"") dans une cellule vide à côté de celle contenant la valeur pour laquelle vous souhaitez jouer un son, puis appuyez sur la touche Entrée. Rien ne sera affiché dans la cellule de la formule, voir capture d'écran :
4. Désormais, si une valeur supérieure à 300 est entrée dans la cellule A1, un son spécifique sera immédiatement joué.
Remarques : Dans le code ci-dessus, vous pouvez modifier le fichier wav du son selon vos besoins depuis le chemin c:\windows\media\ . Voir capture d'écran :
Jouer un son si la valeur d'une cellule change dans une colonne spécifique avec le code VBA
Si vous souhaitez jouer un son lorsque la valeur d'une cellule change dans une colonne spécifique, vous pouvez appliquer le code VBA suivant.
1. Faites un clic droit sur l'onglet de la feuille où vous souhaitez jouer un son lorsque la valeur change dans une colonne, puis choisissez Afficher le code dans le menu contextuel. Dans la fenêtre ouverte de Microsoft Visual Basic for applications, copiez et collez le code suivant dans le module vide.
Code VBA : Jouer un son si la valeur d'une cellule change dans une colonne :
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
Remarque : Dans le code ci-dessus, le chiffre 3 dans le script Columns(3) correspond au numéro de la colonne dans laquelle vous souhaitez jouer un son lorsque la valeur change dans cette colonne.
2. Ensuite, enregistrez et fermez cette fenêtre de code. Maintenant, si la valeur d'une cellule change dans la troisième colonne, un bip système par défaut sera joué.
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !