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é.


Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe Créer une liste de diffusion et envoyer des emails ...
  • Super Formula Bar (éditez facilement plusieurs lignes de texte et de formule); Disposition de lecture (facilement lire et éditer un grand nombre de cellules); Coller à la gamme filtrée...
  • Fusionner les cellules / rangées / colonnes sans perdre de données; Contenu des cellules divisées; Combiner les lignes / colonnes en double... Prévenir les cellules en double; Comparer les plages...
  • Sélectionnez Dupliquer ou Unique Des rangées; Sélectionnez les lignes vierges (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux cahiers d'exercices; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de la formule; Créer automatiquement des références à plusieurs feuilles; Insérer des balles, Cases à cocher et plus ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre contenu de cellules et commentaires...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial en gras, en italique ...
  • Combinaison de classeurs et de feuilles de calcul; Fusionner les tables en fonction des colonnes clés; Fractionner les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus que de puissantes fonctionnalités 300. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit du jour 30.
kte tab 201905

Office Tab apporte une interface à onglets à Office et simplifie grandement votre travail

  • Activer l'édition par onglets et la lecture 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é de 50% et réduit le nombre de clics de souris pour vous chaque jour!
fond officetab
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.
    a · 1 months ago
    Nice.

    Thanks
  • To post as a guest, your comment is unpublished.
    Marcelo · 2 months ago
    Hi adm. I am trying to create, via VBA, an "IF" command which would sound an specifc sentence when a pre determined condition is reached. Could you help me, please?
  • To post as a guest, your comment is unpublished.
    Marcelo · 2 months ago
    Hi adm. I am trying to create, via VBA, an "IF" command which would sound an specifc sentence when a pre determined condition is reached. Could you help me, please?
  • To post as a guest, your comment is unpublished.
    devraj · 4 months ago
    code is not working what i can do
  • To post as a guest, your comment is unpublished.
    Shehzad · 9 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 · 9 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