Usuário com melhor resposta
EXCEL VBA - Contar quantidade de linhas selecionadas em uma listview

Pergunta
-
Bom Dia, caros.....
Meu Problema é o seguinte:
Tenho uma listview no excel vba com vários registros.
Desejo contar a quantidade de registros selecionados e que esse valor
apareça em uma label logo abaixo da listview e que o valor seja atualizado em tempo real, tipo, vai aumentando de acordo com que as seleções são feitas e diminuindo quando elas são desfeitas.
Desde Já agradeço à atenção.... Um grande abraço a todos....
Respostas
-
Também ajudando a ajudar, segue minha sugestão.
Criar uma função que conte e retorne a quantidade de itens selecionados em um listview.
Function funSelectionCount(lsv As ListView) As Long Dim q As Long q = 0 For i = 1 To lsv.ListItems.Count If lsv.ListItems.Item(i).Selected Then q = q + 1 End If Next i funSelectionCount = q End Function
Colocar essa função no Evento Click, assim sempre que um item for selecionado ou desselecionado a função será chamada.
Private Sub ListView1_Click() Label1.Caption = funSelectionCount(ListView1) End Sub
Natan
- Editado 'Natan Silva quinta-feira, 7 de agosto de 2014 14:27
- Sugerido como Resposta Ealves82 quinta-feira, 7 de agosto de 2014 16:52
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 9 de agosto de 2014 00:33
-
Bom dia,
Vê se ajuda.... colocando dois botões, sendo um pra preencher e outro para verificar os seleiconados
Private Sub CommandButton1_Click()
'parametriza
With ListView1
.View = lvwReport
.ColumnHeaders.Clear
.ColumnHeaders.Add , , "Coluna 1"
.ColumnHeaders.Add , , "Coluna 2"
.MultiSelect = True
End With
'adiciona alguns itens
For a = 1 To 10
With ListView1.ListItems.Add(, , "Item " & a)
.SubItems(1) = CStr(a)
End With
Next
End Sub
Private Sub CommandButton2_Click()
Dim linhaSeleciona As String
linhaSeleciona = ""
'visita os itens selecionados
For a = 1 To ListView1.ListItems.Count
If ListView1.ListItems.Item(a).Selected = True Then
linhaSeleciona = linhaSeleciona & ListView1.ListItems.Item(a) & vbNewLine
End If
Next
'exibe
MsgBox linhaSeleciona
End SubEduardo Alves
- Marcado como Resposta Thiago.Santos.Souza sexta-feira, 8 de agosto de 2014 22:14
Todas as Respostas
-
Bom dia,
Vê se ajuda.... colocando dois botões, sendo um pra preencher e outro para verificar os seleiconados
Private Sub CommandButton1_Click()
'parametriza
With ListView1
.View = lvwReport
.ColumnHeaders.Clear
.ColumnHeaders.Add , , "Coluna 1"
.ColumnHeaders.Add , , "Coluna 2"
.MultiSelect = True
End With
'adiciona alguns itens
For a = 1 To 10
With ListView1.ListItems.Add(, , "Item " & a)
.SubItems(1) = CStr(a)
End With
Next
End Sub
Private Sub CommandButton2_Click()
Dim linhaSeleciona As String
linhaSeleciona = ""
'visita os itens selecionados
For a = 1 To ListView1.ListItems.Count
If ListView1.ListItems.Item(a).Selected = True Then
linhaSeleciona = linhaSeleciona & ListView1.ListItems.Item(a) & vbNewLine
End If
Next
'exibe
MsgBox linhaSeleciona
End SubEduardo Alves
- Marcado como Resposta Thiago.Santos.Souza sexta-feira, 8 de agosto de 2014 22:14
-
Use o código abaixo para adaptar o seu:
Private Sub ListBox1_Change() Dim lngItem As Long Dim intCont As Integer intCont = 0 For lngItem = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(lngItem) Then intCont = intCont + 1 End If Next lngItem Label1.Caption = intCont End Sub
Rafael Kamimura
-
Também ajudando a ajudar, segue minha sugestão.
Criar uma função que conte e retorne a quantidade de itens selecionados em um listview.
Function funSelectionCount(lsv As ListView) As Long Dim q As Long q = 0 For i = 1 To lsv.ListItems.Count If lsv.ListItems.Item(i).Selected Then q = q + 1 End If Next i funSelectionCount = q End Function
Colocar essa função no Evento Click, assim sempre que um item for selecionado ou desselecionado a função será chamada.
Private Sub ListView1_Click() Label1.Caption = funSelectionCount(ListView1) End Sub
Natan
- Editado 'Natan Silva quinta-feira, 7 de agosto de 2014 14:27
- Sugerido como Resposta Ealves82 quinta-feira, 7 de agosto de 2014 16:52
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 9 de agosto de 2014 00:33
-