Existem várias maneiras de conseguir isso.
O mais fácil assume que o início & as datas de término são consistentes.
- As datas "entre" devem estar em duas células. A data de "início" é definida como 2º do mês atual
=DATE(YEAR( NOW() ), MONTH( NOW() ), 2)
, a data "final" até o segundo dia do mês atual +1=DATE(YEAR( NOW() ), MONTH( NOW() ) +1, 2)
- A data "atual" é simplesmente definida para a data de "início".
No entanto, você precisa "corrigir" essas datas quando a planilha for salva. Supondo que a data "atual" esteja na célula B3 e as 2 entre as datas estejam nas células. Você pode usar algo como:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Range("B3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Range("B5:C5").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
No módulo de código ThisWorkbook
. Isso simplesmente faz uma cópia / valores passados nas células para que a fórmula seja substituída pelas datas.
Opa, uma adição é necessária para isso. O código que eu forneci é um pouco simplista, já que você não seria capaz de salvar o template, então você precisa envolver o código em algo que o impeça de disparar ao editar o template em si. Possivelmente, a maneira mais fácil é usar uma convenção de nomenclatura nos arquivos. Talvez o modelo tenha o texto "TEMPLATE" no início do nome do arquivo.