Ir para conteúdo
Fórum Script Brasil
  • 0

ENVIAR VALORES DO LISTBOX PARA SOMAR COM VALORES DA PLANILHA


Michelle Alves

Pergunta

Olá Pessoal, novamente preciso do auxílio do fórum.

Estou transferindo os valores de um Listbox para a planilha, utilizando o seguinte código:

Private Sub AdButton6_Click()

For i = 0 To ListBox1.ListCount - 1

ActiveWorkbook.Sheets("VDA").Activate

Range("B5").Select

Do

If IsEmpty(ActiveCell) = False Then

ActiveCell.Offset(1, 0).Select

End If

Loop Until IsEmpty(ActiveCell) = True

ActiveCell.Value = ListBox1.List(i)

ActiveCell.Offset(0, 1).Value = ListBox1.List(i, 1)

ActiveCell.Offset(0, 2).Value = ListBox1.List(i, 2)

ActiveCell.Offset(0, 3).Value = TextBox3.Text

ActiveCell.Offset(0, 4).Value = Label7

ActiveCell.Offset(0, 5).Value = TextBox4.Text

ActiveCell.Offset(0, 6).Value = Label10

ActiveCell.Offset(0, 7).Value = ListBox1.List(i, 4)

Next i

Gridlines = True

ListBox1.Clear

End Sub

Porém, além disso, não sei se tem como fazer isso, mas gostaria que os itens que estou transferindo do Listbox para a planilha procurassem o seus respectivos numa tabela que tenho, e somassem os itens nela. Por exemplo:

No Listbox tem:

código Produto Quant

200 MOUSE 2

Ao finalizar ele procura o 200 nessa tabela e soma com o valor que lá já está, suponhamos tem 5 e ele soma com mais 2 que foram vendidos.

Editado por Michelle Alves
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Ficou confuso mesmo, Kuroi... desculpa. Vou tentar explicar melhor:

Estou transferindo os dados daquele List que você me ajudou a fazer a pesquisa para uma planilha, onde lá é armazenado tudo o que foi vendido.

Vou ilustrar para ficar mais claro. No Listbox tenhos os seguintes itens:

Codigo Produto Valor

200 MOUSE R$ 19

800 MP3 R$ 30

1050 MP5 R$ 110

Esses itens são transferidos para uma planilha de armazenamento. Mas além dela, gostaria de transferir os dados para uma outra planilha, que serve como uma tabela.

Na tabela a estrutura é dessa forma:

Produto Codigo Valor Saidas Entradas

Mouse 200 R$ 19 12 50

MP3 800 R$ 30 15 35

MP5 1050 R$ 110 8 20

Nessa transferência, gostaria que fosse procurado cada item do LISTBOX na tabela e que apenas somasse a quantidade do LISTBOX com a quantidade existente na SAÍDAS.

Existe a possibilidade de fazer isso ?

Editado por Michelle Alves
Link para o comentário
Compartilhar em outros sites

  • 0

hum, explica essas partes sublinhadas ó:

Nessa transferência, gostaria que fosse procurado cada item do LISTBOX na tabela e que apenas somasse a quantidade do LISTBOX com a quantidade existente na SAÍDAS.

qual tabela é essa?? é essa segunda planilha q você quer fazer?? mas como vai ser procurado se ela ainda ta sendo feita??

ou é a primera planilha?? porque tem q procurar se os dados tão vindo do listbox??

ou essa tabela q você fala é aquela lista com todos os produtos??

Nessa transferência, gostaria que fosse procurado cada item do LISTBOX na tabela e que apenas somasse a quantidade do LISTBOX com a quantidade existente na SAÍDAS.

de onde vem essa "quantidade existente na SAÍDAS"??

Link para o comentário
Compartilhar em outros sites

  • 0

Então, é assim:

Lembra daquela tela de vendas, né ? Ao final, eu finalizo, ai vou armazenar os dados de toda movimentação de vendas, ok ?

Além disso, eu tenho uma tabela no excel mesmo com os itens cadastrados, mais ou menos como no exemplo abaixo:

Produto Codigo Valor Saidas Entradas

Mouse 200 R$ 19 12 50

MP3 800 R$ 30 15 35

MP5 1050 R$ 110 8 20

O que eu queria era que ao finalizar aquela tela de vendas, os itens além de ser armazenados na planilha de movimentação, FOSSEM PARA ESSA TABELA TAMBÉM. MAS LÁ, ELES IAM PROCURAR O VALOR RESPECTIVO DELES NA TABELA E SOMASSEM COM AS SAÍDAS JÁ EXISTENTES.

Ou seja, suponhámos que vendi 5 MOUSES, o código procuraria o MOUSE na tabela e acrescentaria esses 5 na coluna SAÌDAS na Tabela, totalizando 17.

EDITADO:

A quantidade que vai existir na SAÍDA é a soma de tudo que foi vendido.

Editado por Michelle Alves
Link para o comentário
Compartilhar em outros sites

  • 0

michelle, se eu entendi, é so você fazer um codigo parecido com aquele do find q te passei no tópico do corresp.

so q em vez de alterar no formulario, você altera na planilha. mais o menos isso:

Set r = Sheets("[0]").Range("[1]").Find(What:=Val([2]), After:=Sheets("[0]").Range("[3]"), LookIn:=xlValues, LookAt _
        :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)

    If Not r Is Nothing Then
        Sheets("[0]").Range("[4]" & r.Row) = Sheets("[0]").Range("[4]" & r.Row) + [5]
    End If[/code]

onde você deve substituir o seguinte:

[0] = nome da planilha onde tão os dados q você quer somar

[1] = range q corresponde à coluna toda onde tão os codigos.

[2] = o codigo q ta vindo do listbox

[3] = a primera celula do range q você pos em [1]. exemplo, se você pos "C2:C50" em [1], ponha "C2" em [3]

[4] = coluna onde estao os valores das saidas (exemplo, se for na coluna E, ponha somente "E")

[5] = valor q você quer somar (q se eu entendi vem do listbox)

veja ai se não é isso, qualquer coisa poste.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi,

Então, tentar eu tentei e muito... mas minha inexperiência me complica.Devo ter feito alguma declaração errada, pois deu erro de incompatibilidade.

Vou postar todo o código para que você possa verificar, e se possível me ajudar em mais essa. Acho que você entendeu exatamente o que necessito, mas minha dúvida foi como declarar o Listbox, pois irá transferir quantas linhas existirem, precisaria declarar alguma variável ?

Private Sub AdButton6_Click()

' Macro gravada em 1/3/2009 por Michelle

If ComboBox1 = "" Then

MsgBox ("Informe o Cliente")

Exit Sub

End If

If TextBox4 = "" Then

MsgBox ("Informe o Vendedor")

Exit Sub

End If

If MsgBox("Você tem certeza que deseja finalizar o pedido" & "?", vbYesNo + vbQuestion, "Finalizar Pedido") = vbNo Then

Exit Sub

End If

Application.ScreenUpdating = False

'TRANSFERE VALORES DO FORM1 PARA A PLAN VDA

For i = 0 To ListBox1.ListCount - 1

ActiveWorkbook.Sheets("VDA").Activate

Range("B5").Select

Do

If IsEmpty(ActiveCell) = False Then

ActiveCell.Offset(1, 0).Select

End If

Loop Until IsEmpty(ActiveCell) = True

ActiveCell.Value = ListBox1.List(i)

ActiveCell.Offset(0, 1).Value = ListBox1.List(i, 1)

ActiveCell.Offset(0, 2).Value = ListBox1.List(i, 2)

ActiveCell.Offset(0, 3).Value = TextBox3.Text

ActiveCell.Offset(0, 4).Value = Label7

ActiveCell.Offset(0, 5).Value = ComboBox2.Text

ActiveCell.Offset(0, 6).Value = Label10

ActiveCell.Offset(0, 7).Value = ListBox1.List(i, 4)

Next i

Gridlines = True

' TRANSFERE DADOS DO FORM1 PARA A PLAN BDCQE

Set r = Sheets("[bDCQE]").Range("[C2:C500]").Find(What:=Val([Listbox.Listindex, (0, 1)]), After:=Sheets("[bDCQE]").Range("[C2]"), LookIn:=xlValues, LookAt _

:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _

False, SearchFormat:=False)

If Not r Is Nothing Then

Sheets("[bDCQE]").Range("[E]" & r.Row) = Sheets("[bDCQE]").Range("[E]" & r.Row) + [Listbox.Listindex, (0, 2)]

End If

'COPIA VALOR TOTAL DO FORM1 PARA O FORM3

Dim dados As DataObject 'variável que vai receber os dados a serem copiados

Set dados = New DataObject

dados.SetText TextBox10.Text 'pegando o texto do text box

dados.PutInClipboard 'colocando na área de transferência

UserForm3.TextBox6.Paste

ListBox1.Clear

Plan1.Select

Application.ScreenUpdating = True

UserForm3.Show

End Sub

Obrigada.

Editado por Michelle Alves
Link para o comentário
Compartilhar em outros sites

  • 0

é so por dentro dum for.

e tb é pra apagar os [], só pus pra identificar:

For i = 0 To ListBox1.ListCount - 1
    Set r = Sheets("BDCQE").Range("C2:C500").Find(What:=Val(Listbox1.List(i, 1)), After:=Sheets("BDCQE").Range("C2"), LookIn:=xlValues, LookAt _
        :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)

    If Not r Is Nothing Then
        Sheets("BDCQE").Range("E" & r.Row) = Sheets("BDCQE").Range("E" & r.Row) + Listbox1.List(i, 2)
    End If
Next[/code]

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa Kuroi,

Esse mês vou ter que dividir meu salário com você, viu.....

Olha só, rodou perfeitamente. Mas não somou os valores que lançei no LIst com os que já haviam na planilha BDCQE. Conferi as referências, para ver se alguma tava errada, mas não. Tá tudo certo.

Editado por Michelle Alves
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...