none
SALVAR EM DUAS PLANILHAS O MESMO ITEM RRS feed

  • Pergunta

  • OLA TUDO BEM.

    GOSTARIA DE UMA AJUDA POR FAVOR

    TENHO 1 PLANILHA COM 5 ABAS

    NA ABA 1(PLAN1) TENHO CADASTRO DE CLIENTES E NA ABA 3(PLAN2) TENHO FARMACIA POPULAR...

    QUANDO EU FAÇO UMA VENDA NA FARMACIA POPULAR LANÇO TODOS OS DADOS EM UMA PLAN6, MAIS GOSTARIA DE APENAS DUAS CAIXA DATA DA VENDA E PRÓXIMA CAIXA FOSSE LANÇADA E ALTERANDO LÁ NA (PLAN1) TAMBÉM TEXTBOX1(COLUNA 20) E PRÓXIMA VENDA NA TEXTBOX2 (COLUNA 21) NO CADASTRO DE CLIENTES...

    ESSE CÓDIGO É DA FARMACIA POPULAR E GOSTARIA DE LANÇAR EM OUTRA PLAN1

            VENDAS = txt_num_vendas
            codigo = txt_codigo
            clientes = txt_clientes
            
            Cells(Linha, 1) = txt_num_vendas 'COD do VENDAS
            Cells(Linha, 2) = txt_codigo 'CODIGO CLIENTES
            Cells(Linha, 3) = txt_clientes ' NOME do cliente
            
             '** Atribuindo valores as variáveis com os dados da listview
            txt_medicamentos = lst_cadprodutos.ListItems.Item(i)
            txt_qtda = lst_cadprodutos.ListItems.Item(i).SubItems(5)
            
            'Lançando os dados na planilha
            Cells(Linha, 4) = txt_medicamentos  'cod. produto
            Cells(Linha, 5) = lst_cadprodutos.ListItems.Item(i).SubItems(1) 'produto
                   
                 
            Cells(Linha, 6) = txt_medicos
            Cells(Linha, 7) = txt_data_receita
            Cells(Linha, 8) = txt_datacompra
            Cells(Linha, 9) = txt_proxima_compra
            Cells(Linha, 10) = txt_validade_receita

    coloquei um código mais dai ele não alterava, ele duplicava os clientes das vendas..

    obrigado


    quarta-feira, 15 de abril de 2015 00:49

Respostas

  • Coloca isso depois do laço.

      Dim sht As Worksheet
      Dim intCodCliente As Integer
      Set sht = ThisWorkbook.Sheets("Plan1")
      
      intCodCliente = 2
      
      Set c = sht.Range("A1:A100").Find(intCodCliente, lookat:=xlWhole)
      Linha = c.Row
      
      sht.Cells(Linha, 2) = txt_codigo 'CODIGO CLIENTES   ------PLAN6 COLUNA 1 (TEXT_CODIGO)
      sht.Cells(Linha, 3) = txt_clientes ' NOME do cliente   ------ PLAN6 COLUNA 2 (TEXT_CLIENTES)
      sht.Cells(Linha, 8) = txt_datacompra '    ----------------------PLAN6 COLUNA 20 (TXT_TEXTBOX1)
      sht.Cells(Linha, 9) = txt_proxima_compra '-------------------PLAN6 COLUNA 21 (TXT_TEXTBOX2)


    Natan

    quarta-feira, 15 de abril de 2015 18:50

Todas as Respostas

  • Você precisa determinar em qual guia você irá lançar os dados:

    DIm sht as worksheet
    set sht = thisworkbook.sheets("NomeDaSuaGuia")
    
    sht.Cells(Linha, 1) = txt_num_vendas 'COD do VENDAS
    sht.Cells(Linha, 2) = txt_codigo 'CODIGO CLIENTES
    sht.Cells(Linha, 3) = txt_clientes ' NOME do cliente
            
    '** Atribuindo valores as variáveis com os dados da listview
    txt_medicamentos = lst_cadprodutos.ListItems.Item(i)
    txt_qtda = lst_cadprodutos.ListItems.Item(i).SubItems(5)
            
    'Lançando os dados na planilha
    sht.Cells(Linha, 4) = txt_medicamentos  'cod. produto
    sht.Cells(Linha, 5) = lst_cadprodutos.ListItems.Item(i).SubItems(1) 'produto
                   
                 
    sht.Cells(Linha, 6) = txt_medicos
    sht.Cells(Linha, 7) = txt_data_receita
    sht.Cells(Linha, 8) = txt_datacompra
    sht.Cells(Linha, 9) = txt_proxima_compra
    sht.Cells(Linha, 10) = txt_validade_receita


    Natan

    quarta-feira, 15 de abril de 2015 11:37
  • olá Natan ...obrigado

    só que quando salvo na planilha farmácia popular esta tudo certo.. é esse codigo....

    Cells(Linha, 1) = txt_num_vendas 'COD do VENDAS
    Cells(Linha, 2) = txt_código 'CÓDIGO CLIENTES
    Cells(Linha, 3) = txt_clientes ' NOME do cliente
            
    '** Atribuindo valores as variáveis com os dados da listview     '   AQUI POSSO COLOCAR VARIOS PRODUTOS
    txt_medicamentos = lst_cadprodutos.ListItems.Item(i)
    txt_qtda = lst_cadprodutos.ListItems.Item(i).SubItems(5)

    Cells(Linha, 4) = txt_medicamentos  'cod. produto
    Cells(Linha, 5) = lst_cadprodutos.ListItems.Item(i).SubItems(1) 'produto             
    Cells(Linha, 6) = txt_medicos
    Cells(Linha, 7) = txt_data_receita
    Cells(Linha, 8) = txt_datacompra
    Cells(Linha, 9) = txt_proxima_compra
    Cells(Linha, 10) = txt_validade_receita

    até aqui tudo certo ok

    agora gostaria de pegar nesse mesmo userform (farmacia popular) e lançar esses dados lá na plan ( cadastro clientes), mais quando coloco esse codigo...

    DIm sht as worksheet
    set sht = thisworkbook.sheets("NomeDaSuaGuia")

    se eu vender 2 produtos para a mesma pessoa ele altera o codigo de baixa tb

    1 ABIGAIL SILVA DE SOUZA
    3 ADAO CAETANO AFONSO
    4 AFONSO TEIXEIRA
    4 AFONSO TEIXEIRA
    6 AFONSO PIRES DE ARVALHO

    dai o código 4 repetiu e tirou o codigo 5 ...

    deu certo lá na coluna 20/21 apareceu sim a data da compra e próxima data mais subscreveu o de baixo

    OBRIGADO POR ME AJUDAR

    quarta-feira, 15 de abril de 2015 16:40
  • Odair, 

    Como você está atribuindo o valor da variável linha?

    você está usando algum laço de repetição (for / do / while)?

    Poste aqui seu método Lançar pra vermos onde podemos ajudar.


    Natan

    quarta-feira, 15 de abril de 2015 16:59
  • OBRIGADO DE NOVO NATAN

    ESSES CÓDIGOS VÃO LANÇAR NA PLAN2 ("FARMACIA POPULAR") ESSES CÓDIGOS ESTÃO CERTO  OK...

    Private Sub btn_salvar_Click()

    '** teste para verificar preenchimento da condição da receita
        If txt_clientes = "" Then
            MsgBox "Insira o nome do clientes!", vbOKOnly + vbExclamation, Soft
            Exit Sub
        End If
        If Me.opt_4meses = False And _
            Me.opt_1ano = False Then
            MsgBox "Não há o preenchimento da tempo da validade da receita!", vbCritical, Soft
            Exit Sub
        End If

       
        Dim i        As Integer
        Dim xLin     As Long
        Dim xPro     As Integer
        Dim xCod     As String
        Dim xQTD     As Integer
        Dim Linha    As Long
       
        
        '*  Faz os testes para certificar que os campos estão preenchidos
        '** teste para verificar o preenchimento do cliente
        If Me.txt_num_vendas = 0 Then
            MsgBox "Não há CLIENTE CADASTRADO !", vbOKOnly + vbExclamation, Soft
            
            Me.txt_codigo.SetFocus
            Exit Sub
            
        End If
             
       
            '** Verifica se escolhido datas de vencimento
            If txt_validade_receita < Date Then
                MsgBox "Insira as datas de vencimentos para a receita 4 meses ou 1 ano!", vbCritical, Soft
                Me.txt_validade_receita.SetFocus
                Exit Sub
            End If
            
            
        Resp = MsgBox("Deseja realmente FECHAR este Pedido?", vbYesNo + vbDefaultButton1, Soft)
        If Resp = vbNo Then
            Resp = MsgBox("Deseja CANCELAR este Pedido?", vbYesNo + vbDefaultButton2, Soft)
            If Resp = vbYes Then
                MsgBox "Venda cancelada pelo usuário!", vbInformation, Soft
                Exit Sub
            End If
        End If
        
        
            
         '*** Laço para lançar todos os itens do pedido na planilha
    Plan2.Activate
        
        Linha = Range("A" & Rows.Count).End(xlUp).Row + 1
        For i = 1 To lst_cadprodutos.ListItems.Count
            On Error Resume Next
            '*  Dados da aba cliente * Declaração das variáveis
                        
            VENDAS = txt_num_vendas
            codigo = txt_codigo
            clientes = txt_clientes
            
            Cells(Linha, 1) = txt_num_vendas 'COD do VENDAS
            Cells(Linha, 2) = txt_codigo 'CODIGO CLIENTES
            Cells(Linha, 3) = txt_clientes ' NOME do cliente
            
             '** Atribuindo valores as variáveis com os dados da listview
            txt_medicamentos = lst_cadprodutos.ListItems.Item(i)
            txt_qtda = lst_cadprodutos.ListItems.Item(i).SubItems(5)
            
            'Lançando os dados na planilha
            Cells(Linha, 4) = txt_medicamentos  'cod. produto
            Cells(Linha, 5) = lst_cadprodutos.ListItems.Item(i).SubItems(1) 'produto
                   
                 
            Cells(Linha, 6) = txt_medicos
            Cells(Linha, 7) = txt_data_receita
            Cells(Linha, 8) = txt_datacompra
            Cells(Linha, 9) = txt_proxima_compra
            Cells(Linha, 10) = txt_validade_receita
           
                    
            Linha = Linha + 1
            VENDAS = VENDAS + 1
            
        Next i
            Do Until Sheets("FARMÁCIA POPULAR").Cells(Linha, 1) = ""
            If Sheets("FARMÁCIA POPULAR").Cells(Linha, 1) > VENDAS Then
            
            VENDAS = VENDAS + 1
            Linha = Linha + 1
                        
            End If
          Loop
           VENDAS = txt_num_vendas
                
           
    'Salva Plan e seleciona para geração de recibo de pedido
        AtiveWorkbook.Save
        
        Unload Me
        LANCAMENTO_FARMACIA_POPULAR.Show
     
    End Sub

           -------------------------------------------------------------------------------------------------------------------

    AGORA EU QUERIA LANÇAR ESSES CÓDIGOS TAMBÉM NA PLAN6 ("CADASTRO CLIENTES")

          -----ESSE COD VERIFICARIA LÁ NA PLAN6 ("CADASTRO CLIENTES") OS  MESMO COD  E ATUALIZARIA SOMENTE ESSE COD..

            Cells(Linha, 2) = txt_codigo 'CODIGO CLIENTES   ------PLAN6 COLUNA 1 (TEXT_CODIGO)
            Cells(Linha, 3) = txt_clientes ' NOME do cliente   ------ PLAN6 COLUNA 2 (TEXT_CLIENTES)

            Cells(Linha, 8) = txt_datacompra     ----------------------PLAN6 COLUNA 20 (TXT_TEXTBOX1)
            Cells(Linha, 9) = txt_proxima_compra -------------------PLAN6 COLUNA 21 (TXT_TEXTBOX2)

    SÓ QUE QUANDO FAÇO VENDA TENHO UMA LISTVIEW DE PRODUTOS 

       '** Atribuindo valores as variáveis com os dados da listview
            txt_medicamentos = lst_cadprodutos.ListItems.Item(i)
            txt_qtda = lst_cadprodutos.ListItems.Item(i).SubItems(5)

    SE EU VENDER MAIS DE UM (1) PRODUTO NÃO DA CERTOELE DOBRA O CLIENTES QUANTAS X EU TENHA VENDIDO OS PRODUTOS E SUBSCREVE NO DE BAIXO APAGANDO

    1 ABIGAIL SILVA DE SOUZA
    3 ADAO CAETANO AFONSO
    4 AFONSO TEIXEIRA
    4 AFONSO TEIXEIRA
    6 AFONSO PIRES DE ARVALHO

    OBRIGADO PELA ATENÇÃO DE NOVO

    quarta-feira, 15 de abril de 2015 17:52
  • Coloca isso depois do laço.

      Dim sht As Worksheet
      Dim intCodCliente As Integer
      Set sht = ThisWorkbook.Sheets("Plan1")
      
      intCodCliente = 2
      
      Set c = sht.Range("A1:A100").Find(intCodCliente, lookat:=xlWhole)
      Linha = c.Row
      
      sht.Cells(Linha, 2) = txt_codigo 'CODIGO CLIENTES   ------PLAN6 COLUNA 1 (TEXT_CODIGO)
      sht.Cells(Linha, 3) = txt_clientes ' NOME do cliente   ------ PLAN6 COLUNA 2 (TEXT_CLIENTES)
      sht.Cells(Linha, 8) = txt_datacompra '    ----------------------PLAN6 COLUNA 20 (TXT_TEXTBOX1)
      sht.Cells(Linha, 9) = txt_proxima_compra '-------------------PLAN6 COLUNA 21 (TXT_TEXTBOX2)


    Natan

    quarta-feira, 15 de abril de 2015 18:50
  • desculpa , mais ainda esta subscrevendo quando tem mais de um produto e as duas datas não estão entrando na coluna 20,21

    esses códigos estão dando certo, mais quando tem mais de um produto ele subscreve na linha de baixa ...mesmo colocando embaixo do loop...

    sht.Cells(Linha, 2) = txt_codigo 'CODIGO CLIENTES   ------PLAN6 COLUNA 1 (TEXT_CODIGO)
      sht.Cells(Linha, 3) = txt_clientes ' NOME do cliente   ------ PLAN6 COLUNA 2 (TEXT_CLIENTES)

    essas não estão entrando lá na plan6 ("cadastro clientes")

      sht.Cells(Linha, 8) = txt_datacompra '    ----------------------PLAN6 COLUNA 20 (TXT_TEXTBOX1)
      sht.Cells(Linha, 9) = txt_proxima_compra '-------------------PLAN6 COLUNA 21 (TXT_TEXTBOX2)

    OBS:  NESTA LISTVIEW POSSO COLOCAR VARIOS PRODUTOS, DAÍ QUANDO ELA LANÇA NA PLAN2 ("FARMACIA POPULAR") ELA COLOCA OS PRODUTOS EM LINHAS SE FOI 3 PRODUTOS VAI REPETIR 3 X O MESMO NOME...

    SERÁ POR ISSO QUE NÃO ESTÁ DANDO CERTO?

    '** Atribuindo valores as variáveis com os dados da listview
            txt_medicamentos = lst_cadprodutos.ListItems.Item(i)
            txt_qtda = lst_cadprodutos.ListItems.Item(i).SubItems(5)

    desculpa,Natan

    quinta-feira, 16 de abril de 2015 00:13
  • Não precisa pedir desculpa amigo.... estamos todos aqui pra aprender e ajudar aprendendo.

    Se puder, me manda sua planilha que dou uma olhada e vejo como ajudar.

    meu email: <removido>


    Natan


    • Editado 'Natan Silva quinta-feira, 16 de abril de 2015 02:11 remoção do meu email - o usuário já envio o arquivo
    quinta-feira, 16 de abril de 2015 00:24
  • OBRIGADO....GOSTEI MUITO DA SUA ATENÇÃO ...

    PROBLEMA RESOLVIDO....SE PRECISAR DE MIM TB PODE PEDIR ...

    ATÉ A PRÓXIMA...

    sexta-feira, 17 de abril de 2015 02:25