MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Não consigo somar mais de uma coluna na Listbox

    Compartilhe

    mvalias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 31/07/2014

    Não consigo somar mais de uma coluna na Listbox

    Mensagem  mvalias em Sab 10 Jan 2015, 02:19

    Não estou conseguindo somar as próximas colunas do Listbox, somente a primeira da certo as outras aparece a mensagem de erro na linha da função " valor = lst_buscab.List(Item, 0) * 1"
    alguém pode me ajudar?
    Segue o cógido da primeira para somar a primeira e a segunda coluna:

    Dim lItem As Double
    Dim valor As Integer
    somadelotesnaodivergente = 0
    For lItem = 0 To lst_buscab.ListCount - 1
    valor = lst_buscab.List(Item, 0) * 1
    somadelotesnaodivergente = (somadelotesnaodivergente) + (valor)
    Next



    somadeloteatequinzeporcentodivergente = 0
    For lItem = 0 To lst_buscab.ListCount - 1
    valor = lst_buscab.List(Item, 1) * 1
    somadeloteatequinzeporcentodivergente = (somadeloteatequinzeporcentodivergente) + (valor)
    Next

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2519
    Registrado : 29/06/2012

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  Noobezinho em Sab 10 Jan 2015, 15:36

    Olá Moises

    Experimente assim:

    Copie e cole essa função na folha vba do formulário:


    Private Function SomaColListbox(xcol As Integer) As Double


       Dim varTotal As Double
       Dim varRow As Integer
       
       For varRow = 1 To (Lista2.ListCount - 1)
       varTotal = varTotal + Lista2.Column(xcol, varRow)
       Next
       SomaColListbox = varTotal


    End Function

    Substitua o nome para o nome da tua listbox

    Depois é chamar a função no evento Ao abrir do formulário:

    Me.tot1 = SomaColListbox(1) soma a 2ª coluna da listbox
    Me.tot2 = SomaColListbox(3) soma a 4ª coluna da listbox

    Formate as caixas de texto de acordo com o tipo de valor (moeda, número, etc)

    [ ]'s

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    mvalias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 31/07/2014

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  mvalias em Sab 10 Jan 2015, 21:31

    Olá Noobezinho.

    Obrigado pela ajuda. Somente não entendi o que devo colocar no lugar do texto "xcol".
    A função ficou assim:

    Private Function SomaColListbox(xcol As Integer) As Double

    Dim varTotal As Double
    Dim varRow As Integer

    For varRow = 1 To (lst_buscab.ListCount - 1)
    varTotal = varTotal + lst_buscab.column(xcol, varRow)
    Next
    somadelotesnaodivergente = varTotal

    End Function

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2519
    Registrado : 29/06/2012

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  Noobezinho em Sab 10 Jan 2015, 23:30

    xcol = número da coluna, lembrando que as colunas são ordenadas a partir de 0.

    Uma listbox com 4 colunas tem os números de colunas: 0,1,2 e 3

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    mvalias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 31/07/2014

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  mvalias em Dom 11 Jan 2015, 01:55

    Noobezinho, infelizmente ainda não funcionou, quando coloco o número da coluna a linha fica vermelha indicando que era esperado identificador. Veja como ficou.

    Private Function SomaColListbox(1col As Integer) As Double
    Dim varTotal As Double
    Dim varRow As Integer
    For varRow = 1 To (lst_buscab.ListCount - 1)
    varTotal = varTotal + lst_buscab.Column(1, varRow)
    Next
    SomaColListbox = varTotal
    End Function

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2519
    Registrado : 29/06/2012

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  Noobezinho em Dom 11 Jan 2015, 02:08

    Está colocando o número da coluna no lugar errado.

    Private Function SomaColListbox(1col As Integer) As Double

    xcol é uma variável
    Na função só deve colocar o nome da tua listbox.

    Veja com atenção a minha primeira mensagem onde diz:

    Depois é chamar a função no evento Ao abrir do formulário:

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    mvalias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 31/07/2014

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  mvalias em Dom 11 Jan 2015, 04:54

    Noob, substitui somente o nome da listbox mas continua aparecendo erro. Estou enviando uma figura anexa.

      Private Function SomaColListbox(xcol As Integer) As Double

    Dim varTotal As Double
      Dim varRow As Integer
      For varRow = 1 To (lst_buscab.ListCount - 1)
      xcol = Column
      varTotal = varTotal + lst_buscab.Column(xcol, varRow)
      Next
      SomaColListbox = varTotal

    End Function
    Anexos
    Erro da Listbox.jpeg
    Você não tem permissão para fazer download dos arquivos anexados.
    (22 Kb) Baixado 5 vez(es)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2519
    Registrado : 29/06/2012

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  Noobezinho em Dom 11 Jan 2015, 10:58

    Dim varTotal As Double
     Dim varRow As Integer
     For varRow = 1 To (lst_buscab.ListCount - 1)
    xcol = Column  'Essa linha não existe
     varTotal = varTotal + lst_buscab.Column(xcol, varRow)
     Next
     SomaColListbox = varTotal

    End Function

    Vou puxar tua orelha, sinto, mas estou observando que está simplesmente copiando e colando o código sem analisar e entender
    o que o código está fazendo em cada linha.
    A exemplo disso é a linha em vermelho, que você colocou a teu critério:
    xcol = Column

    O que o Access está fazendo com essa linha?
    E porque ela não deve figurar no código?

    Esse algoritmo e bem simples, se não procurar entender o que ele faz,
    ficará muito mais difícil entender um código mais complexo.

    Mesmo não sabendo como fez a chamada para a função, acredito
    que tirando essa linha, vai funcionar.

    Caso ainda não funcione:

    Descreva na ordem, quantas colunas tem tua listbox e o tipo de cada uma

    Copie e cole a chamada para a função que deve estar no evento ao Abrir do formulário

    Aguardo...


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    mvalias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 31/07/2014

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  mvalias em Dom 11 Jan 2015, 15:59

    Obrigado pro tentar ajudar, mas fiz tudo e ainda ainda contiuna com erro aprarecendo o fundo amarelo no mesmo lugar. Abaixo está a primeira função e a segunda que função para a chamada.

    Private Function SomaColListbox(xcol As Integer) As Double

    Dim varTotal As Double
    Dim varRow As Integer
    For varRow = 1 To (lst_buscab.ListCount - 1)
    varTotal = varTotal + lst_buscab.Column(xcol, varRow)
    Next
    SomaColListbox = varTotal

    End Function


    Private Sub TextBox3_Change()

    ' Condição... se não for selecionado as datas para pesquisa não vai executar o código
    If Me.ComboBox1 = "" Or Me.ComboBox2 = "" Then

    MsgBox ("Favor preencher a data inicial e final para a pesquisa")
    Me.ComboBox1.SetFocus
    Exit Sub

    'se estiverem preenchidas as datas a pesquisa será feita
    Else

    valor_pesq = TextBox3.Text

    Dim guia As Worksheet
    Dim linha As Integer
    Dim coluna As Integer
    Dim coluna_data As Integer
    Dim linhalistbox As Integer
    Dim valor_celula As String
    Dim valor_celula_data As Date
    Dim conta_registros As Integer

    Dim data_inicio As Date
    Dim data_fim As Date

    Set guia = ThisWorkbook.Worksheets(1)

    data_inicio = Me.ComboBox1
    data_fim = Me.ComboBox2
    linhalistbox = 0
    conta_registros = 0
    linha = 2
    coluna = 4
    coluna_data = 2

    lst_buscab.Clear

    Sheets("Plan1").Select

    With guia
    While .Cells(linha, coluna).Value <> Empty
    valor_celula = .Cells(linha, coluna).Value 'recebe o valor da célula para fazer o teste
    valor_celula_data = .Cells(linha, coluna_data).Value 'recebe o valor da data para fazer o teste

    'Condição para satisfazer a busca tem que ser igual ao valor da texbox1 e estar entre o valor inicial e final das datas
    If UCase(Left(valor_celula, Len(valor_pesq))) = UCase(valor_pesq) _
    And valor_celula_data >= data_inicio _
    And valor_celula_data <= data_fim Then
    'adiciona itens a listbox
    With lst_buscab
    .AddItem
    .List(linhalistbox, 1) = Sheets("Plan1").Cells(linha, 24) 'lotes de > que 10& até 15% divergência
    .List(linhalistbox, 2) = Sheets("Plan1").Cells(linha, 25) 'lotes de > 15% divergência

    linhalistbox = linhalistbox + 1
    End With

    conta_registros = conta_registros + 1

    End If
    linha = linha + 1
    Wend
    End With

    Me.lbl_registros = "Entre " & data_inicio & " e " & data_fim & " foram encontrados " & conta_registros & " registros."

    End If

    Me.somadeloteatequinzeporcentodivergente = SomaColListbox(1) 'soma a 2ª coluna da listbox
    Me.somadelotemaiorquequinze = SomaColListbox(2) 'soma a 3ª coluna da listbox

    End Sub

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2519
    Registrado : 29/06/2012

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  Noobezinho em Dom 11 Jan 2015, 17:36

    Moisés

    Vejo que está preenchendo a listbox com dados de uma planilha.

    Seria possível, separar a planilha e o formulário em questão para eu poder fazer testes?

    Acho muito melhor do que ficarmos na tentativa e erro,não acha?

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    mvalias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 31/07/2014

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  mvalias em Dom 11 Jan 2015, 21:02

    Noobezinho, finalmente funcionou!! Muito obrigado pela ajuda. Deus lhe abençoe.
    Quando tu disse que os dados da listbos estão vindo de uma planilha me abriu os olhos, o problema que a formula cita que "For Item = 0 To lst_buscab.ListCount - 1" e na planilha em alguns casos quando não tinha valor ficava em branco em vez do número "0". Creio que foi isto que não dava certo. Veja como ficou. Mais uma vez obrigado!

    Dim Item As Double
    Dim valor As Double


    somadelotesnaodivergente = 0
    For Item = 0 To lst_buscab.ListCount - 1
    valor = lst_buscab.List(Item, 0) * 1
    somadelotesnaodivergente = (somadelotesnaodivergente) + (valor)
    Next

    somadeloteatequinzeporcentodivergente = 0
    For Item = 0 To lst_buscab.ListCount - 1
    valor = lst_buscab.List(Item, 1) * 1
    somadeloteatequinzeporcentodivergente = (somadeloteatequinzeporcentodivergente) + (valor)
    Next


    somadelotemaiorquequinze = 0
    For Item = 0 To lst_buscab.ListCount - 1
    valor = lst_buscab.List(Item, 2) * 1
    somadelotemaiorquequinze = (somadelotemaiorquequinze) + (valor)
    Next

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2519
    Registrado : 29/06/2012

    Re: Não consigo somar mais de uma coluna na Listbox

    Mensagem  Noobezinho em Dom 11 Jan 2015, 23:16

    Ótimo Moises cheers

    Parabéns!!

    Retiro o que disse, hehehe, você sabe se virar e muito bem !! study

    Valeu ter retornado

    Boa sorte !!

    Noob



    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

      Data/hora atual: Dom 11 Dez 2016, 01:16