Saberexcel - o site das macros
Esse procedimento do Aplicativo Microsoft Excel VBA, inserido na folha de planilha e sensizilizado pelo Evento SelectionChange, ao selecionar
copia determinados números com caracteres inválidos para datas, e os transforma em datas válidas, com barras.
'------------'
15%07&2012 - será transformado em 15/07/2012
17(07*2012 - será transformado em 15/07/2012
19.12.2012 - será transformado em 19/12/2012
25$07#2012 - será transformado em 25/07/2012
18!08*2012 - será transformado em 18/08/2012
26"12£2012 - será transformado em 26/12/2012
31%12§2012 - será transformado em 31/12/2012
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Saber1.[A1].Value = ActiveCell.Offset(0, -2).Value
Data_Formato_dia_mes_ano
End Sub
'transformando um data formato texto (07.03.2012) no formato (07/03/2012)
Sub Data_Formato_dia_mes_ano()
Dim Ano As Integer, Mes As Integer, dia As Integer
Ano = Right(Range("A1"), 4)
Mes = Mid(Range("A1"), 4, 2)
dia = Left(Range("A1"), 2)
Range("A2") = DateSerial(Ano, Mes, dia)
End Sub
Escola Saberexcel VBA Estudos - Treinamentos, Macros, Fórmulas e funções http://www.microsoftexcel.com.br
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel
Baixe o exemplo de planilha contendo macros e procedimento acima:
Comentários
Olá preciso de um código vba para uma célula especifica chamada (data) quero que ela só aceite datas, porém quero que as barras que separam dia,mês e ano sempre fiquem visíveis mesmo apagando os números as barras não sejam apagadas, isso é possível?
Fico grato e fico no aguardo...
Rodrigo para determinar uma célula ou um intervalo de células para que aceite somente datas e ou um formato de datas segue a abaixo o procedimento, quanto ao apagar ficar mostrando as barras temos que desenvolver um procedimento para tal. mas segue o procedimento usando evento change excel vba.
vou lhe enviar a planilha via email. Fique com Deus,
Expedito Marcondes
'//==============='
Private Sub Worksheet_Chang e(ByVal Target As Excel.Range)
' procedimento para entrar Datas sem usar "/"
Dim DateStr As String
On Error GoTo EndMacro
If Intersect(Targe t, Range("A1:A10") ) Is Nothing Then Exit Sub
If Target.Cells.Co unt > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
Application.Ena bleEvents = 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(DateS tr)
End If
End With
Application.Ena bleEvents = deusepaie
Exit Sub
EndMacro:
MsgBox "Digitou uma data inválida."
Range(Target.Ad dress).ClearCon tents
Application.Ena bleEvents = deusepaie
End Sub
Assine o RSS dos comentários