Boucle qui teste une cellule et joue un son quand celle ci .....
dannplr
Messages postés7Date d'inscriptionsamedi 15 février 2014StatutMembreDernière intervention 9 mars 2014
-
Modifié par Whismeril le 25/02/2014 à 22:49
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024
-
26 févr. 2014 à 09:44
Bonjour,
voici la macro que j'ai actuellement et qui marchouille ! :):
sub timer()
application.ontime now + timevalue("00:00:01"), "jouer_son"
end sub
private sub jouer_son()
if range("horloge!c3").value = 1 then
chemein = activeworkbook.path
leson = chemin & "\tada.wav"
call playsound(leson, 0&, snd_async or snd_filename
end if
timer
end sub
le but de tout ça, est de vérifier l'état de c3 mais en décalant la boucle de 500 milisecondes pour être sûr de tomber sur ce créneau où c3 passe à 1 que pendant 1 seconde, et de jouer un son.
le soucis que j'ai:
pour être sur de ne pas rater ce créneau de 1s ,j'ai du le passer à 2s( si jamais ma boucle se trouve synchronisée avec l'horloge, je rate le coche)
Maintenant, il arrive que le son joue 2 fois parfois.
Dans le pire des cas, si aucune solution n est simple, y a t'il une commande pour lire le son jusqu'à la fin de ce dernier et une seule fois en sachant que l'alarme suivante arrive 3 minutes après ?
merci
A voir également:
Boucle qui teste une cellule et joue un son quand celle ci .....
Private Sub Worksheet_Change(ByVal Target As Range)
Debug.Print Target.Address
If Target.Address = "$C$3" Then
If Target.Value = 1 Then MsgBox "je joue du piano debout...^^"
End If
End Sub
Bonjour,
As-tu une formule en C3 ?
Car si oui : l'évènement change doit concerner non la cellule C3, mais la cellule XX dont la modification génère celle de C3. Si la cellulle XX a elle-même une formule, il faudra considérer la modification de la cellule YY dont elle dépend, etc .... En bref : utiliser l'évènement Change concernant la toute première cellule sans formule générant un résultat par la formule située en C3. Ou alors utiliser l'évènement Calculate, qui serait toutefois très pénalisant si les recalculs concernent également d'autres cellules que celles directement liées à ton problème.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 26 févr. 2014 à 06:20
Il est par ailleurs déconseillé de nommer Timer une macro. Timer est une fonction VBA.
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024344 26 févr. 2014 à 09:44
As-tu une formule en C3 ?
Car si oui : l'évènement change doit concerner non la cellule C3, mais la cellule XX
Si il passe par une formule et qu'elle n'utilise que des cellules de la même feuille alors il ne teste pas le Target mais directement la vaeur de C3
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C3").Value = 1 Then MsgBox "musicccc..."
End Sub
Mais pour l'instant, sans informations supplémentaires de la part du demandeur sur le fonctionnement de son fichier, on ne pourra faire que des suppositions....