Notifications
Clear all

Codigo fazendo loop onde não deveria acontecer

6 Posts
3 Usuários
0 Reactions
1,068 Visualizações
(@edu_haag)
Posts: 12
Active Member
Topic starter
 

Olá pessoal, estou trabalhando em um sistema e estou com um probleminha.
Meu codigo está realizando um loop para o inicio do código, onde não deveria acontecer (ao menos não consegui encontrar motivo para acontecer).

' preenche formularios
Sub cadprodutos()
Dim x As Integer
Dim nome, ref, c As Variant
nome = Plan1.Cells(1, 2).Value
ref = cad_produtos.lb_cod_prod.Caption

Call conectadb ' abre arquivo excel com o banco de dados
'verifica numero da lina - Inicio
    Set c = Workbooks(nome).Sheets("Produtos").Range("A:A").Find(ref, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
            c.Activate 'Seleciona o range encontrado
            x = c.Row 'Endereço Range
        End If
  'verifica numero da linha - FIM


    cad_produtos.cb_tipo.Text = Workbooks(nome).Sheets("Produtos").Cells(x, 3).Value '----> quando chega aqui ta voltando para o inicio
    cad_produtos.tb_descricao.Text = Workbooks(nome).Sheets("Produtos").Cells(x, 2).Value
    cad_produtos.cb_unidade.Text = Workbooks(nome).Sheets("Produtos").Cells(x, 7).Value
    cad_produtos.cb_prazo.Text = Workbooks(nome).Sheets("Produtos").Cells(x, 4).Value
If Workbooks(nome).Sheets("Produtos").Cells(x, 8).Value = "S" Then
        cad_produtos.opt_sim.Value = True
    Else
        cad_produtos.Opt_nao.Value = True
    End If
    cad_produtos.tb_custo.Text = VBA.FormatNumber(Workbooks(nome).Sheets("Produtos").Cells(x, 5).Value, 2, vbTrue, vbFalse, vbFalse)
    cad_produtos.tb_venda.Text = VBA.FormatNumber(Workbooks(nome).Sheets("Produtos").Cells(x, 6).Value, 2, vbTrue, vbFalse, vbFalse)
    If cad_produtos.tb_custo.Text <> "" And cad_produtos.tb_venda.Text <> "" Then
        cad_produtos.lb_lucro.Caption = "R$ " & VBA.FormatNumber(cad_produtos.tb_venda.Text - cad_produtos.tb_custo.Text, 2, vbTrue, vbFalse, vbFalse)
        cad_produtos.lb_margem.Caption = VBA.FormatNumber((cad_produtos.lb_lucro.Caption / cad_produtos.tb_custo.Text) * 100, 2, vbTrue, vbFalse, vbFalse) & "%"
    Else
        cad_produtos.lb_lucro.Caption = "0,00"
        cad_produtos.lb_margem.Caption = "0%"
    End If
    cad_produtos.lb_estoque1.Caption = Workbooks(nome).Sheets("Produtos").Cells(x, 10).Value
    cad_produtos.lb_estoque2.Caption = Workbooks(nome).Sheets("Produtos").Cells(x, 10).Value
    cad_produtos.tb_estoqueminimo.Text = Workbooks(nome).Sheets("Produtos").Cells(x, 9).Value
Call desconectadb
    
    
End Sub

quando o codigo chega na 17ª linha, ele simplesmente volta para o inicio. Percebi na depuração que ao passar o mouse sobre os objetos (ex: cad_produtos.cb_tipo) aparece a seguinte msg "a variavel do objeto ou a variavel do bloco with não foi definida" mas não consigo entender o motivo pelo qual isso está acontecendo.
Alguem pode me ajudar?

 
Postado : 22/03/2016 4:29 pm
(@mprudencio)
Posts: 2749
Famed Member
 

O ideal seria disponibilizar o arquivo, com o codigo

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 22/03/2016 5:50 pm
(@edu_haag)
Posts: 12
Active Member
Topic starter
 

segue o projeto completo em anexo... problema está ao executar o formulario cad_produtos, que aciona um determinado modulo

 
Postado : 22/03/2016 6:07 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia edu_haag,

Cara... resumindo... Sinceramente falando, está uma bagunça.
Mas dá uma olhada.

Qualquer coisa da o grito.
Abraço

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

 
Postado : 23/03/2016 8:25 am
(@edu_haag)
Posts: 12
Active Member
Topic starter
 

Ola, Pois então eu estava achando que estava tudo tão organizando rsrsr.
Bom testei seu codigo, mas continua dando o erro.
Fiz umas alterações e percebi que o erro acontece após abrir o arquivo onde está p banco de dados.
Por exemplo ao executar o codigo, coloquei varios pontos de interrupções, antes de abrir o banco de dados, ao passar o mouse sobre algum objeto aparece "cad_produtos.tb_descricao.text="" "
Porém depois que o banco de dados é aberto, fazendo o mesmo procedimento aparece "a variavel do objeto ou a variavel do bloco with não foi definida" dai quando a execução do codigo chega esse ponto acontece o loop.

Porém não consigo identificar o motivo disso.

 
Postado : 25/03/2016 12:11 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Pelo que percebi existe alguma propriedade da combobox tipo invalida mas nao consegui identificar.

Minha sugestao

Copie os Codigos que estao relacionados a comboboxtipo e refaça

Apague a combobox e insira novamente os codigos

Pode ser que funcione.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 25/03/2016 4:27 pm