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