excel 2007 insira nova data

0

Estou tentando criar um modelo do Excel que terá três campos que eu gostaria de atualizar automaticamente quando estiver aberto.

Campos que esse modelo terá

  • Data atual: 02/07/2012
  • Número da Folha: 25
  • Entre a data: 02/07/2012 a 02/08/2012

Quando eu abro este modelo após 03/08/2012, esta folha terá novos dados

  • Data atual: 03/08/2012
  • Número da Folha: 26
  • Entre a data: 03/08/2012 a 02/09/2012

Para a data atual

Private Sub Workbook_Open() 
     ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Date 
End Sub

Isso pode ser feito usando a função excel ou eu preciso usar o VB e também como faço para atualizar o template automaticamente com novos valores para dizer na próxima vez que usar essas datas.

    
por Lalajee 02.07.2012 / 15:48

1 resposta

0

Existem várias maneiras de conseguir isso.

O mais fácil assume que o início & as datas de término são consistentes.

  1. 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)
  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.

    
por 02.07.2012 / 23:16