VBA - ALTERAR MÊS E ANO MANTENDO DIA ATUAL
Enviado: 17 Jan 2019 às 15:38
Boa tarde, pessoal
Preciso de ajuda para completar o código na linha:
Portanto preciso que o dia permaneça inalterado mudando apenas o Mês e o Ano conforme alteração nos campos Mês e Ano.
Segue o código e planilha anexa:
Obrigado a quem puder colaborar.
Preciso de ajuda para completar o código na linha:
Código: Selecionar todos
Preciso que retorne a Data no formato numérico xx/xx/xxxx, sendo que o Mês e Ano correspondem aos intervalos nomeados na planilha "MesReferencia_AD" e "AnoReferencia_AD". O dia é dado pelo código ao abrir a planilha..Range("Consulta_Data").Value2 = ???????????????
Portanto preciso que o dia permaneça inalterado mudando apenas o Mês e o Ano conforme alteração nos campos Mês e Ano.
Segue o código e planilha anexa:
Código: Selecionar todos
Se houver erros no código ou for possível resumi-lo aceito sugestões.Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim TabelaConsulta As ListObject, TabelaConsulta2 As ListObject
Set TabelaConsulta = wshAtivDiarias.ListObjects("TB_ConsultaAtivCadastrada")
Set TabelaConsulta2 = wshPlanAuxiliar.ListObjects("TB_ConsultaAtivCadastrada2")
Application.ScreenUpdating = False
On Error Resume Next
If Not Application.Intersect(Target, wshAtivDiarias.Range("MesReferencia_AD")) Is Nothing Then
With wshPlanAuxiliar
.Range("MesReferencia_AUX").Value2 = wshAtivDiarias.Range("MesReferencia_AD").Value2
End With
End If
If Not Application.Intersect(Target, wshAtivDiarias.Range("AnoReferencia_AD")) Is Nothing Then
With wshPlanAuxiliar
.Range("AnoReferencia_AUX").Value2 = wshAtivDiarias.Range("AnoReferencia_AD").Value2
End With
End If
'If Not Application.Intersect(Target, wshAtivDiarias.Range("MesReferencia_AD")) _
'Or Application.Intersect(Target, wshAtivDiarias.Range("AnoReferencia_AD")) Is Nothing _
'And VBA.IsDate(Target.Value) Then
'With wshAtivDiarias
'.Range("Consulta_Data").Value2 = ???????????????
'(preciso que altere a data retornando com o Mês do Range MesReferencia_AD
' e o ano do Range AnoReferencia_AD no formato xx/xx/xxxx (numérico)... o dia permanece o mesmo e será dado pelo código que inicia a planilha.
'End With
'End If
If Not Application.Intersect(Target, TabelaConsulta.ListColumns("Data").DataBodyRange) Is Nothing And VBA.IsDate(Target.Value) Then
With wshPlanAuxiliar
.Range("Consulta_Data2").Value = wshAtivDiarias.Range("Consulta_Data").Value
End With
End If
If Not Application.Intersect(Target, TabelaConsulta.ListColumns("Fluxo").DataBodyRange) Is Nothing Then
With wshPlanAuxiliar
.Range("Consulta_Fluxo2").Value = wshAtivDiarias.Range("Consulta_Fluxo").Value
End With
End If
If Not Application.Intersect(Target, TabelaConsulta.ListColumns("Periodicidade").DataBodyRange) Is Nothing Then
With wshPlanAuxiliar
.Range("Consulta_Periodicidade2").Value = wshAtivDiarias.Range("Consulta_Periodicidade").Value
End With
End If
Application.ScreenUpdating = True
End Sub
Obrigado a quem puder colaborar.