Somar Valor Selecio...
 
Notifications
Clear all

Somar Valor Selecionado no Listbox

7 Posts
2 Usuários
0 Reactions
1,558 Visualizações
 Halk
(@halk)
Posts: 54
Trusted Member
Topic starter
 

Pessoal,

Ajustei um formulário para fazer orçamento, estou tentando fazer com que o formulário 'Pesquisa' me de o resultado total da coluna 11 conforme for selecionado os itens orçados. Me dá uma força aí.
Obrigado.

 
Postado : 25/04/2014 7:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Já tentou ver esse assunto na pesquisa do fórum?
viewtopic.php?f=10&t=11387

Att

 
Postado : 25/04/2014 8:14 am
 Halk
(@halk)
Posts: 54
Trusted Member
Topic starter
 

Puxa, não consigo entender como fazer.

 
Postado : 25/04/2014 9:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Halk, vamos por parte :

1º ) Uma vez que seu ListBox tem a Propriedade MultiSelect, não é possível utilizar o Evento Click e sim o Evento Change para a situação que pretende, por outro lado este evento ira se sobrepor ao Evento DblClick tornando o mesmo sem funcionalidade, mesmo que não estivesse com a propriedade MultiSelect o Evento Click tambem ira se sobrepor ao Evento DblClick tornando o mesmo sem funcionalidade.

2º ) Você está querendo jogar a soma dos itens selecionados para outro ListBox, o ideal é jogar para um Label, TextBox ou ComboBox.

Para sua solicitação, a minha sugestão é utilizar um Botão para somar os itens apos selecionados, ou se utilizar o Evento Change e tornar sem efeito o DblClick, de qualquer forma a rotina para somar são as mesmas, então fica a seu criterio qual utilizar.
Primeiro adicione um controle Label en seu formulário e ajuste o nome nas rotinas de acordo com o nome que der ao mesmo :

Somando por um CommandButton : Lembre-se de ajustar o nome do Label(nesta rotina está como Label1)

Private Sub CommandButton1_Click()
    
    Dim lItem As Double
    Dim valor As Double

    If Label1.Caption = "" Then Label1.Caption = 0
        Label1.Caption = 0
    
        For lItem = 0 To lstLista.ListCount - 1
    
            If lstLista.Selected(lItem) = True Then
                valor = lstLista.List(lItem, 11) * 1
                Label1.Caption = Format(CCur(Label1.Caption) + (valor), "###,###,##0.00")
            End If
    
        Next

End Sub

Somando popelo Evento Change: Lembre-se de ajustar o nome do Label(nesta rotina está como Label1)

Private Sub lstLista_Change()

    Dim lItem As Double
    Dim valor As Double

    If Label3.Caption = "" Then Label3.Caption = 0
        Label3.Caption = 0
    
        For lItem = 0 To lstLista.ListCount - 1
    
            If lstLista.Selected(lItem) = True Then
                valor = lstLista.List(lItem, 11) * 1
                Label3.Caption = Format(CCur(Label3.Caption) + (valor), "###,###,##0.00")
            End If
    
        Next
        
End Sub

Faça os testes e veja se é isto.

[]s

 
Postado : 25/04/2014 12:14 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Só não entendi adicionar um ListBox1 para receber o resultado e não um TextBox, mais adequado.

Private Sub lstLista_Change()

Dim iListCount As Integer
Dim iRow As Integer
Dim Total As Double

  For iListCount = 1 To lstLista.ListCount - 1
   If lstLista.Selected(iListCount) = True Then  'Usuário tenha selecionado
      
      Total = Total + CDbl(lstLista.List(iListCount, 11))
      
      iRow = iRow + 1
   End If

  Next
Me.ListBox1.Clear
Me.ListBox1.AddItem Format(Total, "#,##0.00")

End Sub

Teste e informe. ;)

 
Postado : 25/04/2014 12:17 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Opa Maurão, quase juntos no click. :D

 
Postado : 25/04/2014 12:21 pm
 Halk
(@halk)
Posts: 54
Trusted Member
Topic starter
 

As duas formas corresponde as minhas necessidades, ficou excelente. :D

Muito obrigado pessoal, Alexandre, Mauro e JoseA.

Valeu.

Estou anexando o modelo aí.

 
Postado : 25/04/2014 1:00 pm