Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Listbox com visuliazação de total linhas selecionadas

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
EVALDO
Colaborador
Colaborador
Mensagens: 22
Registrado em: Qua Set 18, 2013 12:03 pm

Listbox com visuliazação de total linhas selecionadas

Mensagem por EVALDO »

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 !
Anexos
listagem.rar
(232.09 KiB) Baixado 124 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
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

Mensagem por Reinaldo »

Uma possibilidade:
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
Altere a rotina de contagem conforme abaixo

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


EVALDO
Colaborador
Colaborador
Mensagens: 22
Registrado em: Qua Set 18, 2013 12:03 pm

Re: Listbox com visuliazação de total linhas selecionadas

Mensagem por EVALDO »

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 !


Avatar do usuário
Reinaldo
Jedi
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

Mensagem por Reinaldo »

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

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
e na rotina de seleção para travar
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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder