Notifications
Clear all

Remover items em uma ListView

4 Posts
2 Usuários
0 Reactions
1,454 Visualizações
(@leandromar)
Posts: 5
Active Member
Topic starter
 

Tenho uma ListView onde vou adicionando os nomes dos produtos, quantidades vendidas e nome dos vendedores assim que os produtos vão sendo vendidos.

Eventualmente pode acontecer erros de digitação e poderá ser necessário deletar aquele item. Para tanto criei um botão com o seguinte código:

Private Sub CommandButton4_Click()
Dim i As Integer

   i = ListView1.SelectedItem.Index
   If ListView1.ListItems.Item(i).Selected = False Then
      MsgBox "Selecione o produto a ser excluido"
      Exit Sub
   End If
   ListView1.ListItems.Remove ListView1.ListItems(i).Index
   
End Sub

O problema é que algumas vezes sem ao menos selecionar um item e clicando no botão é removido o primeiro item da ListView. Percebi que a instrução abaixo passa o número do index mesmo sem o item estar selecionado.

 i = ListView1.SelectedItem.Index

Há alguma forma de verificar realmente se há algum item selecionado e se não houver emitir uma MsgBox???

Obrigado pessoal!!!

 
Postado : 11/04/2015 6:19 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia,

Tente assim:

If ListView1.ListItems.Count = 0 Then
MsgBox "Selecione o produto a ser excluido"
Exit Sub
End If

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/04/2015 6:29 am
(@leandromar)
Posts: 5
Active Member
Topic starter
 

Guima,

Essa rotina que sugeriu verifica se há itens adicionados na Listview, ma não o que eu preciso: Que seja verificado se há algum item selecionado.

 
Postado : 12/04/2015 12:03 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

leandro, não sei como está preenchendo o ListView, mas quando o preenchemos, por padrão fica o primeiro item como selecionado, então na rotina que preenche, ao final da mesma voce tem de definir a propriedade dos itens como não selecionados, acrescente a linha abaixo na rotina que preenche o ListView, se tivesse colocado a rotina eu diria o local certo, mas a principio é logo apos terminar de carregar o listview.

'Define Itens como não Selecionados
Set ListView1.SelectedItem = Nothing

E para o Botão utilize :

Private Sub CommandButton4_Click()

    Dim oList As Object
    Dim j
        
        Set oList = ListView1.SelectedItem
        
        If oList Is Nothing Then
            MsgBox "É preciso selecionar um item válido na lista"
       
        Else
            
            MsgBox ListView1.SelectedItem.Text
            MsgBox ListView1.SelectedItem.ListSubItems.item(1).Text
                
          'Define Itnes como não Selecionados
          Set ListView1.SelectedItem = Nothing
            
        End If

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/04/2015 9:26 am