Estou escrevendo um código que abre uma planilha em um caminho na rede de acordo com uma data gravada em uma célula de uma sheet. A célula recebe o valor da formula =hoje() daí desencadeia todo código
Com base no ano, mês e dia o código varre o caminho buscando a pasta do ano e mês referente depois ele concatena uma string com o nome inicial do arquivo + o dia + mês e ano. Até aí tudo bem, deixei variável o mês e ano e ele localiza a pasta correta, o problema é o dia, dentro da pasta tem várias planilhas com a seguinte nomenclatura de estrutura: “modelo base ativos “dia(dd).mes(mm).ano(aaaa), logo nem sempre terá a planilha do dia que consta na celula que recebe a formula hoje(), então pensei o seguinte:
Criar uma sintaxe de erro no inicio do código do tipo:
Sub teste()
On error goto “nome”
Exit sub
“nome:”
1. Quando não localiza o arquivo aparece a mensagem que o arquivo não existe ou foi renomeado e excluído, essa mensagem obriga o usuário a clicar em ok, preciso automatizar o código para que ele aperte esse botão automaticamente senão trava as próximas ações
2. Criar um Loop que pegue a data gravada na celula some + 1 e excute novamente, se der erro (repete a ação 1 e 2) e segue a sequencia subtraindo a data por -1, se encontrar o arquivo ele abre se der erro ele repete o processo só que ao invés de subtrair 1 soma 1 a data. A ideia é seguir a logica alternada se erro subtrai o sequencial – 2 se der erro some o sequencial +2 e assim sucessivamente até subtrair 10 e somar 10, se ainda sim ele não encontrar aí deve aparecer a msgbox: “Atualização não realizada: planilha de ativos referente ao período não localizada na rede, contate administrador”
Segue abaixo o código:
Sub BBMP()
Dim Caminho As String
Dim Data As Date
Dim Ano As Integer
Dim Nome_mes As String
Dim mes As String
Dim Espaco As String
Dim Nome_arquivo As String
Dim Mes_numero As Integer
Dim MesAjustado As String
Dim DiaAjustado As String
Sheets("Painel").Activate
linha = 1
Range("B1:D1").ClearContents
Cells(linha, 2).FormulaR1C1 = "=TODAY()"
Cells(linha, 3).FormulaR1C1 = "=MONTH(RC[-1])"
Cells(linha, 4).FormulaR1C1 = "=IF(RC[-1]<10,""0""&RC[-1],RC[-1])"
Cells(linha, 5).FormulaR1C1 = "=DAY(RC[-3])"
Cells(linha, 6).FormulaR1C1 = "=IF(RC[-1]<10,""0""&RC[-1],RC[-1])"
Data = Cells(linha, 2).Value
Ano = DatePart("yyyy", Data)
Mes_numero = Cells(linha, 4).Value
MesAjustado = Cells(linha, 4).Value
Nome_mes = MonthName(Month(Data))
Espaco = Space(1)
mes = "\" & Mes_numero & Espaco & "-" & Espaco & Nome_mes
DiaAjustado = Cells(linha, 6).Value
Caminho = "C:\teste\3 - testando\3 - Planilha teste\"
Nome_arquivo = "\Modelo Base teste" & Espaco & DiaAjustado & "." & MesAjustado & "." & Ano & ".xlsb"
Workbooks.Open (Caminho & Ano & mes & Nome_arquivo), UpdateLinks:=0
'Se não achar o arquivo eliminar o aviso e criar um loop para: dia -1, dia +1, dia -2, dia +2...dia -n, dia +n
'Se ainda sim não achar msgbox: "Atualização não realizada: planilha de teste referente ao período não localizada no drive, contate administrador"
End Sub