Gostaria que me ajudassem como fazer o codigo para somar os itens selecionados de forma que a soma dos valores fosse para um listbox ou textbox, pois quero gravar o nome da pessoa e o valor da soma dos exames em outra planilha onde depois eu vou fazer um relatorio mensal de quanto foi gasto.
pensei se desse pra fazer a selecao dos itens conforme a imagem abaixo . mas nao consigo sair daqui.
meu codigo ta uma bagunca que nem eu me acho mais o que realmente ta funcionando ou nao.
o codigo vai abaixo:
Option Explicit
Private Sub UserForm_Initialize()
Call Tags
'Call CarItens
'Call SomarItens
'Call CarItSoma
End Sub
Private Sub Tags()
With ListView1
.Gridlines = True
.View = lvwReport
.FullRowSelect = True
.MultiSelect = True
.ColumnHeaders.Add Text:="SIGLA", Width:=85, Alignment:=0
.ColumnHeaders.Add Text:="NOME", Width:=350, Alignment:=0
.ColumnHeaders.Add Text:="VALOR", Width:=70, Alignment:=2
End With
End Sub
Private Sub CarItSoma()
Dim lin As Integer
Dim li As Variant
ListView1.ListItems.Clear
Sheets("EXAMES").Select
lin = 5
Do Until Sheets("EXAMES").Cells(lin, 2) = ""
Set li = ListView1.ListItems.Add(Text:=Sheets("EXAMES").Cells(lin, 2).Value)
li.ListSubItems.Add Text:=Sheets("EXAMES").Cells(lin, 3).Value
li.ListSubItems.Add Text:=Sheets("EXAMES").Cells(lin, 4).Value
lin = lin + 1
Loop
Dim Soma As Double
For i = 1 To ListView1.ListItems.Count
Soma = Soma + ListView1.ListItems.Item(i).SubItems(2)
Next i
TextSoma = Soma
End Sub
Private Sub CarItens()
Dim linha, linhalist As Integer
Dim Ultimalinha, Lista As Variant
linhalist = 0
linha = 5
ListView1.ListItems.Clear
Plan3.Select
With Plan3
While Cells(linha, 2).Value <> ""
Ultimalinha = .Cells(Rows.Count, "b").End(xlUp).Row
With ListView1
Set Lista = ListView1.ListItems.Add(Text:=Cells(linha, "b").Value)
Lista.ListSubItems.Add Text:=Cells(linha, "c").Value
Lista.ListSubItems.Add Text:=Cells(linha, "d").Value
End With
linhalist = linhalist + 1
linha = linha + 1
Wend
End With
End Sub
Sub SomarItens() 'Soma itens selecionados no formulario
Dim Linhas As Integer
Dim Soma As Double
With Form_lab
Linhas = .ListView1.ListItems.Count
For i = 5 To Linhas
If .ListView1.ListItems(i).Selected = True Then
Soma = Soma + .ListView1.ListItems(i).ListSubItems(2) 'Valor
End If
Next
.lblSoma.Caption = Format(Soma, "Currency")
'TextSoma.Value = ListView1.ListItems(lin).SubItems(2)
End With
End Sub
Private Sub BtnLabPesqPact_Click() 'Abre o formulario de pesquisa dde pacientes.
Unload Form_lab
form_pesq.Show
End Sub