Página 1 de 1

Retornar último dia do mês

Enviado: 16 Ago 2016 às 17:30
por Israellen
Olá preciso do código que me retorne o ultimo dia do mês caso a data seja maior que a data de competência.

Eu tenho várias datas na coluna da competência mês 07, porém algumas vem com data do mês 08. Como posso fazer para ele retornar a data do ultimo dia do mês apenas nas datas fora da competência?

No momento estou usando o código abaixo porem ele muda todos os dias para o ultimo do mês.


Function gfUltimoDiaMes(ByVal vCel As String) As Date
Dim lData As Date 'Dia do mês subsequente

If Month(vCel) < 12 Then
lData = "1/" & (Month(vCel) + 1) & "/" & Year(vCel)

Else

lData = "1/1" & "/" & Year(vCel) + 1

End If

'Dia do mês subsequente -1, ou seja, último dia do mês anterior
lData = lData - 1

'Retorna informação
gfUltimoDiaMes = lData

End Function

Retornar último dia do mês

Enviado: 16 Ago 2016 às 17:45
por cyllio
Olá,
Não sei se entendi bem.
Imagino que você esteja utilizando uma versão do Office anterior à 2010, pois na versão 2010 existe a função =FIMMÊS
Nesse caso seria assim: =FIMMÊS(A1;-1), onde A1 é uma data base e -1 o índice do mês.

Em VBA a fórmula é assim: ActiveCell.FormulaR1C1 = "=EOMONTH(R[-2]C[-2],-1)"
Mas não sei se existe em outras versões.

Retornar último dia do mês

Enviado: 16 Ago 2016 às 17:52
por Israellen
Uso a versão 2013, vou tentar em VBA.

Retornar último dia do mês

Enviado: 16 Ago 2016 às 18:08
por cyllio
Para informar a data preenchida e informar o último dia do mês apenas em caso do mês ser superior à competência você pode usar a fórmula abaixo mas se preferir VBA é só converter:

=SE(A5<DATA(2016;$B$1;31);A5;FIMMÊS(A5;-1))

Imagem

Retornar último dia do mês

Enviado: 16 Ago 2016 às 18:16
por Israellen
É exatamente assim que quero, tenho um DataBox onde coloco a competência.