Ir para conteúdo
Fórum Script Brasil

silvaarthur89

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por silvaarthur89

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

     

×
×
  • Criar Novo...