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

Nenhum comentário:

Postar um comentário

diHITT - Notícias