none
Dúvida On error resume Next RRS feed

  • Pergunta

  • Estou com uma dúvida: tenho uma macro que irá sempre excluir algumas colunas de uma tabela dinâmica (conforme mostra o código abaixo), porém nem sempre haverá todas elas, assim utilizar esse código é passível de erro.A minha dúvida é, como eu utilizo o On Error Resume Next para funcionar corretamente?

    (1, 2,...; são colunas exluídas).

        With ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("Dep.")

            .PivotItems("1").Visible = False

            .PivotItems("2").Visible = False

            .PivotItems("3").Visible = False

            .PivotItems("4").Visible = False

            .PivotItems("5").Visible = False

            .PivotItems("6").Visible = False

            .PivotItems("7").Visible = False

            .PivotItems("8").Visible = False

            .PivotItems("(blank)").Visible = False

        End With

    terça-feira, 17 de julho de 2012 11:06

Respostas

  • O uso do comando On Error Resume Next resume-se a aplicação de alguma exceção que o seu algoritmo possa executar e o mesmo não precise necessariamente de ser tratado, pois é um erro previsto. Uma outra boa pratica é você tratar o erro através do código do erro retornado. Exemplo:

    Você cria uma sintaxe logo abaixo da abertura da Sub  Rotina ou de uma Função?

    Sub Exemplo()

    On Error Goto TratarErro

    'Local de seu algoritmo

    Exit Sub

    TratarErro:

    If Err.Number = 1004 then

       Resume Next

    Else

       MsgBox Err.Number & "-" & Err.Description

    End If

    End Sub

    terça-feira, 17 de julho de 2012 19:35
  •     On Error Resume Next
        With ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("Dep.")
            .PivotItems("1").Visible = False
            .PivotItems("2").Visible = False
            .PivotItems("3").Visible = False
            .PivotItems("4").Visible = False
            .PivotItems("5").Visible = False
            .PivotItems("6").Visible = False
            .PivotItems("7").Visible = False
            .PivotItems("8").Visible = False
            .PivotItems("(blank)").Visible = False
        End With
        On Error GoTo 0



    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 18 de julho de 2012 00:38
    Moderador

Todas as Respostas

  • O uso do comando On Error Resume Next resume-se a aplicação de alguma exceção que o seu algoritmo possa executar e o mesmo não precise necessariamente de ser tratado, pois é um erro previsto. Uma outra boa pratica é você tratar o erro através do código do erro retornado. Exemplo:

    Você cria uma sintaxe logo abaixo da abertura da Sub  Rotina ou de uma Função?

    Sub Exemplo()

    On Error Goto TratarErro

    'Local de seu algoritmo

    Exit Sub

    TratarErro:

    If Err.Number = 1004 then

       Resume Next

    Else

       MsgBox Err.Number & "-" & Err.Description

    End If

    End Sub

    terça-feira, 17 de julho de 2012 19:35
  •     On Error Resume Next
        With ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("Dep.")
            .PivotItems("1").Visible = False
            .PivotItems("2").Visible = False
            .PivotItems("3").Visible = False
            .PivotItems("4").Visible = False
            .PivotItems("5").Visible = False
            .PivotItems("6").Visible = False
            .PivotItems("7").Visible = False
            .PivotItems("8").Visible = False
            .PivotItems("(blank)").Visible = False
        End With
        On Error GoTo 0



    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 18 de julho de 2012 00:38
    Moderador