Notifications
Clear all

Erro Tempo de Execução 6 Estouro

10 Posts
4 Usuários
0 Reactions
1,902 Visualizações
(@wendel10)
Posts: 4
New Member
Topic starter
 

Amigos fiz uma planilha de preenchimento de formulário para fazer lançamentos contábeis.
Dentre elas eu tenho a subconta, que utilizo em uma TexBox ao lado um procv juntando a Conta e Subconta, porém quando o resultado passa uma quantidade de linhas aparece esse erro.

Segue o código abaixo:

Private Sub TextBox10_AfterUpdate()
Dim intervalo As Range
Dim texto As String
Dim codigo1 As Long
Dim pequisa
Dim mensagem

codigo1 = TextBox1 & TextBox10.Text
Sheets("Cadastro").Select
Set intervalo = Range("AA:AB")

On Error GoTo trataErro

pesquisa = Application.WorksheetFunction.VLookup(codigo1, intervalo, 2, False)

TextBox11.Text = pesquisa
TextBox10.SetFocus

Exit Sub
trataErro:
   texto = "Produto não localizado!"
   mensagem = MsgBox(texto, vbOKOnly + vbInformation)
End Sub
 
Postado : 27/11/2017 1:56 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Wendel,

Boa tarde!

Seja muito bem vindo ao fórum.

Para aproveitar ao máximo o fórum e sempre manter o mesmo de forma organizada, sugiro ler os tópico da regras abaixo:
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

Solicitamos, nas próximas vezes que postar código VBA aqui no fórum, utilizar a ferramenta CODE que fica localizada logo no início da caixa de mensagens.

Quanto a sua dúvida, anexe, aqui mesmo no fórum, compactado com .ZIP, seu arquivo. Assim todos poderão rodar, depurar e ajudar de forma mais rápida.

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 : 27/11/2017 3:21 pm
(@wendel10)
Posts: 4
New Member
Topic starter
 

Muito obrigado Wagner, estarei atento nas próximas vezes.

Alguém consegue me ajudar nesse caso? Se precisar da planilha avisa que eu envio.

 
Postado : 28/11/2017 6:17 am
(@skulden)
Posts: 170
Estimable Member
 

você declarou o código1 como Long mas atribui um texto nele a partir do momento em que você concatena valor com texto.

 codigo1 = TextBox1 & TextBox10.Text 

Ou você muda para:

 codigo1 = TextBox1 & TextBox10.value 

ou você declara o código1 como Variant.

Abraços.

Se a resposta lhe foi útil, clique no joinha!

 
Postado : 28/11/2017 6:22 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A observação do skulden é válida, mas como você cita que o erro é por Estouro "Erro Tempo de Execução 6 Estouro" e não por "Erro Tempo de Execução 13 - Tipos Incompatíveis" acredito que o problema é por estar setando o intervalo de pesquisa na totalidade da coluna quando utiliza a instrução "Set intervalo = Range("AA:AB")", como não temos o modelo para uma analise mais precisa eu vou supor que o erro seja por este motivo, então segue uma sugestão, onde capturamos a ultima linha preenchida na coluna "AA (27)" e definimos o Range de pesquisa somente no intervalo com dados, faça o teste e veja se é isto, se não for, poste seu modelo compactado conforme orientou o Wagner.

Private Sub TextBox10_AfterUpdate()
    Dim intervalo As Range
    Dim texto As String
    Dim codigo1 As Long
    Dim pequisa
    Dim mensagem
    Dim UltimaLinha As Long
    
    codigo1 = TextBox1 & TextBox10.Text
    
    Sheets("Cadastro").Select
    
    'Capturamos a última linha com valor na coluna AA(coluna 27)
    UltimaLinha = Worksheets("Cadastro").Cells(Rows.Count, 27).End(xlUp).Row
    
    'Definimos o Intervalo de Pesquisa somente no intervalo com dados
    Set intervalo = Worksheets("Cadastro").Range("AA2:" & "AB" & UltimaLinha)
    
    On Error GoTo trataErro
    pesquisa = Application.WorksheetFunction.VLookup(codigo1, intervalo, 2, False)
    
    TextBox11.Text = pesquisa
    TextBox10.SetFocus
    
    Exit Sub
trataErro:
       texto = "Produto não localizado!"
       mensagem = MsgBox(texto, vbOKOnly + vbInformation)
End Sub

[]s

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

 
Postado : 28/11/2017 6:49 am
(@wendel10)
Posts: 4
New Member
Topic starter
 

Obrigado pelas respostas.

skulden eu já havia tentado essa alteração porém não funcionou.

Mauro Coutinho Eu colei seu código e também não funcionou.

Estou enviando a planilha para que vcs possam ver melhor.

 
Postado : 28/11/2017 6:56 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não entendi, você está concatendo os valores digitados nos textbox "TextBox1 & TextBox10", mas o que realmente é digitado ?
Se eu digitar no Textbox1 o mesmo se refere ao nº da conta : 1111001
Se eu digitar no Textbox10 o mesmo se refere ao nº da SubConta : 1111001
Então ficaria com a concatenação : 11110011111001, é isto ?
Só que esta SubConta não existe.

Forneça mais detalhes, a não ser que os colegas tenham entendido eu fiquei em dúvida.

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

 
Postado : 28/11/2017 8:16 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Com faço para chegar ao erro? Testei aqui e não cheguei a erro nenhum...

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 : 28/11/2017 8:21 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

E que no modelo disposto não consta a rotina que "dá erro".
O erro reportado, basicamente ocorre ao tentar atribuir a uma variável um valor maior do que o esperado/definido para essa variável.
Long aceita valores no intervalo de -2.147.483.648 a 2.147.483.647 (note que são 10 digitos).
Se o suposto pelo colega Mauro ocorrer, ou seja: --> ficaria com a concatenação : 11110011111001 (11.110.011.111.001) esse numero extrapola o valor definido.
Experimente definir sua variavel como Double --> Dim codigo1 As Double

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

 
Postado : 28/11/2017 8:40 am
(@wendel10)
Posts: 4
New Member
Topic starter
 

Mauro Coutinho Eu estou sim contatenando, porém seria as caixas de texto então eu tinha conta 1112015 e subconta 301, e ficaria 1112015301 e até um certo número da linha AA:AA ele funcionava quando a subconta possuia até 3 dígitos, mas passou a dar erro qndo a subconta possuía mais números, por isso o Wagner Morel não achou erro. Qndo fiz o que o Reinaldo falou deu certo.

Muito obrigado a todos o problema foi resolvido.

 
Postado : 28/11/2017 9:09 am