Ir para conteúdo
Fórum Script Brasil
  • 0

Criar Loop com condição de erro


silvaarthur89

Pergunta

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 para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...