Notifications
Clear all

Encerrar MsgBox em um certo horário

6 Posts
2 Usuários
0 Reactions
1,159 Visualizações
(@juauvitor)
Posts: 0
New Member
Topic starter
 

Bom dia,

Pessoal, preciso da ajuda dos anciões do Excel no seguinte cód.:

 Dim dHora As Integer
dHora = Hour(Now)
Select Case dHora
Case Is = 18
sSaudacao = "Boa Noite"
Case Is = 9
sSaudacao = "Boa Dia mestre, que tal um café uma hora destas?"
Case Is = 10
sSaudacao = "Boa Dia mestre, que tal um chá uma hora destas?"
Case Is = 13
sSaudacao = "Bah, Recém chegou do almoço e já tá aqui?!! Seja bem vindo novamente ao seu sistema."
Case Is = 14
sSaudacao = "Bah fei, ta com sono né? pega um café lá."
Case Is = 15
sSaudacao = "iiiih, vai arriscar um chá?"
Case Is = 16
sSaudacao = "eae parça, só pelas 18:00, que tal um cafézinho?"
Case Is = 17
sSaudacao = "Bom Dia mestre divíno :)"
End Select
 
 dHora = MsgBox(sSaudacao, vbOKOnly, "S.E.I.A.- Sitema Excel de Inteligência Artificical")

O que eu quero? Preciso que o intervalo entre 11:00 e 12:00 não exiba mensagem nenhuma, somente nos demais. Alguém tem uma dica?
Grato desde já.

 
Postado : 24/06/2016 8:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Dessa forma atende?

Sub Macro1()

Dim dHora As Integer
dHora = Hour(Now)

If (dHora > 10 And dHora < 13) Then
'aqui não vai mostar nada e vai para o end if lá em baixo

Else

Select Case dHora
Case Is = 18
sSaudacao = "Boa Noite"
Case Is = 9
sSaudacao = "Boa Dia mestre, que tal um café uma hora destas?"
Case Is = 10
sSaudacao = "Boa Dia mestre, que tal um chá uma hora destas?"
Case Is = 13
sSaudacao = "Bah, Recém chegou do almoço e já tá aqui?!! Seja bem vindo novamente ao seu sistema."
Case Is = 14
sSaudacao = "Bah fei, ta com sono né? pega um café lá."
Case Is = 15
sSaudacao = "iiiih, vai arriscar um chá?"
Case Is = 16
sSaudacao = "eae parça, só pelas 18:00, que tal um cafézinho?"
Case Is = 17
sSaudacao = "Bom Dia mestre divíno :)"
End Select
dHora = MsgBox(sSaudacao, vbOKOnly, "S.E.I.A.- Sitema Excel de Inteligência Artificical")


End If

End Sub
 
Postado : 24/06/2016 9:21 am
(@juauvitor)
Posts: 0
New Member
Topic starter
 

Caio, Obrigadão, deu certo, vamos tentar ir além?
No caso destes horários, caso eu queira colocar 16:30 por exemplo, é possível?
Tentei com virgulas, pontos e dois pontos mas nenhum resultou em sucesso.
Grato pela atenção.

 
Postado : 24/06/2016 10:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tem com, mas tem de formatar as Horas e ajustar nos case :

Sub FormatodeHoras()
    
    Dim dHora
    Dim MyTime As Variant

    'Para as Horas do sistema use Time
    'MyTime = Time
    
    MyTime = #4:30:32 PM#

    'retorna "16:30:32 PM"
    dHora = Format(MyTime, "Long Time")
    MsgBox dHora

    'retorna - "03:16 PM"
    dHora = Format(MyTime, "Medium Time")
    MsgBox dHora

    'retorna "16:30"
    dHora = Format(MyTime, "Short Time")
    MsgBox dHora

End Sub

[]s

 
Postado : 24/06/2016 12:36 pm
(@juauvitor)
Posts: 0
New Member
Topic starter
 

Mauro

Bom, ok até ai, mas tem como me ajudar de que forma coloco isso na planilha, em que parte? e como deixo o horário na case?

 
Postado : 24/06/2016 1:12 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mauro

Bom, ok até ai, mas tem como me ajudar de que forma coloco isso na planilha, em que parte? e como deixo o horário na case?

Sub FormatodeHoras()
       
    Dim dHora
    Dim MyTime As Variant

    'Para as Horas do sistema use Time
    MyTime = Time
       
    dHora = Format(MyTime, "Short Time")

    Select Case dHora
   
        Case "07:00" To "11:30"
            MsgBox "BOM DIA"
        
        Case "11:31" To "17:00"
            MsgBox "BOA TARDE"
        
        Case "17:01" To "23:00"
            MsgBox "BOA NOITE"
    
    End Select

End Sub

[]s

 
Postado : 27/06/2016 5:42 am