Digitar data sem pr...
 
Notifications
Clear all

Digitar data sem precisar digitar as barras

6 Posts
2 Usuários
0 Reactions
3,612 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia a todos!

Gostaria de saber se tem como formatar as células para digitar datas sem ter quer digitar as barras. Por exemplo, desejo formatar a célula A1 para digitar 01052013 e aparecer automaticamente 01/05/2013 ou 01/05/13.

Muito obrigado.

Silvio.

 
Postado : 17/04/2013 5:15 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

SILVIOFELINTO,

Bom Dia!

Veja se assim lhe atende.

 
Postado : 17/04/2013 6:22 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Wagner!

Testei sua planilha, porém deu certo para algumas datas e outras não.
Não desabilitei nada.
Segue a planilha com os meus testes.

Obrigado.
Silvio.

 
Postado : 17/04/2013 7:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Se pretende que o resultado seja apenas visual, pode Formatar a Célula como Personalizado.

Tipo: 00"/"00"/"0000

Caso contrário, apenas por Macro mesmo, como sugerido pelo Wagner, se quiser o resultado na própria célula de entrada.

 
Postado : 17/04/2013 7:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Se me permitem,
por "macro", algum formatos de entrada podem gerar "confusão", já que internamente o vba "entende melhor" datas no formato "mm/dd/yyyyy".
Então o que uso (foi disponibilizado no grupo Excel-BR pelo JLM) é :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Função para entrar Datas sem usar "/"
'Por: JLM - José Luiz Martins em 28/08/2003
    Dim DateStr As String
    On Error GoTo EndMacro
    'If Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    
    Application.EnableEvents = False
    With Target
        If .HasFormula = False Then
            Select Case Len(.Formula)
                Case 4
                    DateStr = Left(.Formula, 1) & "/" & _
                    Mid(.Formula, 2, 1) & "/" & Right(.Formula, 2)
                Case 5
                    DateStr = Left(.Formula, 1) & "/" & _
                        Mid(.Formula, 2, 2) & "/" & Right(.Formula, 2)
                Case 6
                    DateStr = Left(.Formula, 2) & "/" & _
                        Mid(.Formula, 3, 2) & "/" & Right(.Formula, 2)
                Case 7
                    DateStr = Left(.Formula, 1) & "/" & _
                        Mid(.Formula, 2, 2) & "/" & Right(.Formula, 4)
                Case 8
                    DateStr = Left(.Formula, 2) & "/" & _
                        Mid(.Formula, 3, 2) & "/" & Right(.Formula, 4)
                Case Else
                    Err.Raise 0
            End Select
            .Formula = DateValue(DateStr)
        End If
    End With
    Application.EnableEvents = True
    Exit Sub
EndMacro:
MsgBox Err.Number & " - " & Err.Description
    MsgBox "Você não entrou com uma data válida."
    Range(Target.Address).ClearContents
    Application.EnableEvents = True
End Sub
 
Postado : 17/04/2013 7:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Reinaldo!

Testei e deu tudo certo.

Mais uma vez obrigado a todos.

Silvio.

 
Postado : 17/04/2013 8:40 am