OVH Cloud OVH Cloud

Fonction "alarm" multiple

11 réponses
Avatar
RT
Bonjour à tous

Concerne la fonction ALARM
Je voudrais avoir une double condition pour deux alarmes

Suite au message "Ki saura"
GD m'a répondu d'aller faire un tour la haut sur la collinne et de siffler
sur le site de

http://www.j-walk.com/ss/excel/tips/tip87.htm

Et j'y ai trouvé une solution
Misange m'a également fourni une réponse

Elle fonctionnent toutes les deux

MAIS

Comme vous commencé à le savoir je ne suis jamais content

Dans ma cellule k25 par example j'ai la formule =Sum(b2:b25)
Et dans ma cellule k26 la formule =Alarm(k25,">499")

Et, bien sur, quand le montant dépasse 499 le son déclaré dans un module est
activé
Voici la déclaration

' *********************************************
'Windows API function declaration
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long


Function Alarm(Cell, Condition)
Dim WAVFile As String
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
On Error GoTo ErrHandler
If Evaluate(Cell.Value & Condition) Then
WAVFile = ThisWorkbook.Path & "\money.wav"
Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
Alarm = True
Exit Function
End If
ErrHandler:
Alarm = False
End Function

' *************************************************************

Ce que je voudrais faire maintenant est d'avoir un deuxième son

Par example si le montant est inférieure à 499 rien
Si il est entre 499 et 2000 le son "un.wav"
Et si il est supérieure à 2000 le son "deux.wav"

Alors voilà

Moi je chipotte depuis une heure sans résultats
si je fais un "nesting" en ajoutant une condition ou en créant deux
fonction alarm et alarms
Rien à faire je bloque devant le message d'erreur "VALUE"

Donc si une bonne âme est devant son clavier pour le moment, ce serait
gentil de me pousser dans la bonne direction

Un grand merci à tous

A bientôt


Rex

1 réponse

1 2
Avatar
isabelle
bonjour Rex,

on peux modifier comme ça,

Case Is <= Condition1
son = son1
Case Condition1 To Condition2
son = son2
Case Is > Condition2
son = son3

cela dépend si tu veux que son 1 joue jusquà <= condition 1 ou <
condition 1
ainsi de suite pour les autres conditions.

isabelle



Eh ben didon

Là cela frise le "real-time"

Je sais que j'ai dis il y a une demi heure que je laissait tomber pour ce
soir, mais.....
Enfin

Encore une fois (on est en Belgique, hein?) un grand merci à toi et à Gloops

Je vous tiendrai au courant demain

Bonne soirée

Rex

"isabelle" wrote in message
news:
bonjour Gloops,

tu as raison c'est plus propre avec select case,

Function Alarm1(Cell, Condition1, Condition2, Condition3)
Dim WAVFile As String
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
son1 = "C:TELEPORT.WAV"
son2 = "C:WATER2.WAV"
son3 = "C:Beeth5th.wav"
On Error GoTo ErrHandler
Select Case Cell
Case Is < Condition1
WAVFile = son1
Case Condition1 To Condition2
WAVFile = son2
Case Else
WAVFile = son3
End Select
Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
Alarm1 = True
Exit Function
ErrHandler:
Alarm1 = False
End Function

isabelle


Bonjour,

En somme, si je comprends bien, ce qu'il te faut c'est
un "Select Case" ?

Select Case Montant
Case Is < 499
'Jouer la Flûte enchantée
Case 499 To 1000
'Jouer "Meunier tu dors"
Case Else
'Jouer la Marseillaise
End Select

Mais attention, ça va être bruyant, cette affaire-là.

[Qu'est-ce qu'il attend pour partir, ce message ? Tout-à-
l'heure on va le voir quinze fois ...]

-----Message d'origine-----
Bonjour à tous

Concerne la fonction ALARM
Je voudrais avoir une double condition pour deux alarmes

Suite au message "Ki saura"
GD m'a répondu d'aller faire un tour la haut sur la
collinne et de siffler

sur le site de

http://www.j-walk.com/ss/excel/tips/tip87.htm

Et j'y ai trouvé une solution
Misange m'a également fourni une réponse

Elle fonctionnent toutes les deux

MAIS

Comme vous commencé à le savoir je ne suis jamais content

Dans ma cellule k25 par example j'ai la formule =Sum
(b2:b25)

Et dans ma cellule k26 la formule =Alarm(k25,">499")

Et, bien sur, quand le montant dépasse 499 le son déclaré
dans un module est

activé
Voici la déclaration

' *********************************************
'Windows API function declaration
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long


Function Alarm(Cell, Condition)
Dim WAVFile As String
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
On Error GoTo ErrHandler
If Evaluate(Cell.Value & Condition) Then
WAVFile = ThisWorkbook.Path & "money.wav"
Call PlaySound(WAVFile, 0&, SND_ASYNC Or
SND_FILENAME)

Alarm = True
Exit Function
End If
ErrHandler:
Alarm = False
End Function

'
***********************************************************

**

Ce que je voudrais faire maintenant est d'avoir un
deuxième son


Par example si le montant est inférieure à 499 rien
Si il est entre 499 et
2000 le son "un.wav"

Et si il est supérieure à
2000 le son "deux.wav"


Alors voilà

Moi je chipotte depuis une heure sans résultats
si je fais un "nesting" en ajoutant une condition ou en
créant deux

fonction alarm et alarms
Rien à faire je bloque devant le message d'erreur "VALUE"

Donc si une bonne âme est devant son clavier pour le
moment, ce serait

gentil de me pousser dans la bonne direction

Un grand merci à tous

A bientôt


Rex





.









1 2