Microsoft 365 Associer un son à une recherchev

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Eric Dé

XLDnaute Occasionnel
Bonjour le Forum,

Je dois scanner toute une série de numéros qui font partie ou non d'une liste.
Au moyen d'une recherchev, je vérifie si le numéro scanné fait partie ou non de la liste.
S'il en fait partie, je souhaiterais associer un son afin de ne pas systématiquement devoir regarder sur le PC pour vérifier visuellement.

Seriez-vous en mesure de m'aider ?
Je vous joins un fichier pour exemple.

Merci d'avance !
Éric
 

Pièces jointes

Bonsoir,
Deux solutions dans le fichier joint
- Soit un mot prédéfini dans une cellule, et lu lors de la concordance (option qui impose une petite latence)
- Soit un beep, si concordance
Bonne découverte
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plg As Range, C As Range
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 And Target.Row > 8 Then
    Set Plg = Range("G9:G17")
    Set C = Plg.Find(Target, LookAt:=xlWhole)
    If Not C Is Nothing Then Range("K1").Speak 'option 1 mais qui impose une latence
'    If Not C Is Nothing Then Beep 'autre option plus "véloce"...
End If
End Sub
 

Pièces jointes

Bonjour à tous ,
Code à mettre dans la feuille :
VB:
Private Declare PtrSafe Function BeepApi Lib "kernel32" Alias "Beep" _
    (ByVal Frequence As Long, ByVal Duree As Long) As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case True
    Case Target.Count > 1
    Case Not Intersect(Target, Range("A9:A22")) Is Nothing
        Target.Offset(, 1).Calculate
        If Target.Offset(, 1) > 0 Then
            BeepApi 400, 300
            BeepApi 600, 200
            BeepApi 400, 300
        End If
    End Select

End Sub
 
Bonjour @bhbh
Edit Bonjour @fanch55

Sauf erreur de ma part je ne pense pas que le changement d'une formule soit détecté par Worksheet_Change mais par Calculate 😉 comme la fait Fanch55 ou mon post 2

@Phil69970
Bonsoir,
J'utilise "Change", car lors du scan, la valeur est insérée dans la colonne 1 (du moins, si j'ai bien compris...)
Edit, tout comme Fanch, d'ailleurs
Mais je n'utilise pas la formule, je teste la présence du "scan" dans la plage définie
 
L'idée de @bhbh pour le speak est intéressante ( je l'avais oubliée cette option )
VB:
Private Declare PtrSafe Function BeepApi Lib "kernel32" Alias "Beep" _
    (ByVal Frequence As Long, ByVal Duree As Long) As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case True
    Case Target.Count > 1
    Case Not Intersect(Target, Range("A9:A22")) Is Nothing
        Target.Offset(, 1).Calculate
        If Target.Offset(, 1) > 0 Then
            BeepApi 400, 300
            BeepApi Target / 3, 200
            BeepApi 400, 300
            Target.Offset(, 1).Speak  ' @bhbh idea
        End If
    End Select

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour