none
Mais uma dúvida RRS feed

  • Pergunta

  • Surgiu mais uma dúvida aqui... eu to querendo que cada vez que eu cadastre um novo produto no local de estoque atual eu tenha a fórmula que calcule a diferença entre entrada e consumo dos produtos... e não to conseguindo resolver esta situação...

    por exemplo:

    supondo que esta é a minha tabela:

                 A               B                  C                          D                   E              F

      1   |  código   | Descrição | Estoque atual | Data de Cadastro | Entrada | Consumo |

      2   |    01      | Luva        |    =(E2-F2)   |  12/04/2016       |     0      |        0      |    

                    assim que eu cadastrasse a formula "=(E2-F2)"  iria para a célula abaixo:

      3   |    01      | Luva        |    =(E3-F3)    |  12/04/2016      |     0      |        0      |

    eu utilizei este código abaixo para efetuar os cadastros, mas... no lugar de estoque atual queria que ele selecionasse a linha daquele produto indicado pelo código e fizesse o cálculo .

    Tem como me ajudar??

    Desde já sou imensamente grato!!!

    Private Sub botaocadastroprodutos_Click()
    
    totalproduto = Worksheets("informacoes").UsedRange.Rows.Count
    caixacodigocadastro.RowSource = "informacoes!a2:a" & totalproduto
    
    Worksheets("informacoes").Select
    
    totalregistro = Worksheets("informacoes").UsedRange.Rows.Count + 1
    
    Cells(totalregistro, 1) = caixacodigocadastro
    Cells(totalregistro, 2) = caixadescricaocadastro
    Cells(totalregistro, 3) = caixaestoqueatualcadastro1
    Cells(totalregistro, 4) = datacadastro1
    Cells(totalregistro, 5) = valorcadastro1
    Cells(totalregistro, 6) = fornecedorcadastro1
    Cells(totalregistro, 7) = previsaocadastro1
    Cells(totalregistro, 8) = caixagrupo
    
    MsgBox "Produto cadastrado com sucesso!"
    
    caixacodigocadastro = ""
    caixadescricaocadastro = ""
    caixaestoqueatualcadastro1 = ""
    datacadastro1 = ""
    valorcadastro1 = ""
    fornecedorcadastro1 = ""
    previsaocadastro1 = ""
    caixagrupo = ""
    caixacodigocadastro.SetFocus
    
    
    End Sub

    sábado, 25 de junho de 2016 22:40

Respostas

  • Experimente:

    Option Explicit
    
    Private Sub botaocadastroprodutos_Click()
        Dim totalproduto  As Long
        Dim totalregistro As Long
        Dim ws As Worksheet
        Dim EditRow As Variant
    
        Set ws = ThisWorkbook.Worksheets("informacoes")
    
        totalproduto = ws.UsedRange.Rows.Count
        caixacodigocadastro.RowSource = ws.Cells(2, "A").Resize(totalproduto - 2 + 1).Address(External:=True)
        
        EditRow = Application.Match(caixacodigocadastro, ws.Columns("A"), 0)
        If IsError(EditRow) Then
            'Registro não existe
            totalregistro = ws.UsedRange.Rows.Count + 1
        End If
        
        ws.Cells(totalregistro, 1) = caixacodigocadastro
        ws.Cells(totalregistro, 2) = caixadescricaocadastro
        ws.Cells(totalregistro, 3) = caixaestoqueatualcadastro1
        ws.Cells(totalregistro, 4) = datacadastro1
        ws.Cells(totalregistro, 5) = valorcadastro1
        ws.Cells(totalregistro, 6) = fornecedorcadastro1
        ws.Cells(totalregistro, 7) = previsaocadastro1
        ws.Cells(totalregistro, 8) = caixagrupo
        
        MsgBox "Produto cadastrado com sucesso!", vbInformation
        
        caixacodigocadastro = ""
        caixadescricaocadastro = ""
        caixaestoqueatualcadastro1 = ""
        datacadastro1 = ""
        valorcadastro1 = ""
        fornecedorcadastro1 = ""
        previsaocadastro1 = ""
        caixagrupo = ""
        caixacodigocadastro.SetFocus
    End Sub
    

    ---

    Sugiro declarar suas variáveis. Dessa forma, você irá adicionar consistência ao seu código: http://www.ambienteoffice.com.br/officevba/variaveis_e_constantes/#declaracao_de_variaveis

    ---

    Indente seu código. Seu código não está compilando. É essencial que seu código esteja indentado e compilando.

     

    Evite usar métodos Select e objetos como ActiveCell e ActiveSheet.


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    domingo, 26 de junho de 2016 14:31
    Moderador