Notifications
Clear all

Erro em tempo de execução 91

11 Posts
4 Usuários
0 Reactions
2,430 Visualizações
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

Prezados, bom dia!!

Com a ajuda de Edcronos, consegui desenvolver uma planilha com uma guia de menu personalizada (Ribbon). Nessa guia personalizada existe uma editbox é atualizada mediante o valor preenchido na celula N3. Eu defini esse o seguinte formato para a celula: Format(Sheets("Plan1").Range("N3").Value, "R$ #,##0.00")

Acontece que quando eu insiro um valor diferente de um número aparece o erro de tipos incompatíveis de dados. (precisava de uma condição para tratar esse problema). Depois que acerto o valor da celula para um número normal aí aparece o erro de "varialvel do bloco with não definida erro em tempo de execução 91"

Vejam a planilha em anexo. Tem como tratar esse erro?

 
Postado : 11/07/2014 6:52 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Rilton,

Bom Dia!

Não sei se entendi corretamente a sua necessidade... aqui (Windows 7 e Excel 2007) executei normalmente sem que tenha ocorrido nenhum tipo de erro. Veja abaixo duas telas após cada uma das execuções: com número e com nome:

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 11/07/2014 7:22 am
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

Wagner, tente provocar um erro na celula N3... tipo, coloque a formula =h1/j1, daí o resultado vai ser #div/0! Feito isso vai aparecer a mensagem de erro.

 
Postado : 11/07/2014 7:29 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Rilton,

Conforme disse, provoquei o erro e não deu erro!!!
Para que não dê " #div/0!" você tem que preencher as células H1 e J1
Inseri a fórmula e o resultado apareceu sem dar o tipo de erro que você mencionou.

Att,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/07/2014 7:46 am
(@edcronos)
Posts: 1006
Noble Member
 

para a formula não dar erro na macro coloque elas assim
=Seerro(Formula;"")

=Seerro(H1/J1;"")
ou
=SEERRO(H1/J1;"invalido")

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 11/07/2014 7:58 am
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

Uai, o meu dá erro!!

Veja em anexo minha tela de erro!!

 
Postado : 11/07/2014 8:03 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Rilton,

Você está preenchendo as células "H1 e J1" para não dar o erro?

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/07/2014 8:12 am
(@edcronos)
Posts: 1006
Noble Member
 

como falei , use =SEERRO( na formula

text = Format(Var_troca_valor, "R$ #,##0.00")
pelo que reparei nos testes format não aceita mensagens de erro

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 11/07/2014 8:14 am
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

Esse erro é proposital... ou seja estou fazendo dar erro. o que estou querendo fazer é tratar esse erro dentro do vba.

 
Postado : 11/07/2014 6:44 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Esse erro é proposital... ou seja estou fazendo dar erro. o que estou querendo fazer é tratar esse erro dentro do vba.

Se entendi o erro existirá e para evitar as mensagens de : "erro de tipos incompatíveis de dados" e "varialvel do bloco with não definida erro em tempo de execução 91" você quer tratar na rotina, se for isto acrescente : On Error Resume Next, ficando assim :

Public Sub teste()

    On Error Resume Next
    Var_troca_valor = Format(Sheets("Plan1").Range("N3").Value, "R$ #,##0.00")
    
    Ribo_nome.InvalidateControl ("UmaAspirinina")
    
End Sub

Só tome cuidado com o uso excessivo deste tratamento, pois o mesmo inibirá outros erros podendo levar a resultados inesperados.

Aqui poderá ler um pouco sobre tratamento de erros :
Tratamento de Exceção
http://www.ambienteoffice.com.br/office ... e_excecao/

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/07/2014 8:17 pm
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

Perfeito Mauro Coutinho.. era isso mesmo!!

 
Postado : 12/07/2014 3:35 pm