Fórmula para exibir Bom Dia, Boa Tarde ou Boa Noite na planilha do Excel

Olá galera!!! Uma saudação especial a todos os nossos Excelentes leitores.
A dica de hoje é bem rapidinha e serve bastante para estudo, ou seja, pra quem gosta de praticar no Excel o uso de suas funções e suas macros VBA. É claro que, a dica serve também para uso geral, para incrementar planilhas ou relatórios. Vai depender da necessidade e criatividade de vocês.
Vou mostrar de forma descontraída como fazer o Excel te saudar com um Bom Dia, Boa Tarde ou Boa Noite, de acordo com a ocasião, ou seja, uma saudação adequada pelo horário especificado. Com isso, podemos concluir que o Excel pode ser “bem educado” e não é “anti-social”…
Brincadeiras a parte, vamos começar. A propósito, já publiquei alguns artigos sobre tratamento de datas no Excel, vale a pena conferir.

Criando uma Fórmula para exibir uma saudação na célula

Para exibir uma saudação dentro de uma célula qualquer, você pode fazer o uso de uma fórmula simples que verifica o horário informado e mostrar um texto pré-definido para alguma faixa de horário. Veja um exemplo.
Supondo que você tenha um horário escrito na célula C3, 10:30, por exemplo, a saudação deveria ser “Bom Dia”. Veja como escrever a fórmula para obter este resultado em E3.
=SE(HORA(C3)>=18;”Boa Noite”;SE(HORA(C3)>=12;”Boa Tarde”;”Bom Dia”))
Explicando:
Utilizamos o SE para testarmos a hora e retornamos uma expressão textual correspondente aquele horário. Assim:
SE a hora for maior ou igual a 18, escreva “Boa Noite”
SE a hora for maior ou igual a 12, escreva “Boa Tarde”
SE a hora não for nenhuma das anteriores, escreva “Bom Dia”.
Perceba que, a ordem das comparações foi proposital, da maior para a menor, porque se comparassemos primeiro uma hora menor que a comparação seguinte, a condicional validaria logo na primeira comparação e daria errado. Caso eu testasse o primeiro SE com o valor >= 0 (Bom Dia), sempre retornaria “Bom Dia”, pois todos os horários são maiores que 0 (zero).
Para a saudação funcionar de maneira atualizada, digite na célula C3 a fórmula =AGORA(). Dessa forma, a hora será atualizada automaticamente e sua saudação acompanhará esta saudação. Se quiser, aprenda a utilizar um atalho para inserir a hora atual.
No arquivo de exemplo que estou disponibilizando para vocês baixarem no final do artigo, adicionei a função CONCATENAR para adicionar um texto extra à saudação, que pode ser qualquer coisa que vocês desejarem, do tipo “Seja bem vindo”, “Oi”, etc. Eu apenas incluí um ponto de exclamação no final. Ficou assim:
=CONCATENAR( SE(HORA(C3)>=18;”Boa Noite”; SE(HORA(C3)>=12;”Boa Tarde”;”Bom Dia”));”!” )
 

Criando uma Mensagem de Saudação ao abrir o Arquivo

Aqui, é para quem gosta de VBA. A macro exibirá uma mensagem na tela com a saudação apropriada, conforme a figura a seguir.

 
Você precisa acessar o ambiente VBA, pressionado as teclas ALT+F11. E depois de um duplo clique no item EstaPasta_de_trabalho. Veja:

 
Daí você vai inserir o seguinte código.

Private Sub Workbook_Open()
Dim dHora As Integer
    dHora = Hour(Now)
    Select Case dHora
        Case Is >= 18
            sSaudacao = "Boa Noite"
        Case Is >= 12
            sSaudacao = "Boa Tarde"
        Case Is >= 0
            sSaudacao = "Bom Dia"
    End Select
    MsgBox sSaudacao & "! Seja bem vindo. Aproveite para seguir @exceldoseujeito no twitter!!!", vbInformation, "Saudação do Excel"
End Sub

Não se esqueça de Salvar o arquivo.
Você pode perceber que a ordem de comparação da hora, segue o mesmo critério que utilizamos na fórmula anterior, do maior para o menor horário.
Agora, toda vez que este arquivo for aberto, exibirá a mensagem de Bom dia, tarde ou noite, conforme o horário do momento.
 
Espero que tenham gostado.
Comentem e compartilhem no twitter, facebook para ajudar na divulgação, valeu pessoal.
Até a próxima.

4 comentários em “Fórmula para exibir Bom Dia, Boa Tarde ou Boa Noite na planilha do Excel”

  1. Boa noite.
    Fiz um teste aqui, coloquei na C3 o horário e na E3 a formula dada por você, no entanto não funcionou, ficou apenas escrito #NOME? no lugar da formula. Tentei então colocar a função =agora(), mas mesmo assim nada. O que poderia ter acontecido?
    Abraços

    Responder
  2. se alguém quiser ser ainda mais específico, pode acrescentar a hora atual na mensagem:
    MsgBox sSaudacao & “,” & ” ” & “são” & ” ” & Time() & “,” & ” ” & “Bem Vindo Deuseuri”, vbInformation, “Tela de Entrada”

    Responder

Deixe uma resposta para reviews Cancelar resposta