Notifications
Clear all

VBA - Tocar som se retornar valor

2 Posts
2 Usuários
0 Reactions
1,904 Visualizações
(@maycon)
Posts: 17
Eminent Member
Topic starter
 

Bom Dia,

Mais uma vez velho solicitar ajuda sobre uma macro ou fórmula para concluir e implementar minha planilha... Vou tentar explicar de forma resumida.

Em minha planilha, tenho duas condições calculando abertura e fechamento...
Se me retornar na célula H12 horário igual ou abaixo de 1h:30m, esta no prazo, se retornar igual ou acima disso 1h:31m, esta fora do padrão.
Se me retornar na célula H19 horário igual ou abaixo de 6hs, esta no prazo, se retornar igual ou acima disso 6hs:01m, esta fora do padrão.

Agora é que esta minha solicitação de ajuda...

Cada vez que eu efetuar esse calculo, estando dentro do prazo, queria tocar um som de alerta, estando fora outro som de alerta.

Teria como fazer isso?

Agradeceria muito a ajuda!!!

Obs.: O Tópico que achei sobre este assunto aqui no fórum não me ajudou a implementar o VBA

 
Postado : 02/05/2014 11:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Seu arquivo com os Sons está corrompido, e em sua planilha voce só tem duas rotinas para limpar os Ranges.

Então não sei como e em que momento irá fazer esta verificação, mas segue instruções básicas para verificação, lembrando que os arquivos de som teem de estar na mesma pasta que se encontra o arquivo excel.

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

'Defina os nomes dos arquivos de som
Const NoPadraoWav = "No Padrão.wav"
Const Fora_do_PadraoWav = "Fora do Padrão.wav"

Dim SomWave

Private Sub TesteSom()
     
     'ThisWorkbook.Path = O arquivo de som está na mesma pasta do arquivo excel
     If Range("A2").Value = 1 Then
        SomWave = ThisWorkbook.Path & "" & NoPadraoWav
        AtivarAlarme
    Else
        SomWave = ThisWorkbook.Path & "" & Fora_do_PadraoWav
        AtivarAlarme
    End If


End Sub

Sub AtivarAlarme()
        
    Call PlaySound(SomWave, 0&, SND_ASYNC Or SND_FILENAME)

End Sub

Copie e cole em Módulo e faça alguns testes executando a macro TesteSom antes, na rotina acima está verificando se em "A2" o valor é igual a "1".

[]s

 
Postado : 04/05/2014 8:10 pm