Página 1 de 1

[RESOLVIDO]excluir varios cadastros ao mesmo tempo - listview

Enviado: Ter Fev 20, 2018 10:45 pm
por themusicgospel
SISTEMA DE CADASTRO (1).zip
(590.37 KiB) Baixado 247 vezes
Boa noite caros amigos.
Fiz um sistema de cadastro no Excel Utilizando VBA e estou com o seguinte problema:
Gostaria de saber como posso excluir varios clientes ao mesmo tempo, apenas marcando na checkbox da listview e excutando o comando para excluir..

Atualmente so consigo excluir apos clicar no cliente, ai os dados sao lançados nas textbox, e depois executo o comando para excluir.

Segue o comando que uso para excluir e tbm estou enviando a planilha, quem puder me ajudar agradeço bastante, pois so falta isso para concluir meu projeto e evoluir no meu conhecimento em VBA.



Dim Linha As Long
Dim ID As String
Linha = 2
ID = txt_id
Plan4.Activate
Do Until Plan4.Cells(Linha, 1) = ""
'condição para localizar o código
If Plan4.Cells(Linha, 1) = ID Then
Plan4.Cells(Linha, 1).Select
Dim Resposta As String 'cria a variável resposta
Resposta = MsgBox("O registro será excluído. Confirma a exclusão?", vbYesNo + vbDefaultButton2, Soft) 'cria a mensagem para determinar qual ação será executada
If Resposta = vbYes Then ' se a resposta for sim então
'comando para deletar toda a linha
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Select
'limpa todos os campos do formulário
MsgBox "Dados excluídos com sucesso!", vbInformation, "SISTEMA INFORMA"
Unload Me
frmMenu.Show
Else
End If
End If
Linha = Linha + 1
Loop

Re: excluir varios cadastros ao mesmo tempo - listview

Enviado: Qua Fev 21, 2018 8:29 am
por sandrojrs
ja tentou utilizar o listview multi select

Re: excluir varios cadastros ao mesmo tempo - listview

Enviado: Qua Fev 21, 2018 8:45 am
por sandrojrs
amigo dei uma olhada na sua planilha, está muito boa o nível de personalização, só não entendi por que tem uma parte financeira junto com a planilha, e o userform que inicia esta com o nome errado na macro, vou dar mais uma olhada e vejo se consigo resolver seu problema

Re: excluir varios cadastros ao mesmo tempo - listview

Enviado: Qua Fev 21, 2018 10:12 am
por themusicgospel
sandrojrs escreveu: Qua Fev 21, 2018 8:45 am amigo dei uma olhada na sua planilha, está muito boa o nível de personalização, só não entendi por que tem uma parte financeira junto com a planilha, e o userform que inicia esta com o nome errado na macro, vou dar mais uma olhada e vejo se consigo resolver seu problema
Bom dia amigo.
Essa parte financeira que você esta vendo na planilha, era porque justamente tinha um formulário assim, mas eu tirei e deixei so o sistema de cadastro e esqueci de excluir essas planilhas que nao seriam mais utilizadas.

Ah, e obrigado pelo elogio.
Como no VBA + Excel nao permite tanta personalização assim, eu faço o layout no Photoshop mesmo.
Veja ai se consegue me ajudar.

Re: excluir varios cadastros ao mesmo tempo - listview

Enviado: Qui Fev 22, 2018 3:39 pm
por srobles
themusicgospel,

Conforme solicitado, veja se as alterações relacionadas á parte de exclusão de múltiplos itens atende sua necessidade.

Abs

Re: excluir varios cadastros ao mesmo tempo - listview

Enviado: Qui Fev 22, 2018 3:43 pm
por Reinaldo
Uma possibilidade

Código: Selecionar todos

Private Sub btn_excluir_Click()
Dim Linha  As Long
Dim ID As Integer
    
Linha = 2

    
For i = 1 To List_Cad.ListItems.Count

    If List_Cad.ListItems(i).Checked = True Then
       ' ListBox1.RemoveItem (i)
        ID = List_Cad.ListItems(i).Text
'Exit Sub
    Plan4.Activate
    Do Until Plan4.Cells(Linha, 1) = ""
        'condição para localizar o código
        If Plan4.Cells(Linha, 1) = ID Then
            Plan4.Cells(Linha, 1).Select
            Dim Resposta As String 'cria a variável resposta
            Resposta = MsgBox("O registro será excluído. Confirma a exclusão?", vbYesNo + vbDefaultButton2, Soft) 'cria a mensagem para determinar qual ação será executada
            If Resposta = vbYes Then ' se a resposta for sim então
                'comando para deletar toda a linha
                ActiveCell.Rows("1:1").EntireRow.Select
                Selection.Delete Shift:=xlUp
                ActiveCell.Select
'                'limpa todos os campos do formulário
'              MsgBox "Dados excluídos com sucesso!", vbInformation, "SISTEMA INFORMA"
'                Unload Me
'                frmMenu.Show
            Else
            End If
        End If
        Linha = Linha + 1
    Loop
    End If
Linha = 2
Next
List_Cad.ListItems.Clear
Call CarregarClientes
End Sub

Re: excluir varios cadastros ao mesmo tempo - listview

Enviado: Sex Fev 23, 2018 9:19 am
por themusicgospel
srobles escreveu: Qui Fev 22, 2018 3:39 pm themusicgospel,

Conforme solicitado, veja se as alterações relacionadas á parte de exclusão de múltiplos itens atende sua necessidade.

Abs
Bom dia Amigo.
Obrigado pela atenção em relação ao meu pedido, porém nao funcionou.
Eu marquei as checkbox de varios cadastros, porém so foi excluido 1...os outros ficaram do mesmo jeito..
O que eu quero é marcar as checkbox, e ele excluir os dados do cliente no cadastro na planilha.
Seria um loop né?...pra ele ir percorrendo todos os clientes marcados e sair excluindo 1 por 1

Re: excluir varios cadastros ao mesmo tempo - listview

Enviado: Sex Fev 23, 2018 9:32 am
por themusicgospel
Reinaldo escreveu: Qui Fev 22, 2018 3:43 pm Uma possibilidade

Código: Selecionar todos

Private Sub btn_excluir_Click()
Dim Linha  As Long
Dim ID As Integer
    
Linha = 2

    
For i = 1 To List_Cad.ListItems.Count

    If List_Cad.ListItems(i).Checked = True Then
       ' ListBox1.RemoveItem (i)
        ID = List_Cad.ListItems(i).Text
'Exit Sub
    Plan4.Activate
    Do Until Plan4.Cells(Linha, 1) = ""
        'condição para localizar o código
        If Plan4.Cells(Linha, 1) = ID Then
            Plan4.Cells(Linha, 1).Select
            Dim Resposta As String 'cria a variável resposta
            Resposta = MsgBox("O registro será excluído. Confirma a exclusão?", vbYesNo + vbDefaultButton2, Soft) 'cria a mensagem para determinar qual ação será executada
            If Resposta = vbYes Then ' se a resposta for sim então
                'comando para deletar toda a linha
                ActiveCell.Rows("1:1").EntireRow.Select
                Selection.Delete Shift:=xlUp
                ActiveCell.Select
'                'limpa todos os campos do formulário
'              MsgBox "Dados excluídos com sucesso!", vbInformation, "SISTEMA INFORMA"
'                Unload Me
'                frmMenu.Show
            Else
            End If
        End If
        Linha = Linha + 1
    Loop
    End If
Linha = 2
Next
List_Cad.ListItems.Clear
Call CarregarClientes
End Sub
Reinaldo muito obrigado pela sua contribuição, o código funcionou perfeitamente.
Muito obrigado!

Re: excluir varios cadastros ao mesmo tempo - listview

Enviado: Sex Fev 23, 2018 6:25 pm
por JONATHA123
saulo ( srobles ) boa noite preciso de sua ajuda!! não era por aqui mas foi sua ultima resposta! ai te encontrei por aqui...
como eu faço para excluir automaticamente 250 linhas quando a ultima linha preenchida for a de numero 500 (sem a necessidade de a aba estar ativa no momento!), quando excluir essas 250 linhas, jogar as outras 250 para cima, ex: linha 2, abaixo de um cabeçalho qualquer....