Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Déclanchement d'une alarme sonore lorsqu'une cellule est compléter

Nino38

XLDnaute Nouveau
Bonjour,

N'étant pas un expert de VBA et après plusieurs recherches non fructueuse, je souhaiterais de l'aide pour mon problème.

Est-ce possible d'avoir une alarme sonore, lorsqu'une cellule est remplit ? Est-ce que son fonctionnement est possible sur un fichier partagé ?
Une personne remplit la cellule via une liste déroulante et le son se déclenche, j'arrive à mettre le Beep standard d'Excel mais le son est trop court.

J'espère que ma demande est clair, je vous remercie d'avance pour vos retours
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour
oui c'est possible par vba
  1. via l'evenement change
  2. ou une formule non résultante sur une autre cellule libre (vba aussi)

  1. pour le beep on peu utiliser l'api beep de window pour une melodie perso
  2. ou jouer un son de window avec l'api playsound
 

Nino38

XLDnaute Nouveau
Merci pour vos réponses rapides, fanch55 c'est une demande d'un des services qui utilise le fichier partagé, ils ont intérêt à mettre le son mdrrr pour les autres services c'est une bonne idée pour ne pas être gêné pas l'alarme.
Patrick "1.via l'élément change" me semble être le mieux pour mon fichier avec "2.jouer un son de window avec l'api playsound"
Est-ce que tu veux voir avec mon fichier directement ?
 

Franc58

XLDnaute Occasionnel
Salut, voici une suggestion. Voir code dans le _Change de la feuille et j'ai ajouté un module "ModuleSon". Tu peux y changer la fréquence et durée du bip sonore.
 

Pièces jointes

  • Planning partagé.xlsm
    426.4 KB · Affichages: 12

dysorthographie

XLDnaute Accro
Bonjour,
Je pense que c'est un gadget que tout le monde peut contourner en coupant le son ....
Bonsoir,
VB:
#If VBA7 And Win64 Then
    Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
#Else
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
#End If

Public Const APPCOMMAND_VOLUME_UP = &H302 ' Commande pour augmenter le volume
Public Const WM_APPCOMMAND = &H319 ' Message pour envoyer la commande

Sub AugmenterVolume()
    Dim lVolume As Long
    Dim lResult As Long
    lVolume = 65535 ' Valeur maximale pour un volume fort
    lResult = SendMessage(HWND_BROADCAST, WM_APPCOMMAND, 0, APPCOMMAND_VOLUME_UP * &H10000 + lVolume * &HFFFF)
End Sub
 

Nino38

XLDnaute Nouveau
Bonjour,
Tout d'abord merci pour vos retours, c'est vraiment top !
Franc58, la VBA fonctionne parfaitement, merci beaucoup !
J'ai juste un petit souci lorsque je partage le fichier via "sharepoint", afin que tous les services est accès, la VBA ne fonctionne plus, il y a t-il un paramètre à modifier ?
dysorthographie, merci pour la VBA !
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…