Jump to content
Fórum Script Brasil
  • 0

Criar Loop com condição de erro


Question

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

 

Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148681
    • Total Posts
      644506
×
×
  • Create New...