Notifications
Clear all

Tratamento de datas

3 Posts
2 Usuários
0 Reactions
1,497 Visualizações
(@matheusace)
Posts: 0
New Member
Topic starter
 

Boa tarde a todos,

Estou com uma dúvida em relação a uma planilha que estou automatizando a dúvida é a seguinte, como pegar o valor dos últimos 12 meses por extenso?
No campo do excel utilizo a formula;
Para mês atual: "=HOJE()"
Para mês anterior: "=DATA(ANO(HOJE());MÊS(HOJE())-1;DIA(HOJE()))" e assim por diante, essa formulá funciona perfeitamente porem preciso escrever essa data por extenso em VBA para que a planilha consiga buscar arquivos de pastas diferentes de acordo com o mês.

O código que utilizo atualmente na macro é o seguinte:

Sub ColocaNomes()
plan = ActiveWorkbook.Name
Dim wb As Workbook

ano = Year(Now())
ano1 = Year(Now()) - 1
mes = Format(Now(), "MMMM")
mes1 = Month(Now()) - 1
Mes2 = Month(Now()) - 2
Mes3 = Month(Now()) - 3
Mes4 = Month(Now()) - 4
Mes5 = Month(Now()) - 5
Mes6 = Month(Now()) - 6
Mes7 = Month(Now()) - 7
Mes8 = Month(Now()) - 8
Mes9 = Month(Now()) - 9
Mes10 = Month(Now()) - 10
Mes11 = Month(Now()) - 11
Mes12 = Month(Now()) - 12

O campo mês me retorna o valor por extenso que atualmente é Abril (Até aqui tudo bem), já os outros me retornam valores como "3", "2", "1" e etc.
Segue uma print;

------- O motivo dessas variáveis é que existem algumas planilhas que recebem dados dos operadores da empresa, e essas planilhas ficam organizadas em pastas de acordo com o mês e o ano, e o nome da planilha não muda somente as pastas. Por exemplo:

2014/Dezembro/planilharendimento.xlsx
2015/Janeiro/planilharendimento.xlsx

------

Atenciosamente,
Matheus Arruda

 
Postado : 13/04/2015 11:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não creio haver entendido corretamente o que deseja, mas para o por "extenso" pode-se experimentar:

plan = ActiveWorkbook.Name
Dim wb As Workbook
tp = DateSerial(Year(Now), Month(Now) - 1, Day(Now))
ano = Year(Now())
ano1 = Year(Now()) - 1
mes = Format(Now(), "MMMM")
'ou
mes0 = Format(DateAdd("m", 0, Now()), "MMMM")
mes1 = Format(DateAdd("m", -1, Now()), "MMMM")
Mes2 = Format(DateAdd("m", -2, Now()), "MMMM")
Mes3 = Format(DateAdd("m", -3, Now()), "MMMM")
Mes4 = Format(DateAdd("m", -4, Now()), "MMMM")
Mes5 = Format(DateAdd("m", -5, Now()), "MMMM")
Mes6 = Format(DateAdd("m", -6, Now()), "MMMM")
Mes7 = Format(DateAdd("m", -7, Now()), "MMMM")
Mes8 = Format(DateAdd("m", -8, Now()), "MMMM")
Mes9 = Format(DateAdd("m", -9, Now()), "MMMM")
Mes10 = Format(DateAdd("m", -10, Now()), "MMMM")
Mes11 = Format(DateAdd("m", -11, Now()), "MMMM")
Mes12 = Format(DateAdd("m", -12, Now()), "MMMM")
 
Postado : 13/04/2015 1:32 pm
(@matheusace)
Posts: 0
New Member
Topic starter
 

Bom dia Reinaldo, erá isso mesmo que eu estava precisando, muito obrigado.
Abraços!

Att,
Matheus Arruda.

 
Postado : 14/04/2015 5:32 am