Vídeo recomendado
https://youtu.be/Ju8Esra5--I

Remover item de do listiview aoExportar para outro listiview

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
castilhos
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Mar 10, 2021 10:57 am

Remover item de do listiview aoExportar para outro listiview

Mensagem por castilhos »

Ola Pessoal,

Tenho 2 listiview (ListDisponivel ListCautelar).
Eu seleciono o checkbox dentro do ListDisponivel e o item marcado é exportado ao ListCautelar, e após confirmação(usando outro botão) esse item tem uma coluna alterada dentro da Planilha, mas enquanto esse botão não é executado essa célula não é alterada(e essa Célula que posssui o critério da busca), ocorrendo que ao executar a busca de novo, o item que já se encontra na ListCautelar é novamente mostrado no ListDisponivel(pois a célula ainda não foi alterada.

Usei a rotina de excluir a linha ao exportar, e funciona mas ao realizar a busca de novo o item volta ao listDisponivel.

O que preciso então seria de uma rotina que pesquisasse os IDs já inseridos no listCautelar e após realizasse uma pesquisa dessesID's no ListDisponivel e excluísse ou não tornasse visível esse item.

Código: Selecionar todos

Private Sub btnTransCautelar_Click()
'Exporta linhas do ListDisponivel para listCautelar e exclui Linhha do ListDisponivel

Dim x, y As Integer
Dim Li As Object
Dim sItem As Long
''Exporta Linhas
For y = 1 To listDisponivel.ListItems.Count
If listDisponivel.ListItems.Item(y).Checked Then
Set Li = listCautelar.ListItems.Add(Text:=listDisponivel.ListItems.Item(y))

Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(1)
Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(2)
Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(3)
Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(4)
Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(5)
Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(6)


End If
Next y

lblTotalDisponivel.Caption = listDisponivel.ListItems.Count
End Sub
Anexos
Cautela de Equipamentos.rar
(62.6 KiB) Baixado 595 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: Remover item de do listiview aoExportar para outro listiview

Mensagem por Reinaldo »

Pergunta,
pode ser alterado status do item ao migrar de listview.
Caso negativo, pode ser utilizado uma nova coluna "provisoria"


castilhos
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Mar 10, 2021 10:57 am

Re: Remover item de do listiview aoExportar para outro listiview

Mensagem por castilhos »

Opa, Reinaldo de Início obrigado.

Então, essa alteração não pode ser feita ao exportar para o segundo Listview pois pode ser que cancele um dos itens exportados.
Sobre a Coluna provisória, tive a mesma idéia, estou trabalhando nessa rotina.


Obrigado


castilhos
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Mar 10, 2021 10:57 am

Re: Remover item de do listiview aoExportar para outro listiview

Mensagem por castilhos »

Reinaldo escreveu: Qua Abr 19, 2023 4:00 pm Pergunta,
pode ser alterado status do item ao migrar de listview.
Caso negativo, pode ser utilizado uma nova coluna "provisoria"
Reinaldo, resolvi de uma forma que ficou legal.Está dando um lag que não consegui resolver ainda, mas está funcional.
Resolvi colorindo as linhas do listdisponivel que foram exportada para o segundo listview. O lag que ocorre é ele colore o item e os subitens não, mas se eu seleciono outro item os subitems são coloridos. E de quebra ele não aceita a exportação.

Código: Selecionar todos

Private Sub btnTransCautelar_Click()
'Exporta linhas do ListDisponivel para listCautelar e exclui Linhha do ListDisponivel
If listDisponivel.SelectedItem.Checked Then
Dim x, y, z As Integer
Dim Li As Object
Dim sItem As Long
Dim colunas As Integer
''Exporta Linhas
For y = 1 To listDisponivel.ListItems.Count
If listDisponivel.ListItems.Item(y).Checked Then
    If listDisponivel.ListItems(y).ForeColor = RGB(255, 0, 0) Then
    'MsgBox ("Equipamento Nº já na lista de Cautela")
    Else

        Set Li = listCautelar.ListItems.Add(Text:=listDisponivel.ListItems.Item(y))

        Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(1)
        Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(2)
        Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(3)
        Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(4)
        Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(5)
        Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(6)
        [highlight=yellow]''Colore Linha
        listDisponivel.ListItems(y).ForeColor = RGB(255, 0, 0)
        ''Colore Colunas
            For c = 1 To 6
            If listDisponivel.ListItems(y).ForeColor = RGB(255, 0, 0) = True Then
               listDisponivel.ListItems(y).ListSubItems(c).ForeColor = RGB(255, 0, 0)
                        
            End If
            
          Next c[/highlight]
End If
End If
Next y
Else
End If

lblTotalDisponivel.Caption = listDisponivel.ListItems.Count
End Sub
ImagemImagem


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: Remover item de do listiview aoExportar para outro listiview

Mensagem por Reinaldo »

"...o item e os subitens não..."
Talvez assim:

Código: Selecionar todos

Private Sub btnTransCautelar_Click()
'Exporta linhas do ListDisponivel para listCautelar e exclui Linhha do ListDisponivel
If listDisponivel.SelectedItem.Checked Then
Dim x, y, z As Integer
Dim Li As Object
Dim sItem As Long
Dim colunas As Integer
''Exporta Linhas
For y = 1 To listDisponivel.ListItems.Count
    If listDisponivel.ListItems.Item(y).Checked Then
        If listDisponivel.ListItems(y).ForeColor = RGB(255, 0, 0) Then
            'MsgBox ("Equipamento Nº já na lista de Cautela")
        Else
            Set Li = listCautelar.ListItems.Add(Text:=listDisponivel.ListItems.Item(y))
            Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(1)
            Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(2)
            Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(3)
            Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(4)
            Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(5)
            Li.ListSubItems.Add Text:=listDisponivel.ListItems.Item(y).SubItems(6)
            ''Colore Linha
            listDisponivel.ListItems(y).ForeColor = RGB(255, 0, 0)
            ''Colore Colunas
            For C = 1 To 6
                listDisponivel.ListItems(y).ListSubItems(C).ForeColor = RGB(255, 0, 0)
            Next C
            Me.Repaint
        End If
    End If
Next y
Else
End If

lblTotalDisponivel.Caption = listDisponivel.ListItems.Count
End Sub


castilhos
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Mar 10, 2021 10:57 am

Re: Remover item de do listiview aoExportar para outro listiview

Mensagem por castilhos »

Boas Reinaldo...

Rapaz, sensacional.
Ficou show...
Cara impressionante como uma dúvida acaba nos levando para outro aprendizado.

Esse é o pulo do gato da vez, código simples e eficiente

Código: Selecionar todos

listDisponivel.ListItems(y).ListSubItems(C).ForeColor = RGB(255, 0, 0)
            Next C
            Me.Repaint
obrigado amigo.


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