Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment jouer un son si une condition est remplie dans Excel?

Dans Excel, nous pouvons appliquer le formatage conditionnel pour formater et mettre en surbrillance les cellules afin de répondre à la condition dont vous avez besoin, mais, parfois, vous pouvez jouer un son si une condition est remplie. Par exemple, si la valeur de la cellule dans A1 est supérieure à 300, je veux qu'un son soit joué. Excel ne supporte pas cette fonctionnalité, cet article, je vais introduire quelques codes VBA pour résoudre cette tâche.

Lecture d'un signal sonore par défaut basé sur la valeur de la cellule avec le code VBA

Jouer un son personnalisé basé sur la valeur de la cellule avec le code VBA

Jouer un son si la valeur de la cellule change dans une colonne spécifique avec le code VBA


flèche bleue droite bulle Lecture d'un signal sonore par défaut basé sur la valeur de la cellule avec le code VBA

Voici un code pratique pour que vous jouiez un bip sonore de système par défaut quand une condition spécifique est remplie, veuillez faire ceci:

1. Maintenez la touche ALT + F11 clés, puis il ouvre la Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet collez le code suivant dans le Module Fenêtre.

Code VBA: Joue un bip sonore par défaut basé sur une valeur de cellule:

Function BeepMe() As String
    Beep
    BeepMe = ""
End Function

3. Ensuite, enregistrez et fermez cette fenêtre de code, revenez à la feuille de calcul et entrez cette formule: = IF (A1> 300, BeepMe (), "") dans une cellule vide à côté de la cellule contient la valeur sur laquelle vous souhaitez jouer un son, puis appuyez sur Entrer clé, rien ne sera affiché dans la cellule de formule, voir capture d'écran:

doc joue son si la condition est vraie 1

4. Et maintenant, si la valeur entrée dans la cellule A1 est supérieure à 300, un bip par défaut du système sera joué.


flèche bleue droite bulle Jouer un son personnalisé basé sur la valeur de la cellule avec le code VBA

Si vous voulez jouer un autre son que le bip par défaut du système, ici aussi un code VBA peut vous faire une faveur.

1. Maintenez le ALT + F11 clés, puis il ouvre la Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet collez le code suivant dans le Module Fenêtre.

Code VBA: joue un son spécifique basé sur une valeur de 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 la cellule contient la valeur sur laquelle vous souhaitez jouer un son, puis appuyez sur Entrer clé, rien ne sera affiché dans la cellule de formule, voir capture d'écran:

doc joue son si la condition est vraie 2

4. Dorénavant, si une valeur supérieure à 300 est entrée dans la cellule A1, un son spécifique sera joué à la fois.

Remarques: Dans le code ci-dessus, vous pouvez modifier le fichier son wav à votre besoin de c: \ windows \ media \ chemin du fichier. Voir la capture d'écran:

doc joue son si la condition est vraie 3


flèche bleue droite bulle Jouer un son si la valeur de la cellule change dans une colonne spécifique avec le code VBA

Si vous voulez jouer un son si la valeur de la cellule change dans une colonne spécifique, vous pouvez appliquer le code VBA suivant.

1. Cliquez avec le bouton droit de la souris sur l'onglet de la feuille que vous souhaitez lire un son lorsque la valeur change dans une colonne, puis choisissez Voir le code à partir du menu contextuel, et dans le Microsoft Visual Basic pour les applications fenêtre, copiez et collez le code suivant dans le module vide:

Code VBA: Lit un son si la valeur de la 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

doc joue son si la condition est vraie 4

Note: Dans le code ci-dessus, le nombre 3 dans le script Colonnes (3) est le numéro de colonne que vous voulez lire lorsque la valeur change dans cette colonne.

2. Et puis enregistrez et fermez cette fenêtre de code, maintenant, si une valeur de cellule change dans la troisième colonne, un son système par défaut sera joué.



Outils de productivité recommandés

Office Tab

étoile d&#39;or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d&#39;or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d&#39;or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d&#39;écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Shehzad · 2 months ago
    Hey admin, please tell , if i want to save sound file in excel file and i will open my excel file in any computer , can i hear that sound ???
    • To post as a guest, your comment is unpublished.
      skyyang · 2 months ago
      Hello, Shehzad,
      If you apply the first and third VBA code to play a default system beep sound, the sound can be hear from any other computer. But, with the second vba code, you should set the custom sound to your need.

      Note: You should save the workbook as Excel Macro-Enabled Workbook format.
  • To post as a guest, your comment is unpublished.
    Excelakos · 2 years ago
    Hi there
    I try to use the Play a custom sound based on cell value with VBA code but i have a problem. Here is an example:
    I have a time countdown in cell A1 which means value changes per second.
    Then in cell B1 i have inserted =8/(24*60) in a 0:08:00 format
    So the if i use to trigger the sound is if B1>A1,SoundMe(),""
    But the sound will never be heard. I can hear a sound like something is looping and i guess it has something to do with the fact that the value is dynamically changing.
    Then i tried to alter the code in the part Call PlaySound("c:\windows\media\Speech On.wav", _
    0, SND_ASYNC Or SND_FILENAME)
    I changed SND_ASYNC with SND_SYNC.

    This way i managed to play the sound, but it gets repeating forever.

    Is there any solution like to trigger the sound only once meaning just the very first time the criteria is met and then stop ??
    Thank you a lot