Notifications
Clear all

Formatar "celula data"

7 Posts
4 Usuários
0 Reactions
1,247 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

caros colegas,

preciso da formula para formatar uma celula determinada, que quando digitar por exemplo 01122016, seja gerado na tela
01/12/2016, nesta celular grato

 
Postado : 30/11/2016 8:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Formatação persoalizada:

00"/"00"/"0000

mas que fique claro, esse número não será uma... vc precisará de uma colun adicional para transformá-la em data e poder trabalhar com ela (calculo de ds, meses, horas trabalhadas, etc)

Na coluna pra encontrar a fórmula,use:

=SE(NÚM.CARACT(A2)=7;
DATA(DIREITA(A2;4);EXT.TEXTO(A2;2;2);ESQUERDA(A2;1));
DATA(DIREITA(A2;4);EXT.TEXTO(A2;3;2);ESQUERDA(A2;2)))
 
Postado : 30/11/2016 8:12 am
(@edsonbr)
Posts: 0
New Member
 

Bom dia, Tadeuz

Para que seja considerada uma data, e não um número com formato semelhante a uma data, teria q usar, por exemplo, em outra coluna:

=DATA.VALOR(TEXTO(A1;"00/00/0000"))

Se for realmente necessário que o valor seja transformado em data (não só formatado como uma) na própria célula digitada, após atualizá-la, teria que ser com uma macro. Se for, retorne.

 
Postado : 30/11/2016 8:53 am
(@edsonbr)
Posts: 0
New Member
 

Ô, Fernando, foi mal. Não vi q vc já tinha respondido.

 
Postado : 30/11/2016 8:54 am
(@djunqueira)
Posts: 0
New Member
 

Todas as ideias enriquecem o fórum.

Então vou sugerir mais uma:
Pq não instalar um suplemento q adicione um calendário p/ escolher a data com o mouse como na foto abaixo?

O suplemento é o XLTools, mas tem outras formas de inserir um calendário p/ selecionar data.

 
Postado : 30/11/2016 10:12 am
(@pfarias)
Posts: 0
New Member
 

Para que na mesma célula fique esse formato personalizado, é só seguir o que o Fernando disse:

Formatação persoalizada:

00"/"00"/"0000

Mas, a célula ficará como um valor DATA. O pessoal já deu a solução para função.

Mais um ideia usando VBA
Mas se for usar e entender um pouco de VBA, pode usar o code abaixo dentro da Pasta especifica. Ele vai verificar a alteração da célula e transforma-lo no formato de DATA. Se não for uma data ele retorna o texto digitado, ou se for uma data menor do que 1900 ele apenas formatará a célula no formato personalizado.

Option Explicit

:)

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error Resume Next
    Target.Value2 = FormatDateTime(CDate(Format(Target.Value2, "00/00/0000")))

End Sub
 
Postado : 30/11/2016 10:18 am
(@pfarias)
Posts: 0
New Member
 
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error Resume Next
    Target.Value2 = FormatDateTime(CDate(Format(Target.Value2, "00/00/0000")))

End Sub

Desconsidera a carinha no code :) kkk

 
Postado : 30/11/2016 10:29 am