@LeoDuraes como diz o proprio titulo do tópico, voce quer ajuda com rotina VBA,
Segue o codigo, ao inseri uma data na coluna E, a macro inseri os dados nas celulas anteriores:
Cole o codigo no modulo da sua aba(planilha):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lr As Long
Lr = Cells(Rows.Count, 5).End(xlUp).Row
If Target.Count > 1 Or Target.Value = "" Then Exit Sub
If Not Intersect(Target, Range("E2:E" & Lr)) Is Nothing Then
With ThisWorkbook
Range("A" & Target.Row) = VBA.Format(Target.Value, "yyyy")
Range("B" & Target.Row) = .Application.WorksheetFunction.Proper(VBA.Format(Target.Value, "mmmm"))
Range("C" & Target.Row) = .Application.WorksheetFunction.Text(Target.Value, "mm")
Range("D" & Target.Row) = .Application.WorksheetFunction.Text(Target.Value, "yyyy") & _
.Application.WorksheetFunction.Proper(VBA.Format(Target.Value, "mmmm"))
End With
End If
End Sub
End Sub