Cadastro de Orçamentos/Pedido de Venda Excel e VBA – Orçamento/Pedido de Venda Excel

35
Cadastro de Orçamentos/Pedido de Venda Excel e VBA - Orçamento/Pedido de Venda Excel

Objetivo: Disponibilizar uma planilha para o cadastro de orçamento que realiza a gravação dos dados e permite a pesquisa de orçamentos anteriores.

Sub lsSalvar()
    lsCabecalho
    lsItens
End Sub
 
Sub lsCabecalho()
 
    Dim lUltimaLinhaAtiva As Long
    Dim lMax As Long
    Dim lLinhaAtual As Long
 
    lUltimaLinhaAtiva = Worksheets("Cab_Orcamento").Cells(Worksheets("Cab_Orcamento").Rows.Count, 1).End(xlUp).Row
 
    lLinhaAtual = lUltimaLinhaAtiva + 1
 
    If IsNumeric(Worksheets("Cab_Orcamento").Cells(lUltimaLinhaAtiva, 1).Value) Then
        lMax = Worksheets("Cab_Orcamento").Cells(lUltimaLinhaAtiva, 1).Value + 1
    Else
        lMax = 1
    End If
 
    Sheets("Cab_Orcamento").Cells(lLinhaAtual, 1).Value = lMax
    Sheets("Cab_Orcamento").Cells(lLinhaAtual, 2).Value = Sheets("Orcamento").Range("G3").Value
    Sheets("Cab_Orcamento").Cells(lLinhaAtual, 3).Value = Sheets("Orcamento").Range("C8").Value
    Sheets("Cab_Orcamento").Cells(lLinhaAtual, 4).Value = Sheets("Orcamento").Range("D8").Value
    Sheets("Cab_Orcamento").Cells(lLinhaAtual, 5).Value = Sheets("Orcamento").Range("G6").Value
    Sheets("Cab_Orcamento").Cells(lLinhaAtual, 6).Value = Sheets("Orcamento").Range("G7").Value
    Sheets("Cab_Orcamento").Cells(lLinhaAtual, 7).Value = Sheets("Orcamento").Range("G8").Value
    Sheets("Cab_Orcamento").Cells(lLinhaAtual, 8).Value = Sheets("Orcamento").Range("G9").Value
    Sheets("Orcamento").Range("G2").Value = lMax
 
End Sub
Sub lsItens()
 
    Dim lUltimaLinhaAtiva As Long
    Dim lMax As Long
    Dim lLinhaAtual As Long
    Dim i As Integer
    Dim lItens As Integer
 
    lUltimaLinhaAtiva = Worksheets("Ite_Orcamento").Cells(Worksheets("Ite_Orcamento").Rows.Count, 1).End(xlUp).Row
    lLinhaAtual = lUltimaLinhaAtiva + 1
    Worksheets("Orcamento").Range("K18").FormulaR1C1 = "=MAX(R[-6]C[-9]:R[9]C[-9])"
    lItens = Range("K18").Value
    Worksheets("Orcamento").Range("K18").Clear
 
    lLinhaAtual = lLinhaAtual - 1
 
    For i = 1 To lItens
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 1).Value = Sheets("Orcamento").Range("G2").Value
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 2).Value = Sheets("Orcamento").Cells(11 + i, 2).Value
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 4).Value = Sheets("Orcamento").Cells(11 + i, 3).Value
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 5).Value = Sheets("Orcamento").Cells(11 + i, 4).Value
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 6).Value = Sheets("Orcamento").Cells(11 + i, 5).Value
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 7).Value = Sheets("Orcamento").Cells(11 + i, 6).Value
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 8).Value = Sheets("Orcamento").Cells(11 + i, 7).Value
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 9).Value = Sheets("Orcamento").Cells(11 + i, 8).Value
        Worksheets("Ite_Orcamento").Cells(lLinhaAtual + i, 10).Value = Sheets("Orcamento").Cells(11 + i, 9).Value
    Next i
 
End Sub
 
Sub lsLimpar()
    Worksheets("Orcamento").Select
    Range("G2").ClearContents
    Range("G3").ClearContents
    Range("G6:I6").ClearContents
    Range("G7:I7").ClearContents
    Range("G8:I8").ClearContents
    Range("G9:I9").ClearContents
    Range("C8").ClearContents
    Range("C12:C27").ClearContents
    Range("E12:E27").ClearContents
    Range("H12:H27").ClearContents
    Range("C8").Select
End Sub

GUT PPTAbraço

Marcos Rieper

 

35 COMENTÁRIOS

  1. bom dia!
    muito legal sua planilha. vou aprender bastante com ela.
    e aproveitando gostaria de saber se tem algo do tipo, pesquisa com cliente, onde eu busque a empresa numa celula, e ja busque informacoes sobre a empresa, mais ou menos o principio q usou na sua aqui, e dai a gente vai fazendo a pesquisa usando campos de formulario com alternativas, ou multipla escolha. se possivel, que uma vez gravada a pesquisa, eu consiga consulta-la, e tambem adicionar pesquisas posteriores, adicionando-as a mesma empresa.
    nao sei se me expressei bem, qq coisa me mande email.
    obrigada!

  2. Legal sua planilha Marcos, já estou utilizando ela como base de conheciimento para fazer uma planilha de controle de entrada e saida de estoque. Mas estou precisando de uma ajudinha ainda. Gostaria de saber como faço uma macro tipo a que vc fez de Itens e Cabeçalho, mas não seria dividindo assim como a sua, os dados do pedido de saida ou entrada iriam todos para uma planilha de entrada e saida respectivamente. Se poder me dar uma ajudinha, pois não estou conseguindo concatenar sua ideia. Agradeço sua atenção. Abraço

  3. Você é craque em Excel. Parabéns! Porém, encontrei um erro quando se cadastra o orçamento. Na somatória do desconto, só calcula o desconto do primeiro item, os demais não estão sendo somados, o mesmo ocorre na consulta do orçamento.

  4. Boa tarde Marcos… parabéns pela iniciativa de compartilhar sua criação com tanta gente, muita generosidade…
    Amei sua planilha… Quero muito colocá-la aqui no atelier, pois posso fazer o orçamento… e imprimir na hora…para os meus clientes…e ter o arquivo salvo para quando ele voltar e fechar o contrato.
    Porem como boa chef de cozinha não entendo nada de excel… vc teria um passo a passo? Para desta forma eu dar continuidade? e uma coisa… muito importante ela esta calculando desconto apenas no primeiro item, imagino que as maiorias das pessoas sabem corrigir… mas eu nã sei… ficarei muito grata se poder me ajudar… pois até agora a melhor planilha que achei é a sua… ficarei muito agradecida…
    att
    Maria

  5. Obrigada pela planilha, realmente é um excelente começo, adaptei para meu uso na empresa e ficou show, no entanto algumas coisas não consegui mudar pois não tenho conhecimento para isso. Seria possível contratar seus serviços? Agradeço desde já.

  6. Ola não consigo inserir mais linhas e arrastar formulas.
    Quando insiro mais linhas na pequisa de orçmento e itens do orçamento não vai automatico, como faço para que isso ocorra corretamente?

    Adriana

  7. Parabens! muito util. Gostaria de saber como editar os itens lançados ? Exemplo 1: O cliente orça 20 itens e compra somente 20. Exemplo 2: O cliente leva 5 itens consignados e devolve 3 e paga 2.

  8. Olá Marcos, Tudo bem?

    Gostaria muito que você me explicasse passo-a-passo esta parte do código, da planilha de “Cadastro de Orçamentos/Pedido de Venda Excel e VBA – Orçamento/Pedido de Venda”. Ela é muito interessante, porém, quando fui tentar salvar dados de um pedido uma planilha que eu estava desenvolvendo, algo não deu certo, pois eu não compreendi a parte do código abaixo.

    Podes me dar uma força?

    Obrigado!

    Sub lsItens()

    Dim lUltimaLinhaAtiva As Long
    Dim lMax As Long
    Dim lLinhaAtual As Long
    Dim i As Integer
    Dim lItens As Integer

    lUltimaLinhaAtiva = Worksheets(“Ite_Orcamento”).Cells(Worksheets(“Ite_Orcamento”).Rows.Count, 1).End(xlUp).Row
    lLinhaAtual = lUltimaLinhaAtiva + 1
    Worksheets(“Orcamento”).Range(“K18”).FormulaR1C1 = “=MAX(R[-6]C[-9]:R[9]C[-9])”
    lItens = Range(“K18”).Value
    Worksheets(“Orcamento”).Range(“K18”).Clear

    lLinhaAtual = lLinhaAtual – 1

    For i = 1 To lItens
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 1).Value = Sheets(“Orcamento”).Range(“G2”).Value
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 2).Value = Sheets(“Orcamento”).Cells(11 + i, 2).Value
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 4).Value = Sheets(“Orcamento”).Cells(11 + i, 3).Value
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 5).Value = Sheets(“Orcamento”).Cells(11 + i, 4).Value
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 6).Value = Sheets(“Orcamento”).Cells(11 + i, 5).Value
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 7).Value = Sheets(“Orcamento”).Cells(11 + i, 6).Value
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 8).Value = Sheets(“Orcamento”).Cells(11 + i, 7).Value
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 9).Value = Sheets(“Orcamento”).Cells(11 + i, 8).Value
    Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 10).Value = Sheets(“Orcamento”).Cells(11 + i, 9).Value
    Next i

    End Sub

  9. Olá Marcos!

    Me ajude!

    Não entendi esta parte do código, da Planilha: CADASTRO DE ORÇAMENTO E PEDIDOS”, cujo salva o orçamento em uma base de dados. Preciso muito compreender. Me ajude! :)

    Worksheets(“Orcamento”).Range(“K18”).FormulaR1C1 = “=MAX(R[-6]C[-9]:R[9]C[-9])”
    lItens = Range(“K18”).Value
    Worksheets(“Orcamento”).Range(“K18”).Clear

    • Boa noite Wilson,

      Esta parte faz a gravação dos itens, segue comentado:

      Sub lsItens()

      Dim lUltimaLinhaAtiva As Long
      Dim lMax As Long
      Dim lLinhaAtual As Long
      Dim i As Integer
      Dim lItens As Integer

      ‘Identifica última linha ativa na planilha de itens do orçamento
      lUltimaLinhaAtiva = Worksheets(“Ite_Orcamento”).Cells(Worksheets(“Ite_Orcamento”).Rows.Count, 1).End(xlUp).Row
      ‘Define aonde serão inclusos os dados
      lLinhaAtual = lUltimaLinhaAtiva + 1

      ‘Conta a quantidade de itens que há na planilha de orçamentos
      Worksheets(“Orcamento”).Range(“K18”).FormulaR1C1 = “=MAX(R[-6]C[-9]:R[9]C[-9])”
      lItens = Range(“K18”).Value
      Worksheets(“Orcamento”).Range(“K18”).Clear

      lLinhaAtual = lLinhaAtual – 1

      ‘Insere item a item na planilha Ite_Orcamento
      For i = 1 To lItens
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 1).Value = Sheets(“Orcamento”).Range(“G2”).Value
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 2).Value = Sheets(“Orcamento”).Cells(11 + i, 2).Value
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 4).Value = Sheets(“Orcamento”).Cells(11 + i, 3).Value
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 5).Value = Sheets(“Orcamento”).Cells(11 + i, 4).Value
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 6).Value = Sheets(“Orcamento”).Cells(11 + i, 5).Value
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 7).Value = Sheets(“Orcamento”).Cells(11 + i, 6).Value
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 8).Value = Sheets(“Orcamento”).Cells(11 + i, 7).Value
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 9).Value = Sheets(“Orcamento”).Cells(11 + i, 8).Value
      Worksheets(“Ite_Orcamento”).Cells(lLinhaAtual + i, 10).Value = Sheets(“Orcamento”).Cells(11 + i, 9).Value
      Next i

      End Sub

      Abraço

      Marcos Rieper

Faça umcomentário