Views

Histats

Vitrine

VBA Excel - Formatação de Data e Hora - Format Date and Time in MS Excel.

Quase todos os projetos e aplicações que utilizam o MS Excel envolvem Datas e Horários de alguma forma. Um projeto talvez precise determinar o número de dias entre duas datas, ou determinar em que dia da semana cai lá no futuro; uma planilha de projetos talvez necessite determinar o tempo decorrido entre o início e o final das etapas, ou determinar quantas horas são horas extras.

Antes de poder tirar partido do poder de algumas funções de Data e Hora, precisa entender como o MS Excel armazena datas e horas. Independentemente de como tenha formatado uma célula para exibir uma data ou hora, o MS Excel sempre as armazenará da mesma forma.

Como o MS Excel armazena as Datas e Horas:

O MS Excel armazena datas e horas, como um número que representa o número de dias desde 0-Jan-1900, mais uma parte fracionária de um dia de 24 horas: ddddd.tttttt. Isso é chamado de Serial Date (data de série) ou de Serial Date-Time (Série de Data-Tempo).

Datas
A porção inteira do número, ddddd, representa o número de dias desde 0-Jan-1900. Por exemplo, a data 19-Jan-2000 é armazenado como 36.544, 36.544 dias já se passaram desde 0-Jan-1900. O número 1 representa 1-Jan-1900. Entenda-se que o número 0 não representa 31-Dez-1899. Se usar a função mês com a data 0, retornará Janeiro e não Dezembro. Além disso, a função retornará ANO como 1900 e não como 1899.

Na verdade, esse número é maior do que o número real de dias. Isso ocorre porque o  MS Excel comporta-se como se a data de 29-Fev-1900 tivesse existido. O ano de 1900 não foi um ano bissexto (ano de 2000 é um ano bissexto). No  MS Excel, um dia após 28-Fev-1900 é 29-Fev-1900. Na realidade, o dia depois de 28-Fev-1900 é 01-Mar-1900. Isso não é um Bug (erro), na verdade, foi desenhado assim. O  MS Excel funciona dessa maneira porque este realmente era um erro no Lotus 123. Quando o  MS Excel foi desenvolvido e introduzido no mercado, o Lotus 123 tinha quase todo o mercado de software de planilha eletrônica. A Microsoft decidiu continuar com o bug do Lotus, a fim de torná-lo totalmente compatível. Os usuários que passaram do Lotus 123 para o  MS Excel não tiveram de fazer quaisquer ajustes e/ou alterações em seus dados. Enquanto todas as datas forem até 01-Mar-1900, esta não deve ser de nenhuma preocupação.


No MS Excel temos uma função que retorna um valor formatado...Veremos aqui algumas formas para retornar a formatação de Datas:

        Format ( expressão, [ formato, [ firstdayofweek, [firstweekofyear] ] ] )
expressão é o valor para o formato.


formato é opcional. É o formato para aplicar a expressão. Podemos definir nosso próprio formato ou usar um dos formatos nomeados que o MS Excel tem pré-definido, tais como:

General Date  
Exibe a data com base nas configurações do seu sistema.

Long Date      
Mostra a data com base no Long Date configurado no sistema

Medium Date 
Exibe a data com base no Medium Date configurado no sistema

Short Date    
Mostra a data com base no Short Date configurado no sistema

Long Time    
Exibe a data com base no Long Time configurado no sistema

Medium Time 
Mostra a data com base no Medium Time configurado no sistema

Short Time    
Exibe a data com base no Short Time configurado no sistema

firstdayofweek [primeirodiadasemana] é opcional. É um valor que especifica o primeiro dia da semana. Se este parâmetro for omitido, a função Format assume que o Domingo é o primeiro dia da semana. Este parâmetro pode ser um dos seguintes valores:

Constante      Valor     Explanação
vbUseSystem     0        Usa a configuração da API NLS.
VbSunday          1        Domingo (É o default, se o parâmetro for omitido).
vbMonday           2        Segunda-feira.
vbTuesday          3        Terça-feira.
vbWednesday     4        Quarta-feira.
vbThursday         5        Quinta-feira.
vbFriday             6        Sexta-feira.
vbSaturday         7        Sábado.

firstweekofyear [primeirasemanadoano] é opcional. É um valor que especifica a primeira semana do ano. Se este parâmetro for omitido, a função Format assume que a semana que contém 1 de janeiro é a primeira semana do ano. Este parâmetro pode ser um dos seguintes valores:

Constante      Valor     Explanação
vbUseSystem     0        Usa a configuração da API NLS.
vbFirstJan1         1        A semana que contém 1º de Janeiro.
vbFirstFourDays  2        A primeira semana que contiver 4 dias no Ano.
vbFirstFullWeek  3        A primeira semana cheia do Ano.

Aplica-se ao:
MS Office Excel 2007
MS Office Excel 2003
MS Office Excel XP
MS Office Excel 2000

Exemplo:
Format (#05/02/2007#, "Short Date")
Retornará: '05/02/2007'

Format (#05/02/2007#, "Long Date")
Retornará: 'Februry 05, 2007'

Format (#05/02/2007#, "yyyy/mm/dd")
Retornará: '2007/05/02'

Codificação VBA:
Function TitleCaption()
        ' Author:                            Date:                       Contact:                             URL:
        ' André Bernardes             23/03/2010 09:17    bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/
        ' Atualiza o título no FORM.
        ' Listening: GreensLeeves - Mozart

        Let Me.Caption = ":. " & Format (Now(), "Long Date") & " - " & Right (Now(), 8)
End Function


Algumas Funções com Datas e Horas:

Overtime Hours In Timesheets

Quarter, Determining From Date

Rounding Times

Thanksgiving, Calculation Of Date


Times, Adding And Subtracting


Times And Working Hours, Between Two Dates

Times, Quick Entry

Times, Rounding

Timesheets, Working With Regular And Overtime Hours


Time Zones

Week, First Monday Of

Week Numbers, Excel and ISO

Weekday, Counting Between Dates

Weekday, First And Last Of Month

Weekday, Nth Day Of Month (VBA)


Weekday, Nth Day Of Month (Formula)


Weekdays, Creating Series Of


Weeks, Difference Between Dates


Year, First Monday Of


Years, Entering Two Digit Years

Date Intervals, Formulas For

Dates, Adding And Subtracting


Dates,  Differences Between
 

Dates, Distributing Across Months Or Years


Dates, Excel Serial Format


Dates, Finding With VBA .Find Method


Dates, Quick Entry


Dates, Two Digit Years


Day Of Week, Nth Day Of Week (VBA)

Day Of Week, Nth Day Of Week In A Month (Formula) 

Day Of Week, Returning Nth Day Of Week In A Year (Formula)

Days In Month, First And Last Days In Month

DATEDIF Function


Degrees, Minutes, And Seconds


Easter, Calculation Of Date


Holidays, Calculation Of Dates

Julian Dates

Last Weekday Of Month

Leap Year, Determining

Age, Calculating

Birthdays And Age

Holidays

Julian Dates

Latitude And Longitude 

Overtime Hours And Timesheets

Time Zones In VBA

VBA Procedures For Dates And Times

Week Numbers

Worksheet Functions For Dates And Times

Adding Months And Years

The DATEDIF Function

Date Intervals

Dates And Times

Date And Time Entry

Date And Time Arithmetic

Distributing Dates Over Intervals




LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...