Olá !
Criei um listbox com um código que permite visualizar a quantidade de linhas selecionadas, porém apenas é possível verificar essa quantidade baseado em um evento de Click em um botão após seleção de linhas, gostaria que essa contagem pudesse acontecer e ser visualizada em tempo real, ou seja, selecionou ou desmarcou uma linha ou mais o código adiciona ou subtrai na contagem.
Quem puder me ajudar e deixar essa parte do código marcada para que eu possa entende-la.
Arquivo em anexo...
Obrigado !
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Listbox com visuliazação de total linhas selecionadas
Listbox com visuliazação de total linhas selecionadas
- Anexos
-
- listagem.rar
- (232.09 KiB) Baixado 136 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Listbox com visuliazação de total linhas selecionadas
Uma possibilidade:
altere a chamada da rotina de contagem do evento "Click" para o event "Change"
Altere a rotina de contagem conforme abaixo
altere a chamada da rotina de contagem do evento "Click" para o event "Change"
Código: Selecionar todos
Private Sub Lst_Busca_Change()
Call Travaselect
End Sub
Código: Selecionar todos
Sub Travaselect()
Dim intIndex As Integer
Dim intCount As Integer
With Lst_Busca
For intIndex = 0 To .ListCount - 1
If .Selected(intIndex) Then intCount = intCount + 1
Next
End With
If intCount > 35 Then
MsgBox "Valor de seleção excedido"
End If
Label6.Caption = "Selecionado (s) para preparação do Spool: " & intCount & " de " & Lst_Busca.ListCount & " regisrto (s)"
'Call contaSelecionados
Me.TextBox20.Value = intCount
End Sub
Re: Listbox com visuliazação de total linhas selecionadas
Olá Reinaldo !
Obrigado por me ajudar, ficou show.
Mas ainda estou encontrando um problema, por exemplo, quando clico no botão marcar todas, e tendo 60 registros selecionados, a mensagem: MsgBox "Quantidade selecionada" & " = " & TextBox20.Value & Chr(13) & "Limite Máximo permitido: 35", vbQuestion, "Informações:" , aparece 25 vezes, que é o excedente ( 60 - 35 ). Tem que ficar dando OK.
Se nao tiver solução, já testei ao invés da msgbox um Label, daí funciona melhor.
Obrigado !
Obrigado por me ajudar, ficou show.
Mas ainda estou encontrando um problema, por exemplo, quando clico no botão marcar todas, e tendo 60 registros selecionados, a mensagem: MsgBox "Quantidade selecionada" & " = " & TextBox20.Value & Chr(13) & "Limite Máximo permitido: 35", vbQuestion, "Informações:" , aparece 25 vezes, que é o excedente ( 60 - 35 ). Tem que ficar dando OK.
Se nao tiver solução, já testei ao invés da msgbox um Label, daí funciona melhor.
Obrigado !
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Listbox com visuliazação de total linhas selecionadas
Bem foi uma sugestão direta sem analisar todo o projeto;
para a seleção total o ideal sera avaliar antes a quantidade de registros,
assim sua rotina de seleção total poderia ser algo +/- assim
e na rotina de seleção para travar
algo +/- assim
para a seleção total o ideal sera avaliar antes a quantidade de registros,
assim sua rotina de seleção total poderia ser algo +/- assim
Código: Selecionar todos
Private Sub CommandButton9_Click()
If Lst_Busca.ListCount - 1 > 35 Then
MsgBox "Seleção acima do limite permitido, que são 35 registros para impressão", vbInformation, "Mensagem"
Exit Sub
End If
Call optSelecionarTudo_Click
'cria regra de quantidades no select
On Error Resume Next
Application.ScreenUpdating = False
Call Travaselect
End Sub
algo +/- assim
Código: Selecionar todos
Sub Travaselect()
Dim intIndex As Integer
Dim intCount As Integer
With Lst_Busca
For intIndex = 0 To .ListCount - 1
If .Selected(intIndex) Then intCount = intCount + 1
If intCount > 35 Then
Lst_Busca.Selected(intIndex) = False
MsgBox "Valor de seleção excedido"
Exit Sub
End If
Next
End With
Label6.Caption = "Selecionado (s) para preparação do Spool: " & intCount & " de " & Lst_Busca.ListCount & " regisrto (s)"
Me.TextBox20.Value = intCount
End Sub