Pessoal, segue uma porção de funções de Data e Hora

Funções de Data e Hora Quase sempre estamos utilizando essas funções (quem nunca precisou usar um format vba ) e por isso creio que seja válido postar, pois muitas vezes há como facilitar o trabalho ou linhas de código se souber uma função que já traga uma data formatada.

Eu mesmo no início quando queria fazer um log com datas eu concatenava day(now), month(now) e year(now)
e conforme abaixo da para usar DateSerial(Year(Now), Month(Now), Day(Now))

Outra função que facilita muito é o format()…sempre precisamos quando o cliente pede a data em algum formato específico ou quando pegamos data em formato de outro idioma.

Bem façam bom proveito!!!

 

Funções de Data e Hora VBA

 Função

 Descrição

Now Data e hora atual. Exemplo: 22/01/2013 21:00:47 PM retornado por Now()
Date Data atual. Exemplo: 22/01/2013 retornado por Date()
Time Hora atual. Exemplo: 21:00:47 retornado por Time()
Timer Número de segundos desde a meia-noite. Exemplo: 75783,98  retornado por Timer
TimeValue() Retorna somente a hora. Exemplo: 21:00:47  é o retorno de TimeValue(Now)
DateValue() Retorna somente a data de um argumento
DateSerial() Traz a data divida por 3 argumentos: year, month, day
Examplo: logDeData = DateSerial(Year(Now), Month(Now), Day(Now))
logDeData = 22/01/2013
DatePart() Retorna uma porção da data conforme informado.
Exemplo de ano: 2013 é o retorno de DatePart(“yyyy”, Date)
Exemplo de mês: 01 é o retorno de DatePart(“m”, #22/01/2013#)
Número da semana: 4 returned by DatePart(“ww”, Now)
Dia da semana(traz em número 1 a 7, domingo=1),  DatePart(“w”, Now)
Trimestre: 1 é o retorno de DatePart(“q”, Now)
Year() Traz somente o ano de uma data
Month() Traz somente o mês de uma data
Day() Traz somente o dia de uma data
MonthName() Traz o nome do mês, exemplo de uso: MonthName(Month(Date))
WeekdayName() Nome do dia da semana, ex: terça-feira =  WeekdayName(Weekday(Date))
DateDiff() Retorna a diferença entre datas.
Diferença de dias: 344 para o próximo ano novo, DateDiff(“d”, Date, #1/1/2014#)
Meses: 12 de diferença, DateDiff(“m”, #22/01/2013#, #1/1/2014#)
DateAdd() Adiciona e subtrai datas.
22/01/2014 é o resultado da adição de ano, DateAdd(“yyyy”, 1, #1/22/2013#)
Hoje mais 15 dias é o retorno de DateAdd(“d”, 15, Date)
Para subtrair de uma data basta: DateAdd(“d”, -45, Date)
Format()  Muito útil para formatar datas (vale também p/ formatar datas que estão em inglês)
ter, 22-janeiro-2013 é o retorno de Format(Date,”ddd, d-mmmm-yyyy”)
22-jan-13 é o resultado de Format(Date,”d-mmm-yy”)
Obs.: Ao copiar os códigos do site e colar direto no VBAProject substitua “ e ” por ” “(aspas duplas)

 

Outras Dúvidas sobre data no vba

Após tanta informação eu levanto duas perguntas aparentemente simples, a resposta também, mas não é o que parece…

  1. Como você faria para saber a idade de uma pessoa dentro do excel? Excel VBA  
  2. A partir da data como você faria para fechar a planilha após algum tempo? Excel VBA  

 

 

Para ajudar coloco gratuitamente a planilha abaixo exemplificando cada função acima

download planilha excel vba