Função para contar ...
 
Notifications
Clear all

Função para contar itens selecionados em um Objeto ListBox

5 Posts
2 Usuários
0 Reactions
993 Visualizações
(@tvfrossard)
Posts: 0
New Member
Topic starter
 

Boa tarde, estou tentando fazer uma função que recebe por parametro: ListBox e Flag e que retorne a quantidade de itens selecionados (flag = true), ou não selecionados (flag = false), porém quando eu chamo a função recebo a mensagem que os tipos não são compativeis.

Como que eu passo um objeto ListBox para a função?

Function contaListBox(obj as ListBox, Optional flag As Boolean = True) As Integer

    Dim x As Integer
    Dim conta As Integer
    
    conta = 0
    
    With obj
            
         For x = 0 To .ListCount - 1
    
               If (.Selected(x) = flag) Then conta = conta + 1
    
         Next
            
     End With
            
    contaListBox = conta

End Function
 
Postado : 29/01/2015 3:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Tente adaptar

Private Sub ListBox1_Change()
    Dim intIndex As Integer
    Dim intCount As Integer
     
    With ListBox1
        For intIndex = 0 To .ListCount - 1
            If .Selected(intIndex) Then intCount = intCount + 1
        Next
    End With
    Label1.Caption = "Selecionado " & intCount & " de " & ListBox1.ListCount
End Sub
Private Sub UserForm_Initialize()
    With ListBox1
        .AddItem "A"
        .AddItem "B"
        .AddItem "C"
        .AddItem "D"
        .AddItem "E"
        .AddItem "F"
        .AddItem "G"
    End With
    Label1.Caption = "Nada foi selecionado"
End Sub

Obs: Eu não olhei seu código.

Att

 
Postado : 29/01/2015 4:38 pm
(@tvfrossard)
Posts: 0
New Member
Topic starter
 

Acho que o meu subject não foi o mais adequado.

Meu código está igual. Teu código escreve a quantidade selecionada em um label de um UserForm. Meu listbox não fica em userform, é um objeto ActiveX na planilha.

O que eu quero é passar o objeto via parâmetro uma função que me retorne esses valores.


Function contaSelecionados(Lb as ListBox) as Integer
    
    (...)
     contaSelecionados = contador

End Function

Quando dentro de outro codigo eu coloco

Selecionado = contaSelecionados(ListBox1)

Recebo a mensagem de "Tipos Incompativel".

Queria saber se tem como passar esses objetos por parametro.

Obrigado.

 
Postado : 30/01/2015 7:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Você poderia postar por gentileza seu arquivo modelo compactado e postar aqui no fórum?

Att

 
Postado : 30/01/2015 9:36 am
(@tvfrossard)
Posts: 0
New Member
Topic starter
 

Não tenho rar aqui no computador do trabalho, apenas ZIP.

 
Postado : 30/01/2015 12:53 pm